DocumentCompare.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. using ComPDFKit.Compare;
  2. using ComPDFKit.PDFDocument;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.IO;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Xml.Linq;
  10. namespace DocumentCompareTest
  11. {
  12. internal class DocumentCompare
  13. {
  14. static private string outputPath = Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(System.IO.Directory.GetCurrentDirectory()))) + "\\Output\\DocumentCompare";
  15. static void Main(string[] args)
  16. {
  17. Console.WriteLine("Running PDFPage test sample…\r\n");
  18. SDKLicenseHelper.LicenseVerify();
  19. if (!Directory.Exists(outputPath))
  20. {
  21. Directory.CreateDirectory(outputPath);
  22. }
  23. CPDFDocument document1 = CPDFDocument.InitWithFilePath("ElectricalDiagram.pdf");
  24. CPDFDocument document2 = CPDFDocument.InitWithFilePath("ElectricalDiagram_New.pdf");
  25. if (OverlayCompareDocument(document1, document2))
  26. {
  27. Console.WriteLine("Compare document done.");
  28. }
  29. else
  30. {
  31. Console.WriteLine("Compare document failed.");
  32. }
  33. document1.Release();
  34. document2.Release();
  35. Console.WriteLine("--------------------");
  36. CPDFDocument document3 = CPDFDocument.InitWithFilePath("Text.pdf");
  37. CPDFDocument document4 = CPDFDocument.InitWithFilePath("TextChanged.pdf");
  38. if (ContentCompareDocument(document3, document4))
  39. {
  40. Console.WriteLine("Compare document done.");
  41. }
  42. else
  43. {
  44. Console.WriteLine("Compare document failed.");
  45. }
  46. document1.Release();
  47. document2.Release();
  48. Console.WriteLine("Done!");
  49. Console.WriteLine("--------------------");
  50. Console.ReadLine();
  51. }
  52. static private bool OverlayCompareDocument(CPDFDocument document1, CPDFDocument document2)
  53. {
  54. CPDFCompareOverlay compareOverlay = new CPDFCompareOverlay(document1, "1-5", document2, "1-5");
  55. compareOverlay.Compare();
  56. CPDFDocument comparisonDocument = compareOverlay.ComparisonDocument();
  57. string path = outputPath + "\\CompareDocumentTest.pdf";
  58. if (!comparisonDocument.WriteToFilePath(path))
  59. {
  60. return false;
  61. }
  62. Console.WriteLine("Browse the changed file in " + path);
  63. return true;
  64. }
  65. static private bool ContentCompareDocument(CPDFDocument document, CPDFDocument documentNew)
  66. {
  67. CPDFCompareContent compareContent = new CPDFCompareContent(document, documentNew);
  68. int pageCount = Math.Min(document.PageCount, documentNew.PageCount);
  69. for (int i = 0; i < pageCount; i++)
  70. {
  71. Console.WriteLine("Page: {0}", i);
  72. CPDFCompareResults compareResults = compareContent.Compare(i, i, CPDFCompareType.CPDFCompareTypeAll, true);
  73. Console.WriteLine("Replace count: {0}", compareResults.ReplaceCount);
  74. Console.WriteLine("TextResults count: {0}", compareResults.TextResults.Count);
  75. Console.WriteLine("Delete count: {0}", compareResults.DeleteCount);
  76. Console.WriteLine("Insert count: {0}", compareResults.InsertCount);
  77. }
  78. return true;
  79. }
  80. }
  81. }