Browse Source

compdfkit(win) - 填写签名UI完善

weixiangjie 1 year ago
parent
commit
bff4be3bad

+ 31 - 1
Demo/Examples/Compdfkit_Tools/DigitalSignature/FillDigitalSignatureControl/FillDigitalSignatureControl.xaml.cs

@@ -8,6 +8,7 @@ using Compdfkit_Tools.Helper;
 using System;
 using System.Collections.Generic;
 using System.Drawing;
+using System.Drawing.Imaging;
 using System.IO;
 using System.Reflection;
 using System.Runtime.Remoting.Messaging;
@@ -20,6 +21,7 @@ using System.Windows.Media;
 using System.Windows.Media.Imaging;
 using static System.Windows.Forms.VisualStyles.VisualStyleElement;
 using Pen = System.Windows.Media.Pen;
+using PixelFormat = System.Windows.Media.PixelFormat;
 using Point = System.Windows.Point;
 using Window = System.Windows.Window;
 
@@ -68,10 +70,20 @@ namespace Compdfkit_Tools.PDFControl
                 signatureCertificate = CPDFPKCS12CertHelper.GetCertificateWithPKCS12Path(SignaturePath, Password);
                 signatureName = DictionaryValueConverter.GetGrantorFromDictionary(signatureCertificate.SubjectDict);
                 tempSignatureConfig.Text = signatureName;
-                CreateTempSignature();
+                InitTempSignature();
             }
         }
 
+        private void InitTempSignature()
+        {
+            NameChk.IsChecked = true;
+            DateChk.IsChecked = true;
+            LogoChk.IsChecked = true;
+            TabChk.IsChecked = true;
+            SetProperty();
+            CreateTempSignature();
+        }
+
         public CPDFSignatureWidget signatureWidget { get; set; }
 
         public event EventHandler<string> AfterFillSignature;
@@ -100,8 +112,12 @@ namespace Compdfkit_Tools.PDFControl
             if (tempSignatureConfig.IsDrawLogo)
             {
                 tempSignatureConfig.LogoBitmap = new Bitmap(logoPath);
+                //set logoBitmap opacity to 0.4
+                tempSignatureConfig.LogoBitmap = SetImageOpacity(tempSignatureConfig.LogoBitmap, 0.4f);
             }
             tempSignatureConfig.Content = Text;
+            tempSignatureConfig.textColor = new float[] { 0, 0, 0 };
+            tempSignatureConfig.contentColor = new float[] { 0, 0, 0 };
             signatureWidget.UpdataApWithSignature(tempSignatureConfig);
 
             byte[] signatureBitmapBytes = GetTempSignatureImage(signatureWidget, out int width, out int height);
@@ -120,6 +136,20 @@ namespace Compdfkit_Tools.PDFControl
             }
         }
 
+        private Bitmap SetImageOpacity(Bitmap bitmap, float f)
+        {
+            Bitmap resultBitmap = new Bitmap(bitmap.Width, bitmap.Height);
+            using (Graphics g = Graphics.FromImage(resultBitmap))
+            {
+                ColorMatrix matrix = new ColorMatrix();
+                matrix.Matrix33 = f;
+                ImageAttributes attributes = new ImageAttributes();
+                attributes.SetColorMatrix(matrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);
+                g.DrawImage(bitmap, new Rectangle(0, 0, resultBitmap.Width, resultBitmap.Height), 0, 0, bitmap.Width, bitmap.Height, GraphicsUnit.Pixel, attributes);
+            }
+            return resultBitmap;
+        }
+
         public static byte[] GetTempSignatureImage(CPDFSignatureWidget signatureWidget, out int width, out int height)
         {
             CRect rect = signatureWidget.GetRect();

+ 2 - 2
Demo/Examples/Compdfkit_Tools/Properties/AssemblyInfo.cs

@@ -51,5 +51,5 @@ using System.Windows;
 // You can specify all the values or you can default the Build and Revision Numbers
 // by using the '*' as shown below:
 // [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.9.0.0")]
-[assembly: AssemblyFileVersion("1.9.0.0")]
+[assembly: AssemblyVersion("1.10.0.0")]
+[assembly: AssemblyFileVersion("1.10.0.0")]

+ 2 - 2
Demo/Examples/DigitalSignature/Properties/AssemblyInfo.cs

@@ -51,5 +51,5 @@ using System.Windows;
 //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
 //通过使用 "*",如下所示:
 // [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.9.1.0")]
-[assembly: AssemblyFileVersion("1.9.1.0")]
+[assembly: AssemblyVersion("1.10.0.0")]
+[assembly: AssemblyFileVersion("1.10.0.0")]