using ComPDFKit.PDFAnnotation; using compdfkit_tools.PDFControl; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Media; namespace compdfkit_tools.Data { public enum AnnotationType { None = 0, Highlight, Underline, Strikeout, Squiggly, Freetext, Note, Circle, Square, Arrow, Line, Stamp, Signature, Link, Sound } public static class CPDFAnnotationDictionary { public static Dictionary GetAnnotationFromTag = new Dictionary() { { "Highlight", AnnotationType.Highlight }, { "Underline", AnnotationType.Underline }, { "Strikeout", AnnotationType.Strikeout }, { "Squiggly", AnnotationType.Squiggly }, { "Square", AnnotationType.Square }, { "Circle", AnnotationType.Circle }, { "Line", AnnotationType.Line }, { "Arrow", AnnotationType.Arrow } }; public static Dictionary GetLineTypeFromIndex = new Dictionary() { { 0, C_LINE_TYPE.LINETYPE_NONE }, { 1, C_LINE_TYPE.LINETYPE_ARROW }, { 2, C_LINE_TYPE.LINETYPE_CLOSEDARROW }, { 3, C_LINE_TYPE.LINETYPE_SQUARE }, { 4, C_LINE_TYPE.LINETYPE_CIRCLE }, { 5, C_LINE_TYPE.LINETYPE_DIAMOND }, { 6, C_LINE_TYPE.LINETYPE_BUTT }, { 7, C_LINE_TYPE.LINETYPE_ROPENARROW }, { 8, C_LINE_TYPE.LINETYPE_RCLOSEDARROW }, { 9, C_LINE_TYPE.LINETYPE_SLASH } }; } public class LineType { public C_LINE_TYPE HeadType; public C_LINE_TYPE TailType; } /// /// 用于换算的dash /// public class CPDFDash { public bool IsSolid = true; public int DashSpacing = 1; } public abstract class CPDFAnnotationData { public AnnotationType AnnotationType; public string Note = string.Empty; public string Author = "ComPDFKit"; public bool IsLocked = false; } public class CPDFMarkupData : CPDFAnnotationData { public double Opacity = 1; public Color Color = Color.FromRgb(255, 0, 0); } public class CPDFShapeData : CPDFAnnotationData { public Color BorderColor = Color.FromRgb(255, 0, 0); public Color FillColor = Color.FromRgb(255, 255, 255); public double Opacity = 1; public double Thickness = 1; public DashStyle DashStyle = DashStyles.Solid; public LineType LineType = new LineType() { HeadType = C_LINE_TYPE.LINETYPE_NONE, TailType = C_LINE_TYPE.LINETYPE_NONE}; } public class CPDFLineShapeData : CPDFAnnotationData { public Color BorderColor = Color.FromRgb(255, 0, 0); public C_LINE_TYPE HeadLineType = C_LINE_TYPE.LINETYPE_NONE; public C_LINE_TYPE TailLineType = C_LINE_TYPE.LINETYPE_NONE; public double Opacity = 1; public double Thickness = 1; public DashStyle DashStyle = DashStyles.Solid; public LineType LineType = new LineType() { HeadType = C_LINE_TYPE.LINETYPE_NONE, TailType = C_LINE_TYPE.LINETYPE_NONE }; } }