Przeglądaj źródła

compdfkit(win) - 局部重构Bota,六合一数字签名

weixiangjie 1 rok temu
rodzic
commit
88f671b21c

+ 2 - 1
Demo/Examples/Annotations/MainWindow.xaml.cs

@@ -35,7 +35,7 @@ namespace AnnotationViewControl
         private PDFViewControl pdfViewer;
         private PDFViewControl passwordViewer;
         private AnnotationControl annotationControl = new AnnotationControl();
-        private CPDFBOTABarControl botaBarControl = new CPDFBOTABarControl(BOTATools.Thumbnail | BOTATools.Outline | BOTATools.Bookmark | BOTATools.Search | BOTATools.Annotation);
+        private CPDFBOTABarControl botaBarControl = new CPDFBOTABarControl();
         private PanelState panelState = PanelState.GetInstance();
         
         private bool _canSave = false;
@@ -135,6 +135,7 @@ namespace AnnotationViewControl
 
             ViewSettingBtn.IsChecked = false;
             botaBarControl.InitWithPDFViewer(annotationControl.PDFViewControl.PDFView);
+            botaBarControl.AddBOTAContent(new []{BOTATools.Thumbnail , BOTATools.Outline , BOTATools.Bookmark , BOTATools.Annotation , BOTATools.Search});
             botaBarControl.SelectBotaTool(BOTATools.Thumbnail);
             annotationControl.SetBOTAContainer(botaBarControl);
             annotationControl.InitialPDFViewControl(annotationControl.PDFViewControl);

Plik diff jest za duży
+ 160 - 166
Demo/Examples/Compdfkit_Tools/Common/BarControl/CPDFBOTABarControl.xaml.cs


+ 1 - 1
Demo/Examples/Compdfkit_Tools/DigitalSignature/AddCertificationControl/AddExistedCertificationControl.xaml

@@ -38,7 +38,7 @@
                 <TextBlock Name="ErrorTipsText" Foreground="Red" Margin="0,4,0,0"></TextBlock>
             </StackPanel>
         </StackPanel>
-        <Grid Grid.Row="4">
+        <Grid Grid.Row="3">
             <StackPanel  Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="24"> 
                 <Button x:Name="CancelBtn" Content="Cancel"  Margin="0,0,10,0" Width="112" Height="32" BorderThickness="1" Click="CancelBtn_Click"></Button>
                 <Button x:Name="DoneBtn" Content="OK" Width="112" Height="32" BorderThickness="1" IsEnabled="{Binding CanContinue}" Click="DoneBtn_Click"></Button>

+ 8 - 0
Demo/Examples/Compdfkit_Tools/DigitalSignature/DigitalSignatureControl/DigitalSignatureControl.xaml.cs

@@ -646,6 +646,12 @@ namespace Compdfkit_Tools.PDFControl
 
         #region Load Unload Event
         
+        public void UnloadEvent()
+        {
+            PDFViewControl.PDFView.AnnotCommandHandler -= PDFView_AnnotCommandHandler;
+            PDFViewControl.PDFView.WidgetClickHandler -= PDFView_WidgetClickHandler;
+        }
+        
         /// <summary>
         /// Load event
         /// </summary>
@@ -668,5 +674,7 @@ namespace Compdfkit_Tools.PDFControl
         }
         
         #endregion
+
+        
     }
 }

+ 2 - 1
Demo/Examples/ContentEditor/MainWindow.xaml.cs

@@ -39,7 +39,7 @@ namespace ContentEditorViewControl
         private PDFViewControl pdfViewer;
         private PDFViewControl passwordViewer;
         private ContentEditControl contentEditControl = new ContentEditControl();
-        private CPDFBOTABarControl botaBarControl = new CPDFBOTABarControl(BOTATools.Thumbnail | BOTATools.Outline | BOTATools.Bookmark | BOTATools.Search | BOTATools.Annotation);
+        private CPDFBOTABarControl botaBarControl = new CPDFBOTABarControl();
         public event PropertyChangedEventHandler PropertyChanged;
         private string currentMode = "Viewer";
         
@@ -139,6 +139,7 @@ namespace ContentEditorViewControl
 
             ViewSettingBtn.IsChecked = false;
             botaBarControl.InitWithPDFViewer(contentEditControl.PdfViewControl.PDFView);
+            botaBarControl.AddBOTAContent(new []{BOTATools.Thumbnail , BOTATools.Outline , BOTATools.Bookmark , BOTATools.Annotation , BOTATools.Search});
             botaBarControl.SelectBotaTool(BOTATools.Thumbnail);
             contentEditControl.SetBOTAContainer(botaBarControl);
             displaySettingsControl.InitWithPDFViewer(contentEditControl.PdfViewControl.PDFView);

+ 2 - 1
Demo/Examples/DigitalSignature/MainWindow.xaml.cs

@@ -37,7 +37,7 @@ namespace DigitalSignature
         private PDFViewControl passwordViewer;
         private RegularViewerControl regularViewerControl = new RegularViewerControl();
         private DigitalSignatureControl digitalSignatureControl = new DigitalSignatureControl();
-        private CPDFBOTABarControl botaBarControl = new CPDFBOTABarControl(BOTATools.Thumbnail | BOTATools.Outline | BOTATools.Bookmark | BOTATools.Search | BOTATools.Annotation | BOTATools.Signature);
+        private CPDFBOTABarControl botaBarControl = new CPDFBOTABarControl();
         private CPDFDisplaySettingsControl displaySettingsControl = new CPDFDisplaySettingsControl();
         private SignatureStatusBarControl signatureStatusBarControl = new SignatureStatusBarControl();
         private PanelState panelState = PanelState.GetInstance();
@@ -228,6 +228,7 @@ namespace DigitalSignature
             PasswordUI.Confirmed += PasswordUI_Confirmed;
             ModeComboBox.SelectedIndex = 0;
             botaBarControl.InitWithPDFViewer(pdfViewer.PDFView);
+            botaBarControl.AddBOTAContent(new []{BOTATools.Thumbnail , BOTATools.Outline , BOTATools.Bookmark , BOTATools.Search , BOTATools.Annotation , BOTATools.Signature});
             botaBarControl.SelectBotaTool(BOTATools.Thumbnail);
             botaBarControl.DeleteSignatureEvent -= BotaControlOnDeleteSignatureEvent;
             botaBarControl.DeleteSignatureEvent += BotaControlOnDeleteSignatureEvent;

+ 1 - 1
Demo/Examples/DocsEditor/MainWindow.xaml.cs

@@ -684,7 +684,7 @@ namespace DocsEditor
         #region Event handle
         private void MainWindow_Loaded(object sender, RoutedEventArgs e)
         {
-            BotaSideTool.AddBOTAContent(BOTATools.Thumbnail | BOTATools.Outline | BOTATools.Bookmark | BOTATools.Search);
+            BotaSideTool.AddBOTAContent(new []{BOTATools.Thumbnail , BOTATools.Outline , BOTATools.Bookmark , BOTATools.Search});
             pdfAnnotationControl = new CPDFAnnotationControl();
             LoadDefaultDocument();
         }

+ 2 - 1
Demo/Examples/Forms/MainWindow.xaml.cs

@@ -34,7 +34,7 @@ namespace FormViewControl
         private FormControl formControl = new FormControl();
         private RegularViewerControl regularViewerControl = new RegularViewerControl();
         private CPDFDisplaySettingsControl displaySettingsControl = new CPDFDisplaySettingsControl();
-        private CPDFBOTABarControl botaBarControl = new CPDFBOTABarControl(BOTATools.Thumbnail | BOTATools.Outline | BOTATools.Bookmark | BOTATools.Search | BOTATools.Annotation);
+        private CPDFBOTABarControl botaBarControl = new CPDFBOTABarControl();
         private PanelState panelState = PanelState.GetInstance();
         private bool _canSave = false;
         private string currentMode = "Viewer";
@@ -138,6 +138,7 @@ namespace FormViewControl
             
             ViewSettingBtn.IsChecked = false;
             botaBarControl.InitWithPDFViewer(formControl.PdfViewControl.PDFView);
+            botaBarControl.AddBOTAContent(new []{BOTATools.Thumbnail , BOTATools.Outline , BOTATools.Bookmark , BOTATools.Annotation , BOTATools.Search});
             botaBarControl.SelectBotaTool(BOTATools.Thumbnail);
             formControl.SetBOTAContainer(botaBarControl);
             formControl.InitialPDFViewControl(formControl.PdfViewControl);

BIN
Demo/Examples/PDFViewer/Logo.png


BIN
Demo/Examples/PDFViewer/Logo_opa40.png


+ 1 - 0
Demo/Examples/PDFViewer/MainPage.xaml

@@ -179,6 +179,7 @@
                     <ComboBoxItem Tag="Form">Form</ComboBoxItem>
                     <ComboBoxItem Tag="Content Editor">Content Editor</ComboBoxItem>
                     <ComboBoxItem Tag="Docs Editor">Docs Editor</ComboBoxItem>
+                    <ComboBoxItem Tag="Digital Signature">Digital Signature</ComboBoxItem>
                 </ComboBox>
 
                 <StackPanel Orientation="Horizontal" Grid.Column="2">

+ 83 - 3
Demo/Examples/PDFViewer/MainPage.xaml.cs

@@ -32,7 +32,9 @@ namespace PDFViewer
         private FormControl formControl = new FormControl();
         private ContentEditControl contentEditControl = new ContentEditControl();
         private PageEditControl pageEditControl = new PageEditControl();
-        private CPDFBOTABarControl botaBarControl = new CPDFBOTABarControl(BOTATools.Thumbnail | BOTATools.Outline | BOTATools.Bookmark | BOTATools.Search | BOTATools.Annotation);
+        private DigitalSignatureControl digitalSignatureControl = new DigitalSignatureControl();
+        private SignatureStatusBarControl signatureStatusBarControl = new SignatureStatusBarControl();
+        private CPDFBOTABarControl botaBarControl = new CPDFBOTABarControl();
         private CPDFDisplaySettingsControl displaySettingsControl = new CPDFDisplaySettingsControl();
 
         private PanelState panelState = PanelState.GetInstance();
@@ -166,6 +168,7 @@ namespace PDFViewer
 
             ViewSettingBtn.IsChecked = false;
             botaBarControl.InitWithPDFViewer(pdfViewer.PDFView);
+            botaBarControl.AddBOTAContent(new []{BOTATools.Thumbnail , BOTATools.Outline , BOTATools.Bookmark , BOTATools.Annotation , BOTATools.Search});
             botaBarControl.SelectBotaTool(BOTATools.Thumbnail);
             displaySettingsControl.InitWithPDFViewer(pdfViewer.PDFView);
             LoadCustomControl();
@@ -266,6 +269,11 @@ namespace PDFViewer
             regularViewerControl.SetBOTAContainer(botaBarControl);
             regularViewerControl.SetDisplaySettingsControl(displaySettingsControl);
             PDFGrid.Child = regularViewerControl;
+            
+            SignatureHelper.InitEffectiveSignatureList(pdfViewer.PDFView.Document);
+            SignatureHelper.VerifySignatureList(pdfViewer.PDFView.Document);
+            digitalSignatureControl.LoadUndoManagerEvent(pdfViewer.PDFView);
+            signatureStatusBarControl.SetStatus(SignatureHelper.SignatureList);
         }
 
         /// <summary>
@@ -289,7 +297,50 @@ namespace PDFViewer
             }
         }
 
+        /// <summary>
+        /// Command for opening a PDF file saved with a signature.
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void DigitalSignatureControl_AfterFillSignature(object sender, string e)
+        {
+            OpenFile(e);
+        }
+        
+        /// <summary>
+        /// Event handler for deleting a signature from the BOTA. Set the CanSave property to true and update the signature status.
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void BotaControlOnDeleteSignatureEvent(object sender, EventArgs e)
+        {
+            pdfViewer.PDFView.UndoManager.CanSave = true;
+            DigitalSignatureControl_OnSignatureStatusChanged(sender, e);
+            //this.CanSave = true;
+        }
+        
+        /// <summary>
+        /// Event handler for updating a signature. Update the signature status.
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void DigitalSignatureControl_OnSignatureStatusChanged(object sender, EventArgs e)
+        {
+            SignatureHelper.InitEffectiveSignatureList(pdfViewer.PDFView.Document);
+            SignatureHelper.VerifySignatureList(pdfViewer.PDFView.Document);
+            signatureStatusBarControl.SetStatus(SignatureHelper.SignatureList);
+            botaBarControl.LoadSignatureList();
+        }
 
+        /// <summary>
+        /// Event handler for updating the CanSave property.
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void DigitalSignatureControl_OnCanSaveChanged(object sender, bool e)
+        {
+            this.CanSave = e;
+        }
 
         #endregion
 
@@ -336,6 +387,12 @@ namespace PDFViewer
                 pageEditControl.ExitPageEdit -= PageEditControl_ExitPageEdit;
                 NotDocsEditorVisible = Visibility.Visible;
             }
+            else if (currentMode == "Digital Signature")
+            {
+                digitalSignatureControl.UnloadEvent();
+                digitalSignatureControl.ClearViewerControl();
+                botaBarControl.RemoveBOTAContent(BOTATools.Signature);
+            }
 
             if (item.Content as string == "Viewer")
             {
@@ -416,6 +473,26 @@ namespace PDFViewer
                 PDFGrid.Child = pageEditControl;
                 NotDocsEditorVisible = Visibility.Collapsed;
             }
+            else if (item.Content as string == "Digital Signature")
+            {
+                if (contentEditControl.pdfContentEditControl != null && contentEditControl.PdfViewControl.PDFView != null)
+                {
+                    PDFGrid.Child = digitalSignatureControl;
+                    digitalSignatureControl.PDFViewControl.PDFView.SetMouseMode(MouseModes.Viewer);
+                    digitalSignatureControl.PDFViewControl = pdfViewer;
+                    botaBarControl.AddBOTAContent(BOTATools.Signature);
+                    digitalSignatureControl.InitWithPDFViewer(pdfViewer.PDFView);
+                    digitalSignatureControl.SetBOTAContainer(botaBarControl);
+                    digitalSignatureControl.SetDisplaySettingsControl(displaySettingsControl);
+                    digitalSignatureControl.SetSignatureStatusBarControl(signatureStatusBarControl);
+                    digitalSignatureControl.OnCanSaveChanged -= DigitalSignatureControl_OnCanSaveChanged;
+                    digitalSignatureControl.OnCanSaveChanged += DigitalSignatureControl_OnCanSaveChanged;
+                    digitalSignatureControl.SignatureStatusChanged -= DigitalSignatureControl_OnSignatureStatusChanged;
+                    digitalSignatureControl.SignatureStatusChanged += DigitalSignatureControl_OnSignatureStatusChanged;
+                    digitalSignatureControl.AfterFillSignature -= DigitalSignatureControl_AfterFillSignature;
+                    digitalSignatureControl.AfterFillSignature += DigitalSignatureControl_AfterFillSignature;
+                }
+            }
             currentMode = item.Content as string;
             RightToolPanelButtonIsChecked = false;
         }
@@ -520,9 +597,12 @@ namespace PDFViewer
             pdfViewer.PDFView.UndoManager.CanSave = false;
         }
 
-        private void OpenFile()
+        private void OpenFile(string filePath = "")
         {
-            string filePath = CommonHelper.GetExistedPathOrEmpty();
+            if (string.IsNullOrEmpty(filePath))
+            {
+                filePath = CommonHelper.GetExistedPathOrEmpty();
+            }
             string oldFilePath = pdfViewer.PDFView.Document.FilePath;
 
             if (!string.IsNullOrEmpty(filePath) && regularViewerControl.PdfViewControl != null)

+ 7 - 1
Demo/Examples/PDFViewer/PDFViewer.csproj

@@ -128,8 +128,14 @@
     </Content>
     <Content Include="..\TestFile\PDF32000_2008.pdf">
       <Link>PDF32000_2008.pdf</Link>
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
+    <None Include="Logo.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Logo_opa40.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
     <Resource Include="ComPDFKit_Logo.ico" />
   </ItemGroup>
   <ItemGroup>

+ 1 - 1
Demo/Examples/Viewer/MainWindow.xaml.cs

@@ -56,7 +56,7 @@ namespace Viewer
 
         private void MainWindow_Loaded(object sender, RoutedEventArgs e)
         {
-            BotaSideTool.AddBOTAContent(BOTATools.Thumbnail | BOTATools.Outline | BOTATools.Bookmark | BOTATools.Search);
+            BotaSideTool.AddBOTAContent(new []{BOTATools.Thumbnail , BOTATools.Outline , BOTATools.Bookmark , BOTATools.Search} );
             LoadDefaultDocument();
         }