Browse Source

Merge branch 'dev' of http://git.kdan.cc:8865/Windows/PDFOffice_Windows_exe into dev

OYXH\oyxh 1 year ago
parent
commit
521f25bce5

BIN
PDF Office/ComPDFKit.Viewer.dll


+ 2 - 2
PDF Office/CustomControl/CompositeControl/ColorContent.xaml.cs

@@ -162,10 +162,10 @@ namespace PDF_Master.CustomControl.CompositeControl
                 foreach(var item in control.colors)
                 {
                     var colorItem = (item.Color as SolidColorBrush).Color;
-                    if(colorItem.A == co.Color.A && colorItem.G == co.Color.G && colorItem.B == co.Color.B && colorItem.R == co.Color.R)
+                    if (colorItem.A == co.Color.A && colorItem.G == co.Color.G && colorItem.B == co.Color.B && colorItem.R == co.Color.R)
                     {
                         control.ListColor.SelectedItem = item;
-                        control.ElcustomColor.Fill = new SolidColorBrush(Colors.Transparent);
+                        //control.ElcustomColor.Fill = new SolidColorBrush(Colors.Transparent);
                         isFoundListItem = true;
                         break;
                     }

+ 5 - 1
PDF Office/Model/Dialog/HomePageToolsDialogs/HomePagePrinter/HomePagePrinterDialogModel.cs

@@ -90,7 +90,11 @@ namespace PDF_Master.Model.Dialog.HomePageToolsDialogs.HomePagePrinter
         /// 解决一直获取纸张信息引发卡顿的问题
         /// </summary>
         public bool IsPaperSizeChanged = false;
-
+        
+        /// <summary>
+        /// 在每次重新计算页码范围时,都需要根据needreversepage判定是否要翻转页码
+        /// </summary>
+        public bool needReversePage = false;
         public PrintSettingsInfo()
         {
             PrintDocument.DefaultPageSettings.Landscape = false;

+ 2 - 2
PDF Office/MultilingualResources/PDF Office.en.xlf

@@ -1980,8 +1980,8 @@ form</target>
           <target state="new">Reset All</target>
         </trans-unit>
         <trans-unit id="WritableComboBox_CustomRangeEge" translate="yes" xml:space="preserve">
-          <source>ege : 1,3-5,10</source>
-          <target state="new">ege : 1,3-5,10</target>
+          <source>ege :  1,3-5, 10</source>
+          <target state="new">ege :  1,3-5, 10</target>
         </trans-unit>
       </group>
     </body>

+ 2 - 2
PDF Office/MultilingualResources/PDF Office.zh-Hans.xlf

@@ -1980,8 +1980,8 @@ form</target>
           <target state="new">Reset All</target>
         </trans-unit>
         <trans-unit id="WritableComboBox_CustomRangeEge" translate="yes" xml:space="preserve">
-          <source>ege : 1,3-5,10</source>
-          <target state="new">ege : 1,3-5,10</target>
+          <source>ege :  1,3-5, 10</source>
+          <target state="new">ege :  1,3-5, 10</target>
         </trans-unit>
       </group>
     </body>

+ 10 - 10
PDF Office/MultilingualResources/PDF Office.zh-Hant.xlf

@@ -813,11 +813,11 @@
           <target state="new">Add an Open File</target>
         </trans-unit>
         <trans-unit id="Merge_Hint" translate="yes" xml:space="preserve">
-          <source>Selected files
-Drop files here or Click “Add Files” at bottom right button. 
+          <source>Selected files
+Drop files here or Click “Add Files” at bottom right button. 
 Drag files to reorder as you need.</source>
-          <target state="new">Selected files
-Drop files here or Click “Add Files” at bottom right button. 
+          <target state="new">Selected files
+Drop files here or Click “Add Files” at bottom right button. 
 Drag files to reorder as you need.</target>
         </trans-unit>
         <trans-unit id="Merge_ItemPages" translate="yes" xml:space="preserve">
@@ -1394,16 +1394,16 @@ Drag files to reorder as you need.</target>
           <note from="MultilingualBuild" annotates="source" priority="2">阅读页底部工具栏-缩放菜单适应页面选项</note>
         </trans-unit>
         <trans-unit id="Convert_PDFToCSVADocment" translate="yes" xml:space="preserve">
-          <source>Create a single worksheet for
+          <source>Create a single worksheet for
 a document</source>
-          <target state="new">Create a single worksheet for
+          <target state="new">Create a single worksheet for
 a document</target>
           <note from="MultilingualBuild" annotates="source" priority="2">PDF转CSV-所有表格转为一个CSV文件</note>
         </trans-unit>
         <trans-unit id="Convert_PDFToCSVEachForm" translate="yes" xml:space="preserve">
-          <source>Create worksheets for each
+          <source>Create worksheets for each
 form</source>
-          <target state="new">Create worksheets for each
+          <target state="new">Create worksheets for each
 form</target>
           <note from="MultilingualBuild" annotates="source" priority="2">PDF转CSV-每个表格转为一个CSV文件</note>
         </trans-unit>
@@ -1980,8 +1980,8 @@ form</target>
           <target state="new">Reset All</target>
         </trans-unit>
         <trans-unit id="WritableComboBox_CustomRangeEge" translate="yes" xml:space="preserve">
-          <source>ege : 1,3-5,10</source>
-          <target state="new">ege : 1,3-5,10</target>
+          <source>ege :  1,3-5, 10</source>
+          <target state="new">ege :  1,3-5, 10</target>
         </trans-unit>
       </group>
     </body>

+ 17 - 1
PDF Office/ViewModels/BottomToolContentViewModel.cs

@@ -469,7 +469,23 @@ namespace PDF_Master.ViewModels
         {
             if (PDFViewer != null)
             {
-                PDFViewer.GoToPage(PDFViewer.CurrentIndex - 1);
+                if (PDFViewer.RenderPageStart == PDFViewer.CurrentIndex)
+                {
+
+                    PDFViewer.GoToPage(PDFViewer.CurrentIndex - 1);
+                }
+                else
+                {
+                    if ((PDFViewer.RenderPageStart - 1) > 0)
+                    {
+                        PDFViewer.GoToPage(PDFViewer.RenderPageStart - 1);
+                    }
+                    else
+                    {
+                        PDFViewer.GoToPage(PDFViewer.CurrentIndex - 1);
+                    }
+                }
+
             }
         }
 

+ 81 - 9
PDF Office/ViewModels/Dialog/HomePageToolsDialogs/HomePagePrinter/HomePagePrinterDialogViewModel.cs

@@ -385,6 +385,7 @@ namespace PDF_Master.ViewModels.Dialog.HomePageToolsDialogs.HomePagePrinter
         public DelegateCommand<object> SetReversePageCommand { get; set; }
         public DelegateCommand<object> SetPrintBorderCommand { get; set; }
         public DelegateCommand<object> SetPrintOritationCommand { get; set; }
+        public DelegateCommand<object> PageTextChangedCommand { get; set; }
         #endregion
 
         HomePagePrinterDialogViewModel(IRegionManager regionManager, IDialogService dialogService, IEventAggregator eventAggregator)
@@ -398,7 +399,7 @@ namespace PDF_Master.ViewModels.Dialog.HomePageToolsDialogs.HomePagePrinter
             HomePagePrinterModRegionName = Guid.NewGuid().ToString();
 
             CancelCommand = new DelegateCommand(Cancel);
-            ConfirmPrintCommand = new DelegateCommand(ConfirmPrint); 
+            ConfirmPrintCommand = new DelegateCommand(ConfirmPrint);
             ChangePrintModCommand = new DelegateCommand<object>(ChangePrintMod);
             SetPaperCommand = new DelegateCommand(SetPaper);
             SelectPrinterCommand = new DelegateCommand<object>(SelectPrinter);
@@ -406,6 +407,7 @@ namespace PDF_Master.ViewModels.Dialog.HomePageToolsDialogs.HomePagePrinter
             SetDuplexCommand = new DelegateCommand<object>(SetDuplex);
             SetPageRangeSelectionIndexCommand = new DelegateCommand<object>(SetPageRangeSelectionIndex);
             SetCustomPageRangeCommand = new DelegateCommand<object>(SetCustomPageRange);
+            PageTextChangedCommand = new DelegateCommand<object>(PageTextChanged);
             SetPrintContentCommand = new DelegateCommand<object>(SetPrintContent);
             SetReversePageCommand = new DelegateCommand<object>(SetReversePage);
             SetPrintBorderCommand = new DelegateCommand<object>(SetPrintBorder);
@@ -524,8 +526,10 @@ namespace PDF_Master.ViewModels.Dialog.HomePageToolsDialogs.HomePagePrinter
         /// </summary>
         public void SetPaper()
         {
+            Margins defaultMargin = new Margins();
             PrintSettingsInfo.PrintDocument.PrinterSettings.PrinterName = PrinterName;
             pageSetupDialog.Document = PrintSettingsInfo.PrintDocument;
+            defaultMargin = PrintSettingsInfo.PrintDocument.DefaultPageSettings.Margins;
             pageSetupDialog.Document.DefaultPageSettings.Margins = new Margins((int)(PrintSettingsInfo.PrintDocument.DefaultPageSettings.Margins.Left * 2.54), (int)(PrintSettingsInfo.PrintDocument.DefaultPageSettings.Margins.Right * 2.54), (int)(PrintSettingsInfo.PrintDocument.DefaultPageSettings.Margins.Top * 2.54), (int)(PrintSettingsInfo.PrintDocument.DefaultPageSettings.Margins.Bottom * 2.54));
 
             if (pageSetupDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
@@ -544,6 +548,10 @@ namespace PDF_Master.ViewModels.Dialog.HomePageToolsDialogs.HomePagePrinter
                 this.printEvent.GetEvent<SendPrintSettingsInfoEvent>().Publish(new PrintSettingsInfoWithUnicode { printSettingsInfo = this.PrintSettingsInfo, Unicode = this.Unicode });
                 PrintSettingsInfo.IsPaperSizeChanged = false;
             }
+            else
+            {
+                PrintSettingsInfo.PrintDocument.DefaultPageSettings.Margins = defaultMargin;
+            }
         }
 
         public void ChangePrintMod(object e)
@@ -629,7 +637,7 @@ namespace PDF_Master.ViewModels.Dialog.HomePageToolsDialogs.HomePagePrinter
         {
             var cmb = e as WritableComboBox;
             PrintSettingsInfo.PageRangeList.Clear();
-            if (int.Parse(cmb.SelectedIndex) < cmb.Items.Count - 1)
+            if ((int.Parse(cmb.SelectedIndex) < cmb.Items.Count - 1))
             {
                 if (!isCurrentPage)
                 {
@@ -650,7 +658,6 @@ namespace PDF_Master.ViewModels.Dialog.HomePageToolsDialogs.HomePagePrinter
                     }
                     else if (PrintSettingsInfo.EnumPageRange == (int)EnumPageRangeWithoutCurrentPage.StatusEvenRange)
                     {
-                        //TODO: 偶数页页数不够异常
                         if (PDFViewer.Document.PageCount <= 1)
                         {
                             for (int temp = 0; temp < PDFViewer.Document.PageCount; temp++)
@@ -693,7 +700,6 @@ namespace PDF_Master.ViewModels.Dialog.HomePageToolsDialogs.HomePagePrinter
                     }
                     else if (PrintSettingsInfo.EnumPageRange == (int)EnumPageRangeWithCurrentPage.StatusEvenRange)
                     {
-                        //TODO: 偶数页页数不够异常
                         if (PDFViewer.Document.PageCount <= 1)
                         {
                             for (int temp = 0; temp < PDFViewer.Document.PageCount; temp++)
@@ -711,11 +717,29 @@ namespace PDF_Master.ViewModels.Dialog.HomePageToolsDialogs.HomePagePrinter
                         }
                     }
                 }
-
+                if (PrintSettingsInfo.needReversePage)
+                {
+                    PrintSettingsInfo.PageRangeList.Reverse();
+                }
                 this.printEvent.GetEvent<SendPrintSettingsInfoEvent>().Publish(new PrintSettingsInfoWithUnicode { printSettingsInfo = this.PrintSettingsInfo, Unicode = this.Unicode });
             }
             else
             {
+                PrintSettingsInfo.EnumPageRange = (int)EnumPageRangeWithCurrentPage.StatusCustomizedRange;
+                if (string.IsNullOrEmpty(PageListString))
+                {
+                    for (int temp = 0; temp < PDFViewer.Document.PageCount; temp++)
+                    {
+                        PrintSettingsInfo.PageRangeList.Add(temp);
+                    }
+                    if (PrintSettingsInfo.needReversePage)
+                    {
+                        PrintSettingsInfo.PageRangeList.Reverse();
+                    }
+                    this.printEvent.GetEvent<SendPrintSettingsInfoEvent>().Publish(new PrintSettingsInfoWithUnicode { printSettingsInfo = this.PrintSettingsInfo, Unicode = this.Unicode });
+                    return;
+                }
+                 
                 if (!isCurrentPage)
                 {
                     for (int temp = 0; temp < PDFViewer.Document.PageCount; temp++)
@@ -730,12 +754,16 @@ namespace PDF_Master.ViewModels.Dialog.HomePageToolsDialogs.HomePagePrinter
                     {
                         PrintSettingsInfo.PageRangeList.Add(temp);
                     }
-                    PrintSettingsInfo.EnumPageRange = (int)EnumPageRangeWithCurrentPage.StatusCustomizedRange;
-
+                }
+                if (PrintSettingsInfo.needReversePage)
+                {
+                    PrintSettingsInfo.PageRangeList.Reverse();
                 }
             }
         }
 
+
+
         public void SetCustomPageRange(object e)
         {
             if ((PrintSettingsInfo.EnumPageRange == (int)EnumPageRangeWithoutCurrentPage.StatusCustomizedRange && !isCurrentPage) || (PrintSettingsInfo.EnumPageRange == (int)EnumPageRangeWithCurrentPage.StatusCustomizedRange && isCurrentPage))
@@ -756,6 +784,30 @@ namespace PDF_Master.ViewModels.Dialog.HomePageToolsDialogs.HomePagePrinter
             }
         }
 
+        public void PageTextChanged(object e)
+        {
+            if ((PrintSettingsInfo.EnumPageRange == (int)EnumPageRangeWithoutCurrentPage.StatusCustomizedRange && !isCurrentPage) || (PrintSettingsInfo.EnumPageRange == (int)EnumPageRangeWithCurrentPage.StatusCustomizedRange && isCurrentPage))
+            {
+                var cmb = e as WritableComboBox;
+                if (cmb == null)
+                {
+                    return;
+                }
+                if (!CommonHelper.GetPagesInRange(ref DocumentTargetPages, cmb.Text, PDFViewer.Document.PageCount, new char[] { ',' }, new char[] { '-' }))
+                { //TODO
+                    PrintSettingsInfo.PageRangeList.Clear();
+                    for (int temp = 0; temp < PDFViewer.Document.PageCount; temp++)
+                    {
+                        PrintSettingsInfo.PageRangeList.Add(temp);
+                    }
+                    this.printEvent.GetEvent<SendPrintSettingsInfoEvent>().Publish(new PrintSettingsInfoWithUnicode { printSettingsInfo = this.PrintSettingsInfo, Unicode = this.Unicode });
+                    return;
+                }
+                PrintSettingsInfo.PageRangeList = DocumentTargetPages;
+                this.printEvent.GetEvent<SendPrintSettingsInfoEvent>().Publish(new PrintSettingsInfoWithUnicode { printSettingsInfo = this.PrintSettingsInfo, Unicode = this.Unicode });
+            }
+        }
+
         public void SetPrintOritation(object e)
         {
             var cmb = e as ComboBox;
@@ -765,8 +817,7 @@ namespace PDF_Master.ViewModels.Dialog.HomePageToolsDialogs.HomePagePrinter
             }
             else
             {
-                PrintSettingsInfo.PrintDocument.DefaultPageSettings.Landscape = true;
-            }
+                PrintSettingsInfo.PrintDocument.DefaultPageSettings.Landscape = true;            }
 
             PrintSettingsInfo.EnumPrintOrientation = (EnumPrintOrientation)cmb.SelectedIndex;
             this.printEvent.GetEvent<SendPrintSettingsInfoEvent>().Publish(new PrintSettingsInfoWithUnicode { printSettingsInfo = this.PrintSettingsInfo, Unicode = this.Unicode });
@@ -800,6 +851,14 @@ namespace PDF_Master.ViewModels.Dialog.HomePageToolsDialogs.HomePagePrinter
 
         public void SetReversePage(object e)
         {
+            var reversePageChk = e as CheckBox;
+            if ((bool)reversePageChk.IsChecked) {
+                PrintSettingsInfo.needReversePage = true;
+            }
+            else
+            {
+                PrintSettingsInfo.needReversePage = false;
+            }
             PrintSettingsInfo.PageRangeList.Reverse();
             this.printEvent.GetEvent<SendPrintSettingsInfoEvent>().Publish(new PrintSettingsInfoWithUnicode { printSettingsInfo = this.PrintSettingsInfo, Unicode = this.Unicode });
 
@@ -925,6 +984,18 @@ namespace PDF_Master.ViewModels.Dialog.HomePageToolsDialogs.HomePagePrinter
         /// </summary>
         public void ConfirmPrint()
         {
+            List<int> PageIndexLists = new List<int>();
+
+            if (PageRangeSelectIndex == 4)
+            {
+                if (!CommonHelper.GetPagesInRange(ref PageIndexLists, CustomRangeString, PDFViewer.Document.PageCount, new char[] { ',' }, new char[] { '-' }))
+                { //TODO
+                    AlertsMessage alertsMessage = new AlertsMessage();
+                    alertsMessage.ShowDialog("页面范围输入错误", "", "确定");
+                    return;
+                }
+            }
+
             printQueue = localDefaultPrintServer.GetPrintQueue(PrinterName);
             LoadPrinterSettings();
 
@@ -1015,6 +1086,7 @@ namespace PDF_Master.ViewModels.Dialog.HomePageToolsDialogs.HomePagePrinter
 
         public void OnDialogOpened(IDialogParameters parameters)
         {
+
             parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out PDFViewer);
 
             VerifyPasswordResult result = SecurityHelper.VerifyPasswordForSelectedPermissions(PDFViewer.Document, Model.Dialog.ToolsDialogs.SaftyDialogs.EnumPermissionsSet.StatusAllowsPrinting, printDialogs);

+ 0 - 1
PDF Office/ViewModels/Dialog/HomePageToolsDialogs/HomePagePrinter/HomePagePrinterDocumentContentViewModel.cs

@@ -1684,7 +1684,6 @@ namespace PDF_Master.ViewModels.Dialog.HomePageToolsDialogs.HomePagePrinter
                     documentSettingsInfo.margins = PrintSettingsInfo.PrintDocument.DefaultPageSettings.Margins;
                     documentSettingsInfo.DocumentBounds = PrintSettingsInfo.PrintDocument.DefaultPageSettings.Bounds;
                     documentSettingsInfo.IsSettingsChanged = false;
-
                 }
                 CaculatePrintedPageCount();
                 SetPaperCollection();

+ 94 - 85
PDF Office/ViewModels/FillAndSign/FillAndSignContentViewModel.cs

@@ -108,13 +108,6 @@ namespace PDF_Master.ViewModels.FillAndSign
             keyShape["LineShape"] = new List<List<Point>> { new List<Point> { new Point(3.19995, 14), new Point(25.127, 14) } };
             keyShape["DotShape"] = new List<List<Point>> { new List<Point> { new Point(3.19995, 3.19995), new Point(3.19995, 3.19995) } };
 
-
-            //keyShape["HookShape"] = new List<List<Point>> { new List<Point> { new Point(0.599976, 7.0286), new Point(5.57775, 11.8), new Point(13.4, 1.40002) } };
-            //keyShape["ForkShape"] = new List<List<Point>> { new List<Point> { new Point(3.19995, 3.20001), new Point(12.8, 12.8) }, new List<Point> { new Point(12.8, 3.20001), new Point(3.20005, 12.8) } };
-            //keyShape["RectShape"] = new List<List<Point>> { new List<Point> { new Point(5, 5), new Point(28, 5) }, new List<Point> { new Point(28, 5), new Point(28, 27) }, new List<Point> { new Point(28, 27), new Point(5, 27) }, new List<Point> { new Point(5, 27), new Point(5, 5) } };
-            //keyShape["LineShape"] = new List<List<Point>> { new List<Point> { new Point(3.19995, 3.20001), new Point(28, 3.20001) } };
-            //keyShape["DotShape"] = new List<List<Point>> { new List<Point> { new Point(3.19995, 3.19995), new Point(3.19995, 3.19995) } };
-
         }
         #endregion
         public DelegateCommand<object> AnnotDefaultValue_MenuCommand { get; set; }
@@ -157,6 +150,7 @@ namespace PDF_Master.ViewModels.FillAndSign
             InitSelectMultiAnnotMenu();
             SubscribeEvent();
             InitShapeList();
+            InitFillAndSignProperty();
         }
 
         #region 事件聚合器(来自AnnotToolContentViewModel)
@@ -774,11 +768,11 @@ namespace PDF_Master.ViewModels.FillAndSign
             }
             else
             {
-                if (IsCopyShape && !IsSelectShape)
-                {
-                    ShapeNames.Clear();
+                //if (IsCopyShape && !IsSelectShape)
+                //{
+                //    ShapeNames.Clear();
 
-                }
+                //}
                 freehandArgs = selectedArgs[0] as FreehandAnnotArgs;
                 foreach (var item in selectedArgs)
                 {
@@ -788,18 +782,18 @@ namespace PDF_Master.ViewModels.FillAndSign
                     {
                         if ((item as FreehandAnnotArgs).PageIndex == point.PageIndex && (item as FreehandAnnotArgs).AnnotIndex == point.AnnotIndex)
                         {
-                            if (IsCopyShape && !IsSelectShape)
-                            {
-                                ShapeNames.Add(point.Shape);
-                                Trace.WriteLine("woshi什么" + point.Shape);
-                            }
-
+                            //if (IsCopyShape && !IsSelectShape)
+                            //{
+                            //    ShapeNames.Add(point.Shape);
+                            //    Trace.WriteLine("woshi什么" + point.Shape);
+                            //}
                             newSelectedArgs.Add(item);
+                            break;
                         }
                     }
 
                 }
-                IsCopyShape = true;
+                //IsCopyShape = true;
                 //freehandArgs.RawPointList = ShapePoints;
                 //freehandArgs.InkColor = (SelectColor as SolidColorBrush).Color;
                 //freehandArgs.Transparency = 1;
@@ -1195,7 +1189,7 @@ namespace PDF_Master.ViewModels.FillAndSign
                 PDFViewer.AnnotEditHandler += PDFViewer_AnnotEditHandler;
                 PDFViewer.AnnotHoverHandler -= PDFViewer_AnnotHoverHandler;
                 PDFViewer.AnnotHoverHandler += PDFViewer_AnnotHoverHandler;
-                CommandManager.AddPreviewExecutedHandler(PDFViewer, PreviewExcuteView);
+                //CommandManager.AddPreviewExecutedHandler(PDFViewer, PreviewExcute);
                 KeyEventsHelper.KeyDown -= ShortCut_KeyDown;
                 KeyEventsHelper.KeyDown += ShortCut_KeyDown;
             }
@@ -1225,11 +1219,11 @@ namespace PDF_Master.ViewModels.FillAndSign
         {
             if (e.AnnotEventArgsList == null || (PDFViewer != null && PDFViewer.MouseMode == MouseModes.FormEditTool))
                 return;
-            if ((UIElement)sender != null)
-            {
+            //if ((UIElement)sender != null)
+            //{
 
-                CommandManager.AddPreviewExecutedHandler((UIElement)sender, PreviewExcute);
-            }
+            //    CommandManager.AddPreviewExecutedHandler((UIElement)sender, PreviewExcute);
+            //}
             switch (e.CommandType)
             {
                 case CommandType.Context:
@@ -1534,6 +1528,7 @@ namespace PDF_Master.ViewModels.FillAndSign
             if (e != null && e.Count > 0)
             {
                 Dictionary<int, List<int>> selectAnnotDicts = new Dictionary<int, List<int>>();
+
                 for (int i = 0; i < e.Count; i++)
                 {
                     AnnotEditEvent editEvent = e[i];
@@ -1551,23 +1546,25 @@ namespace PDF_Master.ViewModels.FillAndSign
                             {
                                 selectAnnotDicts[editEvent.PageIndex].Add(editEvent.AnnotIndex);
                             }
-                            if (editEvent.EditAnnotArgs.EventType == AnnotArgsType.AnnotFreehand)
-                            {
-                                if (IsSelectShape)
-                                {
-                                    if (ShapeNames.Count == 0) { continue; }
-                                    try
-                                    {
-                                        viewContentViewModel.FillAndSign.Add(new FillAndSignIsShape(pageindex, annotindex, ShapeNames[i]));
-                                        //PDFViewer.SelectAnnotation(pageindex, annotindex);
+                            //if (editEvent.EditAnnotArgs.EventType == AnnotArgsType.AnnotFreehand)
+                            //{
+                            //    //if (IsSelectShape)
+                            //    //{
+                            //    if (ShapeNames.Count == 0) { continue; }
+                            //    if (ShapeNames[i] == "Freehand") { continue; }
+                            //    try
+                            //    {
+                            //        viewContentViewModel.FillAndSign.Add(new FillAndSignIsShape(pageindex, annotindex, ShapeNames[i]));
+                            //        //PDFViewer.SelectAnnotation(pageindex, annotindex);
 
-                                        continue;
-                                    }
-                                    catch { continue; }
+                            //        continue;
+                            //    }
+                            //    catch { continue; }
 
-                                }
+                            //    //}
+
+                            //}
 
-                            }
                             if (editEvent.EditAnnotArgs.EventType == AnnotArgsType.AnnotStamp)
                             {
                                 if (Shape != "None")
@@ -1583,34 +1580,26 @@ namespace PDF_Master.ViewModels.FillAndSign
                                 }
                                 PDFViewer.SelectAnnotation(pageindex, annotindex);
                             }
+                            //else
+                            //{
+                            //    foreach (var point in viewContentViewModel.FillAndSign)
+                            //    {
+                            //        if (pageindex == point.PageIndex && annotindex == point.AnnotIndex)
+                            //        {
+                            //            point.Shape= Shape;
+                            //        }
+                            //    }
+                            //}
+
 
                             break;
                         case ActionType.Del:
-                            if (Shape != "None")
-                            {
-                                for (int j = 0; j < viewContentViewModel.FillAndSign.Count; j++)
-                                {
-                                    if (viewContentViewModel.FillAndSign[j].PageIndex == pageindex && viewContentViewModel.FillAndSign[j].AnnotIndex == annotindex)
-                                    {
-
-                                        viewContentViewModel.FillAndSign.Remove(viewContentViewModel.FillAndSign[j]);
-                                    }
-                                }
-                                for (int j = 0; j < viewContentViewModel.AnnotSignatures.Count; j++)
-                                {
-                                    if (viewContentViewModel.AnnotSignatures[j].Item1 == pageindex && viewContentViewModel.AnnotSignatures[j].Item2 == annotindex)
-                                    {
-
-                                        viewContentViewModel.AnnotSignatures.Remove(viewContentViewModel.AnnotSignatures[j]);
-                                    }
-                                }
-                            }
+                            
 
                             break;
                     }
                 }
-                IsSelectShape = false;
-                if (selectAnnotDicts.Count > 0)
+                if (selectAnnotDicts.Count > 1)
                 {
                     PDFViewer.SelectAnnotation(selectAnnotDicts);
                 }
@@ -1792,31 +1781,53 @@ namespace PDF_Master.ViewModels.FillAndSign
             viewContentViewModel.IsPropertyOpen = show;
         }
 
-        private void PreviewExcute(object sender, ExecutedRoutedEventArgs e)
-        {
-            if (e.Command == ApplicationCommands.Paste)
-            {
-                IsSelectShape = true;
-            }
-            if (e.Command == ApplicationCommands.Copy)
-            {
-
-                IsCopyShape = false;
-            }
-        }
-
-        private void PreviewExcuteView(object sender, ExecutedRoutedEventArgs e)
-        {
-            if (e.Command == ApplicationCommands.Paste)
-            {
-                IsSelectShape = true;
-            }
-            if (e.Command == ApplicationCommands.Copy)
-            {
-
-                IsCopyShape = false;
-            }
-        }
+        //private void PreviewExcute(object sender, ExecutedRoutedEventArgs e)
+        //{
+        //    if (e.Command == ApplicationCommands.Paste)
+        //    {
+        //        ShapeNames.Clear();
+        //        Trace.WriteLine("几次" + 1);
+        //        var items = PDFViewer.GetCopyAnnotData();
+        //        foreach (var item in items)
+        //        {
+        //            bool IsShape = false;
+        //            foreach (var point in viewContentViewModel.FillAndSign)
+        //            {
+        //                if ((item as FreehandAnnotArgs).PageIndex == point.PageIndex && (item as FreehandAnnotArgs).AnnotIndex == point.AnnotIndex)
+        //                {
+
+        //                    ShapeNames.Add(point.Shape);
+        //                    Trace.WriteLine("woshi什么" + point.Shape);
+        //                    IsShape = true;
+        //                    continue;
+        //                }
+
+        //            }
+        //            if (!IsShape) {
+        //                ShapeNames.Add("Freehand");
+        //                Trace.WriteLine("woshi什么" + "Freehand");
+        //            }
+        //        }
+        //    }
+        //    if (e.Command == ApplicationCommands.Copy)
+        //    {
+
+        //        IsCopyShape = false;
+        //    }
+        //}
+
+        //private void PreviewExcuteView(object sender, ExecutedRoutedEventArgs e)
+        //{
+        //    if (e.Command == ApplicationCommands.Paste)
+        //    {
+        //        IsSelectShape = true;
+        //    }
+        //    if (e.Command == ApplicationCommands.Copy)
+        //    {
+
+        //        IsCopyShape = false;
+        //    }
+        //}
 
         #region Navigation
 
@@ -1829,7 +1840,6 @@ namespace PDF_Master.ViewModels.FillAndSign
         {
             UnBindingPDFViewerHandler();
             ContextMenu contextMenu = App.Current.FindResource("ViewerContextMenu") as ContextMenu;
-
             ViewerContextMenu_Loaded(contextMenu, null, Visibility.Visible);
             viewContentViewModel.SelectedPrpoertyPanel("PropertyPanelContent", null);
             PDFViewer.SetMouseMode(MouseModes.PanTool);
@@ -1845,7 +1855,6 @@ namespace PDF_Master.ViewModels.FillAndSign
             BindingPDFViewerHandler();
             HookShapeIsCheck = true;
             HookShapeIsCheck = false;
-            InitFillAndSignProperty();
             ShowPropertyPanel(false);
             // InitCheckedEvent("RbtnTick");
             IsEdit = false;

+ 21 - 12
PDF Office/ViewModels/FillAndSign/PropertyPanel/ShapFillPropertyViewModel.cs

@@ -26,6 +26,8 @@ using Prism.Common;
 using ComPDFKitViewer.PdfViewer;
 using PDF_Master.CustomControl.CompositeControl;
 using Microsoft.Office.Interop.Word;
+using System.Diagnostics.Eventing.Reader;
+using PDF_Master.EventAggregators;
 
 namespace PDF_Master.ViewModels.FillAndSign.PropertyPanel
 {
@@ -258,9 +260,11 @@ namespace PDF_Master.ViewModels.FillAndSign.PropertyPanel
         {
             if (fillAndSignContentViewModel.isFirst)
             {
-                SelectColor = fillAndSignContentViewModel.SelectColor;
+                
+                ShapeColorColor = fillAndSignContentViewModel.SelectColor;
+                fillAndSignContentViewModel.SelectColor = ShapeColorColor;
                 FillOpacity = fillAndSignContentViewModel.FillOpacity;
-                LineWidth = fillAndSignContentViewModel.LineWidth;
+                //LineWidth = fillAndSignContentViewModel.LineWidth;
             }
 
             fillAndSignContentViewModel.isFirst = false;
@@ -486,6 +490,7 @@ namespace PDF_Master.ViewModels.FillAndSign.PropertyPanel
         private void InitShapesType(string tag)
         {
             ShapeType = UPDateShapeType(tag);
+            Trace.WriteLine("ShapeType" + ShapeType);
             fillAndSignContentViewModel.LineWidthMultiple = 1;
             switch (tag)
             {
@@ -512,7 +517,8 @@ namespace PDF_Master.ViewModels.FillAndSign.PropertyPanel
                 case "LineShape":
                     {
                         var lineShape = new PathGeometry();
-                        lineShape.AddGeometry(Geometry.Parse(" M0,10L20,10"));
+                        lineShape.AddGeometry(Geometry.Parse(" M0,10L20,10"));
+                        
                         DataPath = lineShape;
                     }
 
@@ -521,10 +527,12 @@ namespace PDF_Master.ViewModels.FillAndSign.PropertyPanel
                 case "DotShape":
                     {
                         //fillAndSignContentViewModel.LineWidthMultiple = 5;
-                        EllipseGeometry circlePath = new EllipseGeometry();
-                        circlePath.RadiusX = 2.4;
-                        circlePath.RadiusY = 2.4;
-                        circlePath.Center = new Point(2.4, 2.4);
+                        //EllipseGeometry circlePath = new EllipseGeometry();
+                        //circlePath.RadiusX = 2.4;
+                        //circlePath.RadiusY = 2.4;
+                        //circlePath.Center = new Point(2.4, 2.4);
+                        var circlePath = new PathGeometry();
+                        circlePath.AddGeometry(Geometry.Parse(" M2.4,2.4m-2.4,0a2.4,2.4,0,1,0,4.8,0a2.4,2.4,0,1,0,-4.8,0M2.4,2.4L2.4,4.8M2.4,2.4L4.8,2.4M2.4,2.4L2.4,0M2.4,2.4L0,2.4M2.4,2.4m-1.2,0a1.2,1.2,0,1,0,2.4,0a1.2,1.2,0,1,0,-2.4,0M2.4,2.4m-1.6,0a1.6,1.6,0,1,0,3.2,0a1.6,1.6,0,1,0,-3.2,0"));
                         DataPath = circlePath;
                     }
 
@@ -741,9 +749,7 @@ namespace PDF_Master.ViewModels.FillAndSign.PropertyPanel
 
                 IsSelected = !FillAndSignContentViewModel.IsEdit;
 
-
                 InitFillAndSignProperty();
-
                 if (IsMultiSelected)
                 {
 
@@ -913,12 +919,15 @@ namespace PDF_Master.ViewModels.FillAndSign.PropertyPanel
                     }
                     catch
                     {
-
-
+                        
                     }
                 }
 
             }
-        }
+           
+        } 
+        
+        
+        
     }
 }

+ 17 - 1
PDF Office/ViewModels/PropertyPanel/ViewModular/PageContentViewModel.cs

@@ -8,6 +8,7 @@ using Prism.Regions;
 using Prism.Services.Dialogs;
 using System;
 using System.Collections.Generic;
+using System.Diagnostics;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
@@ -48,7 +49,22 @@ namespace PDF_Master.ViewModels.PropertyPanel.ViewModular
         {
             if (PDFViewer != null)
             {
-                PDFViewer.GoToPage(PDFViewer.CurrentIndex - 1);
+                if (PDFViewer.RenderPageStart == PDFViewer.CurrentIndex)
+                {
+
+                    PDFViewer.GoToPage(PDFViewer.CurrentIndex - 1);
+                }
+                else
+                {
+                    if ((PDFViewer.RenderPageStart - 1) > 0)
+                    {
+                        PDFViewer.GoToPage(PDFViewer.RenderPageStart - 1);
+                    }
+                    else
+                    {
+                        PDFViewer.GoToPage(PDFViewer.CurrentIndex - 1);
+                    }
+                }
             }
         }
 

+ 21 - 2
PDF Office/ViewModels/PropertyPanel/ViewModular/ReadModeContentViewModel.cs

@@ -22,7 +22,8 @@ using static System.Windows.Forms.VisualStyles.VisualStyleElement;
 using Button = System.Windows.Controls.Button;
 using System.Windows.Controls.Primitives;
 using Microsoft.Office.Interop.Word;
-
+using System.Diagnostics;
+
 namespace PDF_Master.ViewModels.PropertyPanel.ViewModular
 {
     public class ReadModeContentViewModel : BindableBase, INavigationAware
@@ -147,7 +148,25 @@ namespace PDF_Master.ViewModels.PropertyPanel.ViewModular
         /// <param name="obj"></param>
         private void PrePageEvent()
         {
-            PDFViewer.GoToPage(PDFViewer.CurrentIndex - 1);
+            if (PDFViewer.RenderPageStart == PDFViewer.CurrentIndex)
+            {
+
+                PDFViewer.GoToPage(PDFViewer.CurrentIndex - 1);
+            }
+            else
+            {
+                if ((PDFViewer.RenderPageStart - 1) > 0)
+                {
+                    PDFViewer.GoToPage(PDFViewer.RenderPageStart - 1);
+                }
+                else
+                {
+                    PDFViewer.GoToPage(PDFViewer.CurrentIndex - 1);
+                }
+            }
+            Trace.WriteLine("当前" + PDFViewer.CurrentIndex);
+            Trace.WriteLine("结束" + PDFViewer.RenderPageEnd);
+            Trace.WriteLine("开始" + PDFViewer.RenderPageStart);
         }
 
         /// <summary>

+ 99 - 22
PDF Office/ViewModels/Tools/AnnotToolContentViewModel.Command.cs

@@ -9,6 +9,7 @@ using PDF_Master.CustomControl;
 using PDF_Master.EventAggregators;
 using PDF_Master.Helper;
 using PDF_Master.Model.AnnotPanel;
+using PDF_Master.Model.FillAndSign;
 using PDF_Master.Properties;
 using PDF_Master.ViewModels.BOTA;
 using PDF_Master.ViewModels.PropertyPanel.AnnotPanel;
@@ -79,9 +80,56 @@ namespace PDF_Master.ViewModels.Tools
 
                 PDFViewer.PreviewMouseLeftButtonDown -= PDFViewer_PreviewMouseLeftButtonDown;
                 PDFViewer.PreviewMouseLeftButtonDown += PDFViewer_PreviewMouseLeftButtonDown;
+                CommandManager.AddPreviewExecutedHandler(PDFViewer, PreviewExcutePDFViewer);
             }
         }
-
+        
+
+        //判断
+        private void PreviewExcutePDFViewer(object sender, ExecutedRoutedEventArgs e)
+        {
+            if (e.Command == ApplicationCommands.Paste)
+            {
+                IsPasteShape = true;
+                ShapeNames.Clear();
+                Trace.WriteLine("几次" + 1);
+                var items = PDFViewer.GetCopyAnnotData();
+                foreach (var item in items)
+                {
+                    bool IsShape = false;
+                    if (item is FreehandAnnotArgs)
+                    {
+                        foreach (var point in viewContentViewModel.FillAndSign)
+                        {
+
+                            if ((item as FreehandAnnotArgs).PageIndex == point.PageIndex && (item as FreehandAnnotArgs).AnnotIndex == point.AnnotIndex)
+                            {
+
+                                ShapeNames.Add(point.Shape);
+                                Trace.WriteLine("woshi什么" + point.Shape);
+                                IsShape = true;
+                                continue;
+                            }
+
+                        }
+                        if (!IsShape)
+                        {
+                            ShapeNames.Add("Annot");
+                            Trace.WriteLine("woshi什么" + "Freehand");
+                        }
+                    }
+                    else
+                    {
+                        ShapeNames.Add("Annot");
+                    }
+                }
+            }
+            if (e.Command == ApplicationCommands.Copy)
+            {
+
+
+            }
+        }
         private void UnBindingPDFViewerHandler()
         {
             if (PDFViewer != null)
@@ -994,8 +1042,33 @@ namespace PDF_Master.ViewModels.Tools
                     switch (editEvent.EditAction)
                     {
                         case ActionType.Add:
-                            //多选注释
-                            if (PropertyPanel.IsMultiSelected)
+
+                            #region 区分复制填写签名图形
+
+                            if (IsPasteShape)
+                            {
+                                if (editEvent.EditAnnotArgs.EventType == AnnotArgsType.AnnotFreehand)
+                                {
+
+                                    if (ShapeNames.Count != 0 && ShapeNames[i] != "Annot")
+                                    {
+                                        try
+                                        {
+                                            viewContentViewModel.FillAndSign.Add(new FillAndSignIsShape(editEvent.PageIndex, editEvent.AnnotIndex, ShapeNames[i]));
+                                        }
+                                        catch { }
+                                    }
+
+                                }
+                            }
+                            #endregion
+                            if (viewContentViewModel.CurrentBar != "TabItemAnnotation")
+                            {
+                                //填写与签名在此区域不选中,不添加selectAnnotDicts词典当中
+                            }
+                            else if (annot.EventType == AnnotArgsType.AnnotSquare || annot.EventType == AnnotArgsType.AnnotCircle ||
+                                annot.EventType == AnnotArgsType.AnnotLine || annot.EventType == AnnotArgsType.AnnotStamp ||
+                                annot.EventType == AnnotArgsType.AnnotFreeText || annot.EventType == AnnotArgsType.AnnotSticky/*|| annot.EventType == AnnotArgsType.AnnotFreehand*/)
                             {
                                 if (selectAnnotDicts.ContainsKey(editEvent.PageIndex) == false)
                                 {
@@ -1008,25 +1081,6 @@ namespace PDF_Master.ViewModels.Tools
                                 }
                                 isMultiple = true;
                             }
-                            else
-                            {
-                                if (annot.EventType == AnnotArgsType.AnnotSquare || annot.EventType == AnnotArgsType.AnnotCircle ||
-                               annot.EventType == AnnotArgsType.AnnotLine || annot.EventType == AnnotArgsType.AnnotStamp ||
-                               annot.EventType == AnnotArgsType.AnnotSticky/*||
-                               annot.EventType == AnnotArgsType.AnnotFreeText ||  annot.EventType == AnnotArgsType.AnnotFreehand*/)
-                                {
-                                    if (selectAnnotDicts.ContainsKey(editEvent.PageIndex) == false)
-                                    {
-                                        selectAnnotDicts.Add(editEvent.PageIndex, new List<int>());
-                                        selectAnnotDicts[editEvent.PageIndex].Add(editEvent.AnnotIndex);
-                                    }
-                                    else
-                                    {
-                                        selectAnnotDicts[editEvent.PageIndex].Add(editEvent.AnnotIndex);
-                                    }
-                                    isMultiple = true;
-                                }
-                            }
 
                             if (viewModel != null)
                             {
@@ -1068,7 +1122,29 @@ namespace PDF_Master.ViewModels.Tools
                             break;
 
                         case ActionType.Del:
+                            //isTabItemAnnotation = IsBOTATabItemShow(out bOTAContentViewModel, out bOTAContent, "TabItemAnnotation");
+                            //if (viewContentViewModel.OpenBOTA == true && bOTAContent.TabItemAnnotation.IsSelected)
+                            //{
+                            //    AnnotationContentViewModel viewModel = GetAnnotationContentViewModel(bOTAContentViewModel, out AnnotationContent annotation);
+                            //if (Shape != "None")
+                            {
+                                for (int j = 0; j < viewContentViewModel.FillAndSign.Count; j++)
+                                {
+                                    if (viewContentViewModel.FillAndSign[j].PageIndex == editEvent.PageIndex && viewContentViewModel.FillAndSign[j].AnnotIndex == editEvent.AnnotIndex)
+                                    {
 
+                                        viewContentViewModel.FillAndSign.Remove(viewContentViewModel.FillAndSign[j]);
+                                    }
+                                }
+                                for (int j = 0; j < viewContentViewModel.AnnotSignatures.Count; j++)
+                                {
+                                    if (viewContentViewModel.AnnotSignatures[j].Item1 == editEvent.PageIndex && viewContentViewModel.AnnotSignatures[j].Item2 == editEvent.AnnotIndex)
+                                    {
+
+                                        viewContentViewModel.AnnotSignatures.Remove(viewContentViewModel.AnnotSignatures[j]);
+                                    }
+                                }
+                            }
                             if (viewModel != null)
                             {
                                 int pageindex = editEvent.PageIndex;
@@ -1086,6 +1162,7 @@ namespace PDF_Master.ViewModels.Tools
                             break;
                     }
                 }
+                IsPasteShape = false;
                 if (isMultiple && selectAnnotDicts.Count >= 1)
                 {
                     PDFViewer.ClearSelectAnnots();

+ 4 - 0
PDF Office/ViewModels/Tools/AnnotToolContentViewModel.Properties.cs

@@ -129,6 +129,10 @@ namespace PDF_Master.ViewModels.Tools
         #endregion 注释工具
 
         #endregion 属性
+        // 填写与签名图案名字链表 
+        private List<string> ShapeNames = new List<string>();
+       // 是否处于打印
+        private bool IsPasteShape = false;
 
         public string PropertyRegionName { get; set; }
         private IEventAggregator events;

+ 3 - 0
PDF Office/Views/Dialog/HomePageToolsDialogs/HomePagePrinter/HomePagePrinterDialog.xaml

@@ -118,6 +118,9 @@
                                                 <i:EventTrigger EventName="SelectionChanged">
                                                     <i:InvokeCommandAction Command="{Binding SetPageRangeSelectionIndexCommand}" CommandParameter="{Binding ElementName=PageRangeComboBox}"></i:InvokeCommandAction>
                                                 </i:EventTrigger>
+                                                <i:EventTrigger EventName="TextChanged">
+                                                    <i:InvokeCommandAction Command="{Binding PageTextChangedCommand}" CommandParameter="{Binding ElementName=PageRangeComboBox}" />
+                                                </i:EventTrigger>
                                                 <i:KeyTrigger FiredOn="KeyDown" Key="Return">
                                                     <i:InvokeCommandAction Command="{Binding SetCustomPageRangeCommand}" CommandParameter="{Binding ElementName=PageRangeComboBox}"></i:InvokeCommandAction>
                                                 </i:KeyTrigger>

+ 1 - 1
PDF Office/Views/FillAndSign/PropertyPanel/ShapFillProperty.xaml

@@ -84,7 +84,7 @@
                         </i:EventTrigger>
                     </i:Interaction.Triggers>
                 </CompositeControl:SlidContent>
-                <CompositeControl:ColorContent  x:Name="cusColor" Grid.Row="1"  ItemSource="{Binding ShapeColorItems}" UIColor="{Binding ShapeColorColor,Mode=TwoWay}"/>
+                <CompositeControl:ColorContent  x:Name="cusColor" Grid.Row="1"  ItemSource="{Binding ShapeColorItems}" UIColor="{Binding ShapeColorColor,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
 
             </Grid>