using ComPDFKit.PDFAnnotation; using compdfkit_tools.PDFControl; using ComPDFKitViewer.AnnotEvent; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Media; using System.Windows.Media.Imaging; 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 }, { "Stamp", AnnotationType.Stamp }, { "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 HeadLineType; public C_LINE_TYPE TailLineType; } /// /// 用于换算的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 class CPDFLineShapeData : CPDFAnnotationData { public Color BorderColor = Color.FromRgb(255, 0, 0); public double Opacity = 1; public double Thickness = 1; public DashStyle DashStyle = DashStyles.Solid; public LineType LineType = new LineType() { HeadLineType = C_LINE_TYPE.LINETYPE_NONE, TailLineType = C_LINE_TYPE.LINETYPE_NONE }; } public class CPDFStampData : CPDFAnnotationData, INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public void RaisePropertyChanged(string PropertyName) { if (this.PropertyChanged != null) { this.PropertyChanged.Invoke(this, new PropertyChangedEventArgs(PropertyName)); } } private string stampText; public string StampText { get { return stampText; } set { stampText=value; RaisePropertyChanged("StampText"); } } private string sourcePath; public string SourcePath { get { return sourcePath; } set { sourcePath = value; RaisePropertyChanged("SourcePath"); } } private int maxWidth; public int MaxWidth { get { return maxWidth; } set { maxWidth = value; RaisePropertyChanged("MaxWidth"); } } private int maxHeight; public int MaxHeight { get { return maxHeight; } set { maxHeight = value; RaisePropertyChanged("MaxHeight"); } } private StampType type = StampType.UNKNOWN_STAMP; public StampType Type { get { return type; } set { type = value; RaisePropertyChanged("Type"); } } private double opacity; public double Opacity { get { return opacity; } set { opacity = value; RaisePropertyChanged("Opacity"); } } private BitmapSource imageSource; public BitmapSource ImageSource { get { return imageSource; } set { imageSource = value; RaisePropertyChanged("ImageSource"); } } public TextStampColor TextColor = TextStampColor.TEXTSTAMP_WHITE; public string StampTextDate = ""; public TextStampSharp TextSharp = TextStampSharp.TEXTSTAMP_NONE; public bool IsCheckedDate=false; public bool IsCheckedTime=false; } public class CustomStampList : List { } }