InkParam.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using ComPDFKit.Import;
  2. using ComPDFKit.PDFAnnotation;
  3. using System.Collections.Generic;
  4. using System.Windows.Media;
  5. namespace ComPDFKit.Tool
  6. {
  7. public class InkParam:AnnotParam
  8. {
  9. public InkParam ()
  10. {
  11. CurrentType = C_ANNOTATION_TYPE.C_ANNOTATION_INK;
  12. }
  13. public byte[] InkColor { get; set; }
  14. public double Thickness { get; set; }
  15. public List<List<CPoint>> InkPath { get; set; }
  16. public override bool CopyTo(AnnotParam transfer)
  17. {
  18. InkParam inkTransfer = transfer as InkParam;
  19. if (inkTransfer == null)
  20. {
  21. return false;
  22. }
  23. if (!base.CopyTo(inkTransfer))
  24. {
  25. return false;
  26. }
  27. if(InkColor != null)
  28. {
  29. inkTransfer.InkColor = (byte[])InkColor.Clone();
  30. }
  31. inkTransfer.Thickness = Thickness;
  32. if(InkPath != null)
  33. {
  34. List<List<CPoint>> inkPoints = new List<List<CPoint>>();
  35. foreach (List<CPoint> points in InkPath)
  36. {
  37. List<CPoint> pointList = new List<CPoint>();
  38. foreach (CPoint point in points)
  39. {
  40. pointList.Add(point);
  41. }
  42. inkPoints.Add(pointList);
  43. }
  44. inkTransfer.InkPath = inkPoints;
  45. }
  46. return true;
  47. }
  48. }
  49. }