Explorar el Código

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

OYXH\oyxh hace 2 años
padre
commit
3e5b8a90da
Se han modificado 23 ficheros con 342 adiciones y 72 borrados
  1. BIN
      PDF Office/ComPDFKit.Viewer.dll
  2. 1 1
      PDF Office/Model/Dialog/ConverterDialogs/ConverterDialogsModel.cs
  3. 2 2
      PDF Office/SDKLisence.xml
  4. 1 5
      PDF Office/Styles/ContextMenuStyle.xaml
  5. 8 1
      PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterCSVDialogViewModel.cs
  6. 11 0
      PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterExcelDialogViewModel.cs
  7. 10 0
      PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterHTMLDialogViewModel.cs
  8. 11 1
      PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterImgDialogViewModel.cs
  9. 11 1
      PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterPPTDialogViewModel.cs
  10. 12 0
      PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterRTFDialogViewModel.cs
  11. 11 0
      PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterTextDialogViewModel.cs
  12. 12 1
      PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterWordDialogViewModel.cs
  13. 6 0
      PDF Office/ViewModels/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageConverter/HomePageConverterDialogViewModel.cs
  14. 2 1
      PDF Office/ViewModels/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageConverter/HomePageConverterExcelViewModel.cs
  15. 6 0
      PDF Office/ViewModels/Dialog/HomePageToolsDialogs/HomePageExtractDialogViewModel.cs
  16. 21 11
      PDF Office/ViewModels/Dialog/HomePageToolsDialogs/HomePageSplitDialogViewModel.cs
  17. 96 18
      PDF Office/ViewModels/Dialog/Redaction/MarkSettingDialogViewModel.cs
  18. 56 3
      PDF Office/ViewModels/EditTools/Redaction/RedactionContentViewModel.cs
  19. 8 6
      PDF Office/ViewModels/HomePanel/PDFTools/QuickToolsContentViewModel.cs
  20. 27 16
      PDF Office/ViewModels/PropertyPanel/PDFEdit/ImageEditPropertyViewModel.cs
  21. 29 2
      PDF Office/ViewModels/ViewContentViewModel.cs
  22. 0 2
      PDF Office/Views/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageBates/HomePageBatesDialog.xaml.cs
  23. 1 1
      PDF Office/Views/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageConverter/HomePageConverterExcel.xaml

BIN
PDF Office/ComPDFKit.Viewer.dll


+ 1 - 1
PDF Office/Model/Dialog/ConverterDialogs/ConverterDialogsModel.cs

@@ -34,7 +34,7 @@ namespace PDF_Office.Model.Dialog.ConverterDialogs
         /// <summary>
         /// 页面信息
         /// </summary>
-        public string PageRange = "1,3-4,10";
+        public string PageRange = "";
 
         /// <summary>
         /// 文档密码;

+ 2 - 2
PDF Office/SDKLisence.xml

@@ -1,6 +1,6 @@
 <Lisences
-	devKey = "BK8BcXWm+YbGRpEONe43pEJXhshAiAwWoBQgwlEUnxFBkCVal4AYW01RnbuwHCdkktvy9sAYs/SUflLR+KOMayg6z2TE2G3OhIXf95sN8k1sk947zrPGeHPtHx7gMaurYrscLDAumvtymhg4rMTg7XFKfBtchlAi0bE+wPTsqa8="
-  devSecret = "mG0c3O3Mzeu5dkZJW3gpqq9uA7o7EGQveSC38Q8TK4iYSXB8erGstkUyaynN7k8ocNCYAAzc9CPxiym2TlqeSUWpLOaOv47bs7x+UqfQzn9hrp9sGpqfp0B228KI+IMTu4aGVjtYuk+Uxs/kosIBwyVLBY93oKLBB8UJg4t07605BGbaBKUlDopA0iGq1HSnRAJhqHxGgIZ+m3BxAFwgabp2OdkT7I9klGmA/4KertEmsKlSJ3WFqmDWhwfT73yCYDNQpuarUAQxiS1PJu8kUw=="
+	devKey = "sTHSivIW4YnZQavIYDLVw4vaFcN5DQTUtRGrVyv5p9aeaHX3GirG/MBxl6Wy9TJbNOwR4CU6LPjHmGe3Po3OtBCPqIRheam9+LomScw3AvoUTHFlG1134e2J4enF43WJQ6PyOnjwZqsG1kUdlBPNztkoPzDAE2pQKgZWf6V2i34="
+    devSecret = "mG0c3O3Mzeu5dkZJW3gpqq9uA7o7EGQveSC38Q8TK4gQurxTxGuBlGAhs0P1mD3X3bHT+AHfcLiymaqE4DY7kTFHoPs9I3tl5ErS+BHdzHRhrp9sGpqfp0B228KI+IMTu4aGVjtYuk+Uxs/kosIBw1367/WkJ00tM7U7tttD6cfaiHpW8pgW2aur3AxuQIBBLuJD5gcmNxTYW3KA32JLG8alfyXjKFVS3gka9bngvwfZ7GuNXybjKlmz1tnN6iVHpnbSj+xOHhWEperY4HHrSg=="
 	userKey = "iBPRM/Tz8b6Z1G2GQt52X7hiNCGfVYXztnPjalgrgARvqfKV6lFNH8QeScTzBRYI8GGFpwelfgh790Kd9JmL7V4adI1jCiFHUT2DLT7QucxY5Nkgys2aJItQS482Ck2G2Xf8gNgojxYxRt65o/MEzkj93foj8qIdfHagXsSorSs="
 	userSecret="mG0c3O3Mzeu5dkZJW3gpqq9uA7o7EGQveSC38Q8TK4ivEHOmPIqbfhpDnKKj+7Ymj2rXQvfZRmke06HMV+3tt064G64WjPW8+EbGCNZaAh1hrp9sGpqfp0B228KI+IMTu4aGVjtYuk+Uxs/kosIBw1FKJi6HYB+DuugQyaqI2prfej861QnJrU4s2T/npZK/"
 	ConverterDevKey="ErjZKxcU3SPvUohGZo0CBgy0XdkAsZqUYqCTbfn1AYsCQ6mxCucx61UPqLT7MDQ0n+5/oKnWY9SSk8Xv5pJtYYHD87HRdYNG+QNCaoPGHulyfVxGllmzU71U7WjflfZBFvhg/UQOFiz3OsAVKz4k2YkXPzQgNaS3glym42PVpj4="

+ 1 - 5
PDF Office/Styles/ContextMenuStyle.xaml

@@ -159,11 +159,7 @@
         </MenuItem>
     </ContextMenu>
     <ContextMenu x:Key="RedactionContextMenu">
-        <MenuItem
-            Name="MenuDelete"
-            Command="{x:Static ApplicationCommands.Delete}"
-            CommandParameter="{Binding RelativeSource={RelativeSource Mode=Self}}"
-            Header="Delete" />
+        <MenuItem Name="MenuDelete" Header="Delete" />
         <Separator Style="{StaticResource HorizontalSeparatorStyle}" />
         <MenuItem Name="MenuProperties" Header="Properties..." />
         <MenuItem Name="MenuSetDeufalt" Header="Use Current Properties as New Default" />

+ 8 - 1
PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterCSVDialogViewModel.cs

@@ -179,9 +179,16 @@ namespace PDF_Office.ViewModels.Dialog.ConverterDialogs
             FolderBrowserDialog dlg = new FolderBrowserDialog();
             if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
             {
-                ConverterCSVModel.OutputPath =dlg.SelectedPath.Trim();
+                ConverterCSVModel.OutputPath = dlg.SelectedPath.Trim();
             }
+            else { return; }
             HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref ConverterCSVModel.PageRange, PageRangeText, true, CurrentPageIndex);
+            if (ConverterCSVModel.PageRange == "")
+            {
+                Trace.WriteLine("输入不对");
+                MessageBoxEx.Show("输入不对");
+                return;
+            }
             char[] enumerationSeparator = new char[] { ',' };
             char[] rangeSeparator = new char[] { '-' };
             if (!CommonHelper.GetPagesInRange(ref ConverterCSVModel.PageIndexLists, ConverterCSVModel.PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))

+ 11 - 0
PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterExcelDialogViewModel.cs

@@ -87,11 +87,22 @@ namespace PDF_Office.ViewModels.Dialog.ConverterDialogs
             {
                 ConverterExcelModel.OutputPath = dlg.SelectedPath.Trim();
             }
+            else
+            {
+                return;
+            }
             HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref ConverterExcelModel.PageRange, PageRangeText, true, CurrentPageIndex);
+            if (ConverterExcelModel.PageRange == "")
+            {
+                Trace.WriteLine("输入不对");
+                MessageBoxEx.Show("输入不对");
+                return;
+            }
             char[] enumerationSeparator = new char[] { ',' };
             char[] rangeSeparator = new char[] { '-' };
             if (!CommonHelper.GetPagesInRange(ref ConverterExcelModel.PageIndexLists, ConverterExcelModel.PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
             { //TODO
+
                 Trace.WriteLine("输入不对");
                 MessageBoxEx.Show("输入不对");
                 return;

+ 10 - 0
PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterHTMLDialogViewModel.cs

@@ -84,12 +84,22 @@ namespace PDF_Office.ViewModels.Dialog.ConverterDialogs
             {
                 ConverterHTMLModel.OutputPath = dlg.SelectedPath.Trim();
             }
+            else {
+                return;
+            }
          
             HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref ConverterHTMLModel.PageRange, PageRangeText, true, CurrentPageIndex);
+            if (ConverterHTMLModel.PageRange == "")
+            {
+                Trace.WriteLine("输入不对");
+                MessageBoxEx.Show("输入不对");
+                return;
+            }
             char[] enumerationSeparator = new char[] { ',' };
             char[] rangeSeparator = new char[] { '-' };
             if (!CommonHelper.GetPagesInRange(ref ConverterHTMLModel.PageIndexLists, ConverterHTMLModel.PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
             { //TODO
+
                 Trace.WriteLine("输入不对");
                 MessageBoxEx.Show("输入不对");
                 return;

+ 11 - 1
PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterImgDialogViewModel.cs

@@ -210,16 +210,26 @@ namespace PDF_Office.ViewModels.Dialog.ConverterDialogs
             {
                 ConverterImgModel.OutputPath = dlg.SelectedPath.Trim();
             }
+            else
+            {
+                return;
+            }
             HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref ConverterImgModel.PageRange, PageRangeText, true, CurrentPageIndex);
+            if (ConverterImgModel.PageRange == "")
+            {
+                Trace.WriteLine("输入不对");
+                MessageBoxEx.Show("输入不对");
+                return;
+            }
             char[] enumerationSeparator = new char[] { ',' };
             char[] rangeSeparator = new char[] { '-' };
             if (!CommonHelper.GetPagesInRange(ref ConverterImgModel.PageIndexLists, ConverterImgModel.PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
             { //TODO
+
                 Trace.WriteLine("输入不对");
                 MessageBoxEx.Show("输入不对");
                 return;
             }
-
             DialogParameters value = new DialogParameters();
             value.Add(ParameterNames.ConverterType, "Img");
             value.Add(ParameterNames.ConverterTypeModel, ConverterImgModel);

+ 11 - 1
PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterPPTDialogViewModel.cs

@@ -83,16 +83,26 @@ namespace PDF_Office.ViewModels.Dialog.ConverterDialogs
             {
                 ConverterPPTModel.OutputPath = dlg.SelectedPath.Trim();
             }
+            else
+            {
+                return;
+            }
             HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref ConverterPPTModel.PageRange, PageRangeText, true, CurrentPageIndex);
+            if (ConverterPPTModel.PageRange == "")
+            {
+                Trace.WriteLine("输入不对");
+                MessageBoxEx.Show("输入不对");
+                return;
+            }
             char[] enumerationSeparator = new char[] { ',' };
             char[] rangeSeparator = new char[] { '-' };
             if (!CommonHelper.GetPagesInRange(ref ConverterPPTModel.PageIndexLists, ConverterPPTModel.PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
             { //TODO
+
                 Trace.WriteLine("输入不对");
                 MessageBoxEx.Show("输入不对");
                 return;
             }
-            
             DialogParameters value = new DialogParameters();
             value.Add(ParameterNames.ConverterType, "PPT");
             value.Add(ParameterNames.ConverterTypeModel, ConverterPPTModel);

+ 12 - 0
PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterRTFDialogViewModel.cs

@@ -82,11 +82,23 @@ namespace PDF_Office.ViewModels.Dialog.ConverterDialogs
             {
                 ConverterRTFModel.OutputPath = dlg.SelectedPath.Trim();
             }
+            else
+            {
+                return;
+            }
             HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref ConverterRTFModel.PageRange, PageRangeText, true, CurrentPageIndex);
+            if (ConverterRTFModel.PageRange == "")
+            {
+                Trace.WriteLine("输入不对");
+                MessageBoxEx.Show("输入不对");
+                return;
+            }
+
             char[] enumerationSeparator = new char[] { ',' };
             char[] rangeSeparator = new char[] { '-' };
             if (!CommonHelper.GetPagesInRange(ref ConverterRTFModel.PageIndexLists, ConverterRTFModel.PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
             { //TODO
+
                 Trace.WriteLine("输入不对");
                 MessageBoxEx.Show("输入不对");
                 return;

+ 11 - 0
PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterTextDialogViewModel.cs

@@ -84,11 +84,22 @@ namespace PDF_Office.ViewModels.Dialog.ConverterDialogs
             {
                 ConverterTextModel.OutputPath = dlg.SelectedPath.Trim();
             }
+            else
+            {
+                return;
+            }
             HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref ConverterTextModel.PageRange, PageRangeText,true, CurrentPageIndex);
+            if (ConverterTextModel.PageRange == "")
+            {
+                Trace.WriteLine("输入不对");
+                MessageBoxEx.Show("输入不对");
+                return;
+            }
             char[] enumerationSeparator = new char[] { ',' };
             char[] rangeSeparator = new char[] { '-' };
             if (!CommonHelper.GetPagesInRange(ref ConverterTextModel.PageIndexLists, ConverterTextModel.PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
             { //TODO
+
                 Trace.WriteLine("输入不对");
                 MessageBoxEx.Show("输入不对");
                 return;

+ 12 - 1
PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterWordDialogViewModel.cs

@@ -85,15 +85,26 @@ namespace PDF_Office.ViewModels.Dialog.ConverterDialogs
             {
                 ConverterWordModel.OutputPath = dlg.SelectedPath.Trim();
             }
+            else
+            {
+                return;
+            }
             HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref ConverterWordModel.PageRange, PageRangeText, true, CurrentPageIndex);
+            if (ConverterWordModel.PageRange == "")
+            {
+                Trace.WriteLine("输入不对");
+                MessageBoxEx.Show("输入不对");
+                return;
+            }
             char[] enumerationSeparator = new char[] { ',' };
             char[] rangeSeparator = new char[] { '-' };
             if (!CommonHelper.GetPagesInRange(ref ConverterWordModel.PageIndexLists, ConverterWordModel.PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
             { //TODO
+
+                Trace.WriteLine("输入不对");
                 MessageBoxEx.Show("输入不对");
                 return;
             }
-            
             DialogParameters value = new DialogParameters();
             value.Add(ParameterNames.ConverterType, "Word");
             value.Add(ParameterNames.ConverterTypeModel, ConverterWordModel);

+ 6 - 0
PDF Office/ViewModels/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageConverter/HomePageConverterDialogViewModel.cs

@@ -347,6 +347,12 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcess
                         break;
                 }
                 document.Release();
+                if (!result) {
+                    PDFDataTable.Rows[fileNamesIndex]["FileState"] = "转档出错";
+                    PDFCurrentDataTable.Rows[fileNamesIndex]["FileState"] = "转档出错";
+                    fileNamesIndex++;
+                    continue;
+                }
                 PDFDataTable.Rows[fileNamesIndex]["FileState"] = "完成";
                 PDFCurrentDataTable.Rows[fileNamesIndex]["FileState"] = "完成";
                 fileNamesIndex++;

+ 2 - 1
PDF Office/ViewModels/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageConverter/HomePageConverterExcelViewModel.cs

@@ -25,7 +25,7 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcess
         public HomePageConverterExcelViewModel()
         {
             RadioButtonCommand = new DelegateCommand<string>(radiobutton);
-            homePageConverterDialogViewModel.ConverterExcelModel.excelOption = ConverterExcelModel.ExcelOptions();
+            
         }
         #region 逻辑函数
         private void radiobutton(string e)
@@ -61,6 +61,7 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcess
             if (homePageConverterVM != null)
             {
                 homePageConverterDialogViewModel = homePageConverterVM;
+                homePageConverterDialogViewModel.ConverterExcelModel.excelOption = ConverterExcelModel.ExcelOptions();
             }
         }
 

+ 6 - 0
PDF Office/ViewModels/Dialog/HomePageToolsDialogs/HomePageExtractDialogViewModel.cs

@@ -82,6 +82,12 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs
         private void extract()
         {
             HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref extractModel.PageRange, PageRangeText);
+            if (extractModel.PageRange == "")
+            {
+                Trace.WriteLine("输入不对");
+                MessageBoxEx.Show("输入不对");
+                return;
+            }
             char[] enumerationSeparator = new char[] { ',' };
             char[] rangeSeparator = new char[] { '-' };
             if (!CommonHelper.GetPagesInRange(ref extractModel.PageParm, extractModel.PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))

+ 21 - 11
PDF Office/ViewModels/Dialog/HomePageToolsDialogs/HomePageSplitDialogViewModel.cs

@@ -232,17 +232,26 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs
 
         private void split()
         {
-            HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref splitModel.PageRange, PageRangeText);
-            FileNameIsCheck();
-            char[] enumerationSeparator = new char[] { ',' };
-            char[] rangeSeparator = new char[] { '-' };
-            if (!CommonHelper.GetPagesInRange(ref splitModel.PageParm, splitModel.PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
-            { //TODO
-                Trace.WriteLine("输入不对");
-                MessageBoxEx.Show("输入不对");
-                return;
-            }
-            Trace.WriteLine("splitModel.PageRange: " + splitModel.PageRange + "-----");
+            if (splitModel.Mode == HomePageSplitDialogModel.SplitMode.CustomPageRange)
+            {
+                HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref splitModel.PageRange, PageRangeText);
+                FileNameIsCheck();
+                if (splitModel.PageRange == "")
+                {
+                    Trace.WriteLine("输入不对");
+                    MessageBoxEx.Show("输入不对");
+                    return;
+                }
+                char[] enumerationSeparator = new char[] { ',' };
+                char[] rangeSeparator = new char[] { '-' };
+                if (!CommonHelper.GetPagesInRange(ref splitModel.PageParm, splitModel.PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
+                { //TODO
+                    Trace.WriteLine("输入不对");
+                    MessageBoxEx.Show("输入不对");
+                    return;
+                }
+                Trace.WriteLine("splitModel.PageRange: " + splitModel.PageRange + "-----");
+            }
             if (splitModel.Mode == HomePageSplitDialogModel.SplitMode.AveragePages)
             {
                 if (AveragePagesText != "")
@@ -462,6 +471,7 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs
                 if (PageRangeSelectIndex == "0" || PageRangeSelectIndex == "1" || PageRangeSelectIndex == "2")
                 {
                     HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref PageRange, PageRangeText);
+
                     char[] enumerationSeparator = new char[] { ',' };
                     char[] rangeSeparator = new char[] { '-' };
                     if (!CommonHelper.GetPagesInRange(ref SplitPreview.PageIndexLists, PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))

+ 96 - 18
PDF Office/ViewModels/Dialog/Redaction/MarkSettingDialogViewModel.cs

@@ -138,6 +138,23 @@ namespace PDF_Office.ViewModels.Dialog.Redaction
             set
             {
                 SetProperty(ref fontFamilySelectedIndex, value);
+                if(value>0)
+                {
+                    switch (value)
+                    {
+                        case 0:
+                            fontFamily = "Courier";
+                            break;
+                        case 1:
+                            fontFamily = "Helvetica";
+                            break;
+                        case 2:
+                            fontFamily = "Times Roman";
+                            break;
+                        default:
+                            break;
+                    }
+                }
             }
         }
 
@@ -151,11 +168,33 @@ namespace PDF_Office.ViewModels.Dialog.Redaction
             set
             {
                 SetProperty(ref fontWeightSelectedIndex, value);
+                if (value > 0)
+                {
+                    switch (value)
+                    {
+                        case 0:
+                            fontWeight = FontWeights.Regular;
+                            break;
+                        case 1:
+                            fontWeight = FontWeights.Bold;
+                            break;
+                        case 2:
+                            fontWeight = FontWeights.SemiBold;
+                            break;
+                        case 3:
+                            fontWeight = FontWeights.UltraBold;
+                            break;
+                        default:
+                            break;
+                    }
+                }
             }
         }
 
         private FontWeight fontWeight = FontWeights.Regular;
 
+        private int fontSize = 12;
+
         private int fontSizeSelectedIndex;
 
         public int FontSizeSelectedIndex
@@ -173,6 +212,8 @@ namespace PDF_Office.ViewModels.Dialog.Redaction
 
         public List<string> FontSizes { get; set; }
 
+        public TextAlignment textAlignment { get; set; } = TextAlignment.Left;
+
 
 
         public MarkSettingDialogViewModel()
@@ -188,6 +229,7 @@ namespace PDF_Office.ViewModels.Dialog.Redaction
 
         private void InitFontFamily()
         {
+            FontFamilys = new List<string>();
             FontFamilys.Add("Courier New");
             FontFamilys.Add("Arial");
             FontFamilys.Add("Times New Roman");
@@ -195,6 +237,7 @@ namespace PDF_Office.ViewModels.Dialog.Redaction
 
         private void InitFontWeight()
         {
+            FontWeight = new List<string>();
             FontWeight.Add("Regular");
             FontWeight.Add("Bold");
             FontWeight.Add("Italic");
@@ -203,6 +246,7 @@ namespace PDF_Office.ViewModels.Dialog.Redaction
 
         private void InitFontSize()
         {
+            FontSizes = new List<string>();
             FontSizes.Add("Auto");
         }
 
@@ -213,26 +257,44 @@ namespace PDF_Office.ViewModels.Dialog.Redaction
 
         private void ok()
         {
-            //annotArgs.UpdateAttrib(AnnotAttrib.FillColor, frm.SaveredactionArgs.BgColor);
-            //annotArgs.UpdateAttrib(AnnotAttrib.NoteText, frm.SaveredactionArgs.Content);
-            //annotArgs.UpdateAttrib(AnnotAttrib.FontColor, frm.SaveredactionArgs.FontColor);
+            AnnotAttribEvent eventargs = AnnotAttribEvent.GetAnnotAttribEvent(annotArgs, annotArgs.GetAnnotAttrib());
+            eventargs.UpdateAttrib(AnnotAttrib.FillColor,BgColor);
+            eventargs.UpdateAttrib(AnnotAttrib.NoteText, OvertText);
+            eventargs.UpdateAttrib(AnnotAttrib.FontColor,FontColor);
 
-            //annotArgs.UpdateAttrib(AnnotAttrib.Color, frm.SaveredactionArgs.LineColor);
+            eventargs.UpdateAttrib(AnnotAttrib.Color, LineColor);
 
-            //annotArgs.UpdateAttrib(AnnotAttrib.FontSize, frm.SaveredactionArgs.FontSize);
+            eventargs.UpdateAttrib(AnnotAttrib.FontSize,fontSize);
 
-            //annotArgs.UpdateAttrib(AnnotAttrib.TextAlign, frm.SaveredactionArgs.Align);
-            //if (IsUseText)
-            //{
-            //    annotArgs.UpdateAttrib(AnnotAttrib.NoteText, string.Empty);
-            //}
-            //annotArgs.UpdateAnnot();
+            eventargs.UpdateAttrib(AnnotAttrib.TextAlign, textAlignment);
+            eventargs.UpdateAttrib(AnnotAttrib.FontWeight, fontWeight);
+            if (IsUseText)
+            {
+                eventargs.UpdateAttrib(AnnotAttrib.NoteText, string.Empty);
+            }
+            eventargs.UpdateAnnot();
             RequestClose.Invoke(new DialogResult(ButtonResult.OK));
         }
 
         private void align(string tag)
         {
-
+            switch (tag)
+            {
+                case "Left":
+                    textAlignment = TextAlignment.Left;
+                    break;
+                case "Center":
+                    textAlignment = TextAlignment.Center;
+                    break;
+                case "Right":
+                    textAlignment = TextAlignment.Right;
+                    break;
+                case "Strech":
+                    textAlignment = TextAlignment.Justify;
+                    break;
+                default:
+                    break;
+            }
         }
 
         public bool CanCloseDialog()
@@ -256,20 +318,36 @@ namespace PDF_Office.ViewModels.Dialog.Redaction
             OvertText = annotArgs.Content;
             switch (annotArgs.FontFamily.ToString())
             {
-                case "":
-                    FontFamilySelectedIndex = 0;
-                    break;
-                case "1":
+
+                case "Helvetica":
                     FontFamilySelectedIndex = 1;
                     break;
-                case "2":
+                case "Times Roman":
                     FontFamilySelectedIndex = 2;
                     break;
                 default:
+                case "Courier":
+                    FontFamilySelectedIndex = 0;
                     break;
             }
 
-
+            switch (annotArgs.Align)
+            {
+                case TextAlignment.Left:
+                    LeftChecked = true;
+                    break;
+                case TextAlignment.Right:
+                    RightChecked = true;
+                    break;
+                case TextAlignment.Center:
+                    CenterChecked = true;
+                    break;
+                case TextAlignment.Justify:
+                    StrechChecked = true;
+                    break;
+                default:
+                    break;
+            }
         }
     }
 }

+ 56 - 3
PDF Office/ViewModels/EditTools/Redaction/RedactionContentViewModel.cs

@@ -85,6 +85,21 @@ namespace PDF_Office.ViewModels.EditTools.Redaction
             }
         }
 
+        private bool isEnable = false; 
+
+        /// <summary>
+        /// 按钮是否启用
+        /// </summary>
+        public bool IsEnable
+        {
+            get { return isEnable; }
+            set
+            {
+                SetProperty(ref isEnable, value);
+            }
+        }
+
+
 
         public RedactionContentViewModel(IRegionManager regionManager, IEventAggregator eventAggregator, IDialogService dialogService)
         {
@@ -95,8 +110,8 @@ namespace PDF_Office.ViewModels.EditTools.Redaction
             RedactionDocumentRegionName = Guid.NewGuid().ToString();
             Unicode = App.mainWindowViewModel.SelectedItem.Unicode;
             CloseEditToolCommand = new DelegateCommand(CloseEditTool);
-            ApplyCommmand = new DelegateCommand(apply);
-            EraseCommand = new DelegateCommand(erase);
+            ApplyCommmand = new DelegateCommand(apply,CanExcute).ObservesProperty(() => IsEnable);
+            EraseCommand = new DelegateCommand(erase, CanExcute).ObservesProperty(() => IsEnable);
             PageRedactionCommand = new DelegateCommand(pageMark);
 
             eventAggregator.GetEvent<RedactionCommandEvent>().Subscribe(SetContextMenu, e => e.UniCode == Unicode);
@@ -113,6 +128,10 @@ namespace PDF_Office.ViewModels.EditTools.Redaction
                     var item = contextmenu.Items[i] as MenuItem;
                     switch (item.Name)
                     {
+                        case "MenuDelete":
+                            item.Command = ApplicationCommands.Delete;
+                            item.CommandParameter = (UIElement)item;
+                            break;
                         case "MenuSetDeufalt":
                             item.Command = new DelegateCommand<RedactionCommandEventArgs>(SetDefualtProperty);
                             item.CommandParameter = obj;
@@ -149,7 +168,7 @@ namespace PDF_Office.ViewModels.EditTools.Redaction
             DialogParameters keyValues = new DialogParameters();
             keyValues.Add(ParameterNames.DataModel,args.args.AnnotEventArgsList[0] as RedactionAnnotArgs);
 
-            Settings.Default.RedactionsSettings.SetDefualtValue(annoteargs.Content, annoteargs.LineColor,annoteargs.BgColor,annoteargs.FontColor, (int)annoteargs.FontSize,string.IsNullOrEmpty(annoteargs.Content) ? false : true, annoteargs.Align, annoteargs.FontFamily.ToString(),FontWeights.Regular);
+            Settings.Default.RedactionsSettings.SetDefualtValue(annoteargs.Content, annoteargs.LineColor,annoteargs.BgColor,annoteargs.FontColor, (int)annoteargs.FontSize,string.IsNullOrEmpty(annoteargs.Content) ? false : true, annoteargs.Align, annoteargs.FontFamily.ToString(),annoteargs.FontWeight);
         }
 
         /// <summary>
@@ -198,7 +217,19 @@ namespace PDF_Office.ViewModels.EditTools.Redaction
         /// </summary>
         private void erase()
         {
+            AlertsMessage alertsMessage = new AlertsMessage();
+            alertsMessage.ShowDialog("","Replace selected sensitive content with color blocks."+
+
+"This action will permanently delete the marked ciphertext information from this document and you will not be able to retrieve the marked ciphertext information.", "Cancel", "Apply & Save As");
+            if (alertsMessage.result == ContentResult.Ok)
+            {
+                viewContentViewModel.saveAsFile(false,true);
+            }
+        }
 
+        private bool CanExcute()
+        {
+            return IsEnable;
         }
 
         private void pageMark()
@@ -354,7 +385,10 @@ namespace PDF_Office.ViewModels.EditTools.Redaction
             App.mainWindowViewModel.SelectedItem.IsInReadctonMode = true;
             navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out PDFViewer);
             navigationContext.Parameters.TryGetValue<ViewContentViewModel>(ParameterNames.ViewContentViewModel, out viewContentViewModel);
+            PDFViewer.InfoChanged -= PDFViewer_InfoChanged;
             PDFViewer.InfoChanged += PDFViewer_InfoChanged;
+            PDFViewer.AnnotEditHandler -= PDFViewer_AnnotEditHandler;
+            PDFViewer.AnnotEditHandler += PDFViewer_AnnotEditHandler;
             CurrentPage = PDFViewer.CurrentIndex + 1;
             PageCount = PDFViewer.Document.PageCount;
             if (!redactionRegion.Regions[RedactionDocumentRegionName].Views.Contains(PDFViewer))
@@ -384,6 +418,25 @@ namespace PDF_Office.ViewModels.EditTools.Redaction
   
         }
 
+        private void PDFViewer_AnnotEditHandler(object sender, List<AnnotEditEvent> e)
+        {
+            //添加注释后检测是否有未应用的标记密文注释
+            IsEnable = false;
+            for(int i=0;i<PDFViewer.Document.PageCount;i++)
+            {
+                var annotes = PDFViewer.GetAnnotCommentList(i,PDFViewer.Document);
+                for(int j=0;j<annotes.Count;j++)
+                {
+                    if(annotes[j].EventType == AnnotArgsType.AnnotRedaction)
+                    {
+                        IsEnable = true;
+                        return;
+                    }
+                }
+            }
+   
+        }
+
         private void PDFViewer_InfoChanged(object sender, KeyValuePair<string, object> e)
         {
             isFromSelf = true;

+ 8 - 6
PDF Office/ViewModels/HomePanel/PDFTools/QuickToolsContentViewModel.cs

@@ -115,7 +115,7 @@ namespace PDF_Office.ViewModels.HomePanel.PDFTools
                     case PDFFnType.Split:
 
                         viewer.InitDocument(dlg.FileName);
-                        CheckPassword(viewer);
+                        if (!CheckPassword(viewer)) {return;}
                         DialogParameters splitvalue = new DialogParameters();
                         splitvalue.Add(ParameterNames.PDFViewer, viewer);
                         splitvalue.Add(ParameterNames.FilePath, dlg.FileName);
@@ -124,7 +124,7 @@ namespace PDF_Office.ViewModels.HomePanel.PDFTools
 
                     case PDFFnType.Extract:
                         viewer.InitDocument(dlg.FileName);
-                        CheckPassword(viewer);
+                        if (!CheckPassword(viewer)) {return;}
                         DialogParameters extractvalue = new DialogParameters();
                         extractvalue.Add(ParameterNames.PDFViewer, viewer);
                         extractvalue.Add(ParameterNames.FilePath, dlg.FileName);
@@ -133,7 +133,7 @@ namespace PDF_Office.ViewModels.HomePanel.PDFTools
 
                     case PDFFnType.Insert:
                         viewer.InitDocument(dlg.FileName);
-                        CheckPassword(viewer);
+                        if (!CheckPassword(viewer)) {return;}
                         DialogParameters insertvalue = new DialogParameters();
                         insertvalue.Add(ParameterNames.PDFViewer, viewer);
                         insertvalue.Add(ParameterNames.FilePath, dlg.FileName);
@@ -157,7 +157,7 @@ namespace PDF_Office.ViewModels.HomePanel.PDFTools
 
                     case PDFFnType.Print:
                         viewer.InitDocument(dlg.FileName);
-                        CheckPassword(viewer);
+                        if (!CheckPassword(viewer)) {return;}
                         DialogParameters printvalue = new DialogParameters();
                         printvalue.Add(ParameterNames.PDFViewer, viewer);
                         printvalue.Add(ParameterNames.FilePath, dlg.FileName);
@@ -272,7 +272,7 @@ namespace PDF_Office.ViewModels.HomePanel.PDFTools
         }
         //
         //
-        private void CheckPassword(CPDFViewer viewer) {
+        private bool CheckPassword(CPDFViewer viewer) {
             if (viewer.Document.IsLocked)
             {
                 DialogParameters value = new DialogParameters();
@@ -286,15 +286,17 @@ namespace PDF_Office.ViewModels.HomePanel.PDFTools
                             viewer.Tag = e.Parameters.GetValue<string>(ParameterNames.PassWord).ToString();
                         }
                     }
+                    
                 });
 
                 if (viewer.Document.IsLocked)
                 {
                     //未成功解密文档时,释放Document对象,返回
                     viewer.Document.Release();
-                    return;
+                    return false;
                 }
             }
+            return true;
         }
 
         private void Expend()

+ 27 - 16
PDF Office/ViewModels/PropertyPanel/PDFEdit/ImageEditPropertyViewModel.cs

@@ -25,7 +25,8 @@ namespace PDF_Office.ViewModels.PropertyPanel.PDFEdit
         public double Transpent { get { return _transpent; } set { SetProperty(ref _transpent, value);
                 if (TextEditEvent != null)
                 {
-                    TextEditEvent.Transparent = (int)_transpent;
+
+                    TextEditEvent.Transparent = (int)(_transpent*2.55);
                     TextEditEvent.UpdatePDFEditByEventArgs();
                 }
             } }
@@ -289,7 +290,9 @@ namespace PDF_Office.ViewModels.PropertyPanel.PDFEdit
         }
         private void GetPDFEdit()
         {
-            Transpent = (double)TextEditEvent.Transparent*100;
+            var tranUI = (TextEditEvent.Transparent / 255.0)*100;
+            var temp = Math.Round((double)tranUI, 0);
+            Transpent = temp;
 
 
         }
@@ -367,28 +370,36 @@ namespace PDF_Office.ViewModels.PropertyPanel.PDFEdit
 
         private void GetImagePreView()
         {
-            var list = PDFViewer.GetSelectedImages();
-            if (list != null && list.Count > 0)
+            try
             {
-                System.Drawing.Bitmap bitmap = null;
-                foreach (var item in list)
+                var list = PDFViewer.GetSelectedImages();
+                if (list != null && list.Count > 0)
                 {
-                    if (item.Value.Count > 0)
+                    System.Drawing.Bitmap bitmap = null;
+                    foreach (var item in list)
                     {
-                        bitmap = item.Value[0];
-                        break;
+                        if (item.Value.Count > 0)
+                        {
+                            bitmap = item.Value[0];
+                            break;
+                        }
+                    }
+
+                    if (bitmap != null)
+                    {
+                        IntPtr ip = bitmap.GetHbitmap();
+                        System.Windows.Media.Imaging.BitmapSource bitmapSource = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(ip, IntPtr.Zero, Int32Rect.Empty,
+                        System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
+                        CurrentImg = bitmapSource;
                     }
-                }
 
-                if (bitmap != null)
-                {
-                    IntPtr ip = bitmap.GetHbitmap();
-                    System.Windows.Media.Imaging.BitmapSource bitmapSource = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(ip, IntPtr.Zero, Int32Rect.Empty,
-                    System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
-                    CurrentImg = bitmapSource;
                 }
+            }
+            catch
+            {
 
             }
+         
         }
         #region 全局
 

+ 29 - 2
PDF Office/ViewModels/ViewContentViewModel.cs

@@ -1004,7 +1004,7 @@ namespace PDF_Office.ViewModels
         /// <summary>
         /// 另存为或新文档保存逻辑
         /// </summary>
-        public bool saveAsFile(bool isFromRedaction = false)
+        public bool saveAsFile(bool isApplyRedaction = false,bool isEraseRedaction = false)
         {
             var dlg = new SaveFileDialog();
             dlg.Filter = Properties.Resources.OpenDialogFilter;
@@ -1012,7 +1012,8 @@ namespace PDF_Office.ViewModels
             if (dlg.ShowDialog() == true && !string.IsNullOrEmpty(dlg.FileName))
             {
                 bool result = false;
-                if (isFromRedaction)
+                //标记密文后的保存
+                if (isApplyRedaction)
                 {
                     //应用标记密文并另存为保存
                     try
@@ -1023,6 +1024,11 @@ namespace PDF_Office.ViewModels
                     }
                     catch { }
                 }
+                else if(isEraseRedaction)
+                {
+                    EraseReadction();
+                }
+
                 if (App.OpenedFileList.Contains(dlg.FileName))
                 {
                     //提示文件已经被打开
@@ -1047,6 +1053,27 @@ namespace PDF_Office.ViewModels
                 return false;
         }
 
+        private void EraseReadction()
+        {
+            for(int i=0;i<PDFViewer.Document.PageCount;i++)
+            {
+                //获取页面Page对象
+                var page = PDFViewer.Document.PageAtIndex(i);
+                var annots = PDFViewer.GetAnnotCommentList(i,PDFViewer.Document);
+                //循环擦除当前页的标记密文
+                for (int j = 0; j < annots.Count; j++)
+                { 
+                    if(annots[j].EventType == AnnotArgsType.AnnotRedaction)
+                    {
+                        foreach(var rect in (annots[j] as RedactionAnnotArgs).QuardRects)
+                        {
+                            page.ErasureRedaction(rect);
+                        }
+                    }
+                }
+            }
+        }
+
         /// <summary>
         /// 另存为后进行的操作
         /// 重新打开新文档

+ 0 - 2
PDF Office/Views/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageBates/HomePageBatesDialog.xaml.cs

@@ -179,8 +179,6 @@ namespace PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing.H
                             viewModel.updateListview("待确定");
                         }
                     }
-
-
                 }
                 viewModel.PDFCurrentDataTable.Rows[index]["FilePageRangeText"] = writableComboBox.Text;
             }

+ 1 - 1
PDF Office/Views/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageConverter/HomePageConverterExcel.xaml

@@ -16,7 +16,7 @@
                 <RadioButton Margin="0,10,0,0" Name="OnlyTableRadioBtn" Command="{Binding RadioButtonCommand}" CommandParameter="{Binding ElementName=OnlyTableRadioBtn,Path=Name}">
                     <TextBlock Text="只提取表格"/>
                 </RadioButton>
-                <ComboBox Name="OnlyTableComboBox" Margin="0,8,0,0" Width="228" Height="28.55" IsEnabled="{Binding ElementName=OnlyTableRadioBtn,Path=IsChecked}" SelectionChanged="OnlyTableComboBox_SelectionChanged">
+                <ComboBox Name="OnlyTableComboBox" Margin="0,8,0,0" Width="228" Height="28.55" IsEnabled="{Binding ElementName=OnlyTableRadioBtn,Path=IsChecked}" SelectedIndex="0" SelectionChanged="OnlyTableComboBox_SelectionChanged">
                     <ComboBoxItem Content="支持一个表格提取到单独的工作表"/>
                     <ComboBoxItem Content="支持按页面提取表格到单独的工作表"/>
                     <ComboBoxItem Content="支持将所有表格提取到一个工作表"/>