Browse Source

ComPDFKit.Tool(win)-便签图标和手绘虚线效果

liyuxuan 6 months ago
parent
commit
8c4510655f

+ 14 - 1
Demo/Examples/ComPDFKit.Tool/CPDFViewerTool.DataMethod.cs

@@ -183,6 +183,10 @@ namespace ComPDFKit.Tool
             }
 
             TextAnnotation.SetColor(StickyNoteParamDef.StickyNoteColor);
+            if(string.IsNullOrEmpty(StickyNoteParamDef.IconName)==false)
+            {
+                TextAnnotation.SetIconName(StickyNoteParamDef.IconName);
+            }
             DefaultAnnot(cPDFAnnotation, StickyNoteParamDef);
         }
 
@@ -625,7 +629,16 @@ namespace ComPDFKit.Tool
             }
 
             InkAnnotation.SetThickness((float)inkParam.Thickness);
-            (cPDFAnnotation as CPDFInkAnnotation).SetInkPath(inkParam.InkPath);
+            CPDFInkAnnotation inkAnnot = cPDFAnnotation as CPDFInkAnnotation;
+            inkAnnot.SetInkPath(inkParam.InkPath);
+            if(inkParam.Dash!=null && inkParam.Dash.Length>0)
+            {
+                inkAnnot.SetBorderStyle(C_BORDER_STYLE.BS_DASHDED,inkParam.Dash);
+            }
+            else
+            {
+                inkAnnot.SetBorderStyle(C_BORDER_STYLE.BS_SOLID, new float[0]);
+            }
             DefaultAnnot(cPDFAnnotation, inkParam);
         }
 

+ 7 - 0
Demo/Examples/ComPDFKit.Tool/Help/ParamConverter.cs

@@ -1316,6 +1316,12 @@ namespace ComPDFKit.Tool.Help
                 }
             }
 
+            if(inkAnnot.Dash!=null && inkAnnot.Dash.Length>0)
+            {
+                inkParam.Dash =new float[inkAnnot.Dash.Length];
+                inkAnnot.Dash.CopyTo(inkParam.Dash, 0);
+            }
+
             GetAnnotCommonParam(inkAnnot, inkParam);
             return inkParam;
         }
@@ -1539,6 +1545,7 @@ namespace ComPDFKit.Tool.Help
                 };
             }
 
+            stickyParam.IconName=stickyAnnot.GetIconName();
             GetAnnotCommonParam(stickyAnnot, stickyParam);
 
             return stickyParam;

+ 8 - 1
Demo/Examples/ComPDFKit.Tool/SettingParam/AnnotParam/InkParam.cs

@@ -15,7 +15,7 @@ namespace ComPDFKit.Tool
         public byte[] InkColor { get; set; }
         public double Thickness { get; set; }
         public List<List<CPoint>> InkPath { get; set; }
-
+        public float[] Dash { get; set; }
         public override bool CopyTo(AnnotParam transfer)
         {
             InkParam inkTransfer = transfer as InkParam;
@@ -52,6 +52,13 @@ namespace ComPDFKit.Tool
                 inkTransfer.InkPath = inkPoints;
             }
 
+            if(Dash != null)
+            {
+                float[] DashCopy=new float[Dash.Length];
+                Dash.CopyTo(DashCopy,0);
+                inkTransfer.Dash = DashCopy;
+            }
+
             return true;
         }
     }

+ 3 - 0
Demo/Examples/ComPDFKit.Tool/SettingParam/AnnotParam/StickyNoteParam.cs

@@ -11,6 +11,7 @@ namespace ComPDFKit.Tool
         }
 
         public byte[] StickyNoteColor { get; set; }
+        public string IconName { get; set; } = string.Empty;
 
         public override bool CopyTo(AnnotParam transfer)
         {
@@ -30,6 +31,8 @@ namespace ComPDFKit.Tool
                 stickynoteTransfer.StickyNoteColor = (byte[])StickyNoteColor.Clone();
             }
 
+            stickynoteTransfer.IconName = IconName;
+
             return true;
         }
     }

+ 15 - 0
Demo/Examples/ComPDFKit.Tool/UndoManger/AnnotHistory/InkAnnotHistory.cs

@@ -69,6 +69,12 @@ namespace ComPDFKit.Tool.UndoManger
                 {
                     inkAnnot.SetContent(currentParam.Content);
                 }
+
+                if (currentParam.Dash != null && currentParam.Dash.Length > 0)
+                {
+                    inkAnnot.SetBorderStyle(C_BORDER_STYLE.BS_DASHDED,currentParam.Dash);
+                }
+
                 inkAnnot.SetIsLocked(currentParam.Locked);
                 inkAnnot.SetCreationDate(PDFHelp.GetCurrentPdfTime());
                 inkAnnot.UpdateAp();
@@ -124,6 +130,15 @@ namespace ComPDFKit.Tool.UndoManger
                     inkAnnot.SetInkPath(updateParam.InkPath);
                 }
 
+                if (updateParam.Dash!=null && updateParam.Dash.Length>0)
+                {
+                    inkAnnot.SetBorderStyle(C_BORDER_STYLE.BS_DASHDED,updateParam.Dash);
+                }
+                else
+                {
+                    inkAnnot.SetBorderStyle(C_BORDER_STYLE.BS_SOLID,new float[0]);
+                }
+
                 if (updateParam.Transparency != checkParam.Transparency)
                 {
                     inkAnnot.SetTransparency((byte)updateParam.Transparency);

+ 11 - 0
Demo/Examples/ComPDFKit.Tool/UndoManger/AnnotHistory/StickyNoteAnnotHistory.cs

@@ -68,6 +68,12 @@ namespace ComPDFKit.Tool.UndoManger
                 {
                     stickynoteAnnot.SetContent(currentParam.Content);
                 }
+
+                if (string.IsNullOrEmpty(currentParam.IconName) == false)
+                {
+                    stickynoteAnnot.SetIconName(currentParam.IconName);
+                }
+
                 stickynoteAnnot.SetIsLocked(currentParam.Locked);
                 stickynoteAnnot.SetCreationDate(PDFHelp.GetCurrentPdfTime());
                 stickynoteAnnot.UpdateAp();
@@ -134,6 +140,11 @@ namespace ComPDFKit.Tool.UndoManger
                     stickynoteAnnot.SetContent(updateParam.Content);
                 }
 
+                if(updateParam.IconName!=checkParam.IconName && string.IsNullOrEmpty(updateParam.IconName)!=false)
+                {
+                    stickynoteAnnot.SetIconName(updateParam.IconName);
+                }
+
                 if (updateParam.Locked != checkParam.Locked)
                 {
                     stickynoteAnnot.SetIsLocked(updateParam.Locked);