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

ComPDFKit.Demo(win) - 数字签名支持动态外观

TangJinZhou 1 день тому
батько
коміт
b052d5a6fe

+ 17 - 10
Demo/Examples/Compdfkit.Controls/DigitalSignature/FillDigitalSignatureControl/FillDigitalSignatureControl.xaml.cs

@@ -110,8 +110,9 @@ namespace ComPDFKit.Controls.PDFControl
             CPDFDocument tempDocument = CPDFDocument.CreateDocument();
             tempDocument.InsertPage(0, 200, 200, string.Empty);
             CPDFPage page = tempDocument.PageAtIndex(0);
-            CPDFSignatureWidget signatureWidget = page.CreateWidget(C_WIDGET_TYPE.WIDGET_SIGNATUREFIELDS) as CPDFSignatureWidget;
-            signatureWidget.SetRect(new CRect(0, 100, 300, 0));
+            CPDFSignatureWidget tempSignatureWidget = page.CreateWidget(C_WIDGET_TYPE.WIDGET_SIGNATUREFIELDS) as CPDFSignatureWidget;
+            tempSignatureWidget.SetRect(new CRect(0, 100, 300, 0));
+            tempSignatureWidget.UpdateFormAp();
             tempSignatureConfig.IsDrawLogo = (bool)LogoChk.IsChecked;
             if (tempSignatureConfig.IsDrawLogo)
             {
@@ -124,7 +125,7 @@ namespace ComPDFKit.Controls.PDFControl
                     ComPDFKit.Tool.Help.PDFHelp.ImagePathToByte(logoPath, ref imageData, ref imageWidth, ref imageHeight);
                     if (imageData != null && imageWidth > 0 && imageHeight > 0)
                     {
-                        if (signatureWidget.IsValid())
+                        if (tempSignatureWidget.IsValid())
                         {
                             tempSignatureConfig.LogoData = imageData;
                             tempSignatureConfig.LogoWidth = imageWidth;
@@ -140,17 +141,15 @@ namespace ComPDFKit.Controls.PDFControl
 
             if(DynamicAP.IsChecked==true)
             {
-                signatureWidget.SetSignAP();
-                signatureWidget.UpdateSignApWithDigitalSigConfig(tempSignatureConfig);
+                tempSignatureWidget.UpdateSignApWithSignature(tempSignatureConfig);
             }
             else
             {
-                signatureWidget.UpdataApWithSignature(tempSignatureConfig);
+                tempSignatureWidget.UpdateApWithSignature(tempSignatureConfig);
             }
 
-            byte[] signatureBitmapBytes = GetTempSignatureImage(signatureWidget, out int width, out int height);
-
-            signatureWidget.ReleaseAnnot();
+            byte[] signatureBitmapBytes = GetTempSignatureImage(tempSignatureWidget, out int width, out int height);
+            tempDocument.Release();
 
             if (signatureBitmapBytes.Length > 0)
             {
@@ -664,7 +663,15 @@ namespace ComPDFKit.Controls.PDFControl
                 location = string.Empty;
             }
 
-            signatureWidget.UpdataApWithSignature(tempSignatureConfig);
+            if (DynamicAP.IsChecked == true)
+            {
+                signatureWidget.SetSignAP();
+                signatureWidget.UpdateSignApWithSignature(tempSignatureConfig);
+            }
+            else
+            {
+                signatureWidget.UpdateApWithSignature(tempSignatureConfig);
+            }
 
             if (Document.WriteSignatureToFilePath(signatureWidget, filePath, SignaturePath, Password, location, reason, CPDFSignaturePermissions.CPDFSignaturePermissionsNone))
             {