Переглянути джерело

compdfkit(win) - 数字签名 样式调整、文字与none切换

liuaoran 1 рік тому
батько
коміт
30023f3e31

+ 2 - 2
Demo/Examples/Compdfkit_Tools/DigitalSignature/FillDigitalSignatureControl/FillDigitalSignatureControl.xaml

@@ -133,7 +133,7 @@
                     <CheckBox x:Name="PositionChk" FontSize="14" Grid.Column="2" Grid.Row="2" Click="PositionChk_Click">Position</CheckBox>
                     <CheckBox x:Name="TabChk" FontSize="14" Grid.Column="2" Grid.Row="3" Click="TabChk_Click">Tab</CheckBox>
 
-                    <StackPanel x:Name="Reasonstp" Visibility="Visible" Orientation="Horizontal" Grid.Column="4" Margin="30,0,0,0" Grid.RowSpan="2" Height="30" Width="280">
+                    <StackPanel x:Name="Reasonstp" Visibility="Collapsed" Orientation="Horizontal" Grid.Column="4" Margin="30,0,0,0" Grid.RowSpan="2" Height="30" Width="280">
                         <TextBlock Text="Reason: " VerticalAlignment="Center" Width="50"></TextBlock>
                         <ComboBox x:Name="ReasonCmb"  SelectionChanged="ReasonCmb_SelectionChanged" Width="220" VerticalContentAlignment="Center">
                             <ComboBoxItem Content="&lt; None &gt;"></ComboBoxItem>
@@ -142,7 +142,7 @@
                             <ComboBoxItem Content="I have reviewed this document"></ComboBoxItem>
                         </ComboBox>
                     </StackPanel>
-                    <StackPanel x:Name="PositionStp" Visibility="Visible" Orientation="Horizontal" Grid.Column="4" Grid.Row="1" Margin="30,10,0,0"  Grid.RowSpan="2" Height="30" Width="280">
+                    <StackPanel x:Name="PositionStp" Visibility="Collapsed" Orientation="Horizontal" Grid.Column="4" Grid.Row="1" Margin="30,10,0,0"  Grid.RowSpan="2" Height="30" Width="280">
                         <TextBlock Text="Position: " VerticalAlignment="Center" Width="50"></TextBlock>
                         <TextBox Width="220" x:Name="PositionTbx" TextChanged="PositionTbx_TextChanged"></TextBox>
                     </StackPanel>

+ 12 - 13
Demo/Examples/Compdfkit_Tools/DigitalSignature/FillDigitalSignatureControl/FillDigitalSignatureControl.xaml.cs

@@ -31,7 +31,7 @@ namespace Compdfkit_Tools.PDFControl
     {
         private Dictionary<string, Border> TabDict { get; set; }
 
-        private SignatureConfig tempSignatureConfig = new SignatureConfig();
+        private CPDFSignatureConfig tempSignatureConfig = new CPDFSignatureConfig();
 
         private CPDFSignatureCertificate signatureCertificate;
 
@@ -59,6 +59,8 @@ namespace Compdfkit_Tools.PDFControl
             {
                 _password = value;
                 signatureCertificate = CPDFPKCS12CertHelper.GetCertificateWithPKCS12Path(SignaturePath, Password);
+                tempSignatureConfig.Text = DictionaryValueConverter.GetGrantorFormDictionary(signatureCertificate.SubjectDict);
+                CreateTempSignature();
             }
         }
 
@@ -79,7 +81,6 @@ namespace Compdfkit_Tools.PDFControl
                 ["None"] = NoneBorder
             };
             SetCheckedTab("Keyboard");
-            CreateTempSignature();
         }
 
         private void CreateTempSignature()
@@ -90,9 +91,11 @@ namespace Compdfkit_Tools.PDFControl
             CPDFSignatureWidget signatureWidget = page.CreateWidget(C_WIDGET_TYPE.WIDGET_SIGNATUREFIELDS) as CPDFSignatureWidget;
             signatureWidget.SetRect(new CRect(0, 100, 300, 0));
             tempSignatureConfig.IsDrawLogo = (bool)LogoChk.IsChecked;
-            tempSignatureConfig.LogoBitmap = new Bitmap(logoPath);
+            if (tempSignatureConfig.IsDrawLogo)
+            {
+                tempSignatureConfig.LogoBitmap = new Bitmap(logoPath);
+            }
             tempSignatureConfig.Content = Text;
-
             signatureWidget.UpdataApWithSignature(tempSignatureConfig);
 
             byte[] signatureBitmapBytes = GetTempSignatureImage(signatureWidget, out int width, out int height);
@@ -147,7 +150,6 @@ namespace Compdfkit_Tools.PDFControl
                 TextAlignRightBtn.IsChecked = false;
             }
             CreateTempSignature();
-
         }
 
         private void Border_MouseDown(object sender, MouseButtonEventArgs e)
@@ -166,12 +168,13 @@ namespace Compdfkit_Tools.PDFControl
             }
             else
             {
+                tempSignatureConfig.IsDrawOnlyContent = false;
                 if (clickBorder == KeyboardBorder)
-                {
+                { 
                     tempSignatureConfig.ImageBitmap = null;
                 }
                 else
-                {
+                { 
                     if (clickBorder == TrackpadBorder)
                     {
                         CanvaDrawPopup.Visibility = Visibility.Visible;
@@ -182,11 +185,10 @@ namespace Compdfkit_Tools.PDFControl
                         {
                             tempSignatureConfig.ImageBitmap = new Bitmap(imagePath);
                         }
-                        tempSignatureConfig.Content = string.Empty;
                     }
-                }
-
+                } 
             }
+            SetProperty();
             CreateTempSignature();
         }
 
@@ -452,14 +454,11 @@ namespace Compdfkit_Tools.PDFControl
         { 
             string filePath = CommonHelper.GetGeneratePathOrEmpty("PDF files (*.pdf)|*.pdf", Document.FileName+ "_Signed.pdf");
 
-            // 如果用户取消了文件保存对话框,则不执行后续操作
             if (string.IsNullOrEmpty(filePath))
             {
                 return;
             }
 
-            // 在这里继续处理其他逻辑
-
             if ((bool)ReasonChk.IsChecked)
             {
                 reason = (ReasonCmb?.SelectedItem as ComboBoxItem)?.Content?.ToString();