قارن مستندات PDF في Java

يوفر Aspose.PDF for Java واجهات برمجة تطبيقات للمقارنة جنبًا إلى جنب والرسومية لاكتشاف الاختلافات بين ملفات PDF.

قارن الصفحات وصدّر صور الاختلاف

استخدم هذا المثال عندما تحتاج إلى إخراج اختلاف مبني على الصورة لزوج محدد من صفحات PDF.

  1. افتح كلا ملف PDF المصدر الكائنات Document.
  2. استخدم GraphicalPdfComparer للحصول على مستوى الصفحة ImagesDifference.
  3. استخدم ‘GraphicalPdfComparer’ للحصول على مستوى الصفحة ‘ImagesDifference’.
  4. صدّر صور الفروقات المُولَّدة وإتلاف نتيجة المقارنة.
public static void comparePdfWithGetDifferenceMethod(
        Path inputFile1, Path inputFile2, Path diffOutputFile, Path destinationOutputFile) throws Exception {
    try (Document document1 = new Document(inputFile1.toString());
         Document document2 = new Document(inputFile2.toString())) {
        GraphicalPdfComparer comparer = new GraphicalPdfComparer();
        ImagesDifference imagesDifference = comparer.getDifference(document1.getPages().get_Item(1),
                document2.getPages().get_Item(1));

        ImageIO.write(imagesDifference.differenceToImage(Color.getRed(), Color.getWhite()),
                "png", diffOutputFile.toFile());
        ImageIO.write(imagesDifference.getDestinationImage(), "png", destinationOutputFile.toFile());
        imagesDifference.dispose();
    }
    System.out.println("Difference images saved to " + diffOutputFile + " and " + destinationOutputFile);
}

قارن الصفحات المحددة جنبًا إلى جنب

استخدم هذا المثال عندما يجب مقارنة الصفحات المحددة فقط وحفظها كنتيجة PDF جنبًا إلى جنب

  1. افتح كلا ملف PDF المصدر الكائنات Document.
  2. اضبط SideBySideComparisonOptions لوضع المقارنة المطلوب.
  3. قارن الصفحات المحددة واحفظ ملف PDF الناتج.
public static void comparingSpecificPages(Path inputFile1, Path inputFile2, Path outputFile) {
    try (Document document1 = new Document(inputFile1.toString());
         Document document2 = new Document(inputFile2.toString())) {
        SideBySideComparisonOptions options = new SideBySideComparisonOptions();
        options.setAdditionalChangeMarks(true);
        options.setComparisonMode(ComparisonMode.IgnoreSpaces);

        SideBySidePdfComparer.compare(document1.getPages().get_Item(1), document2.getPages().get_Item(1),
                outputFile.toString(), options);
    }
    System.out.println("Specific pages comparison saved to " + outputFile);
}

قارن مستندات PDF بالكامل رسوميًا

هذا المثال يولد تقرير PDF رسومي يبرز الفروق البصرية عبر المستندات بالكامل.

  1. افتح كلا ملف PDF المصدر الكائنات Document.
  2. اضبط GraphicalPdfComparer الحدّ، اللون، والدقة.
  3. قارن المستندات الكاملة واحفظ ملف PDF الناتج الرسومي.
public static void comparePdfWithCompareDocumentsToPdfMethod(Path inputFile1, Path inputFile2, Path outputFile) {
    try (Document document1 = new Document(inputFile1.toString());
         Document document2 = new Document(inputFile2.toString())) {
        GraphicalPdfComparer pdfComparer = new GraphicalPdfComparer();
        pdfComparer.setThreshold(3.0);
        pdfComparer.setColor(Color.getBlue());
        pdfComparer.setResolution(new Resolution(300));
        pdfComparer.compareDocumentsToPdf(document1, document2, outputFile.toString());
    }
    System.out.println("Graphical comparison saved to " + outputFile);
}

قارن المستندات بالكامل جنبًا إلى جنب

استخدم هذا المثال عندما يجب مقارنة المستندات بالكامل صفحة بصفحة في مخرجات PDF جنبًا إلى جنب.

  1. افتح كلا ملف PDF المصدر الكائنات Document.
  2. اضبط SideBySideComparisonOptions للسلوك المقارن المطلوب.
  3. قارن المستندات الكاملة واحفظ النتيجة كملف PDF.
public static void comparingEntireDocuments(Path inputFile1, Path inputFile2, Path outputFile) {
    try (Document document1 = new Document(inputFile1.toString());
         Document document2 = new Document(inputFile2.toString())) {
        SideBySideComparisonOptions options = new SideBySideComparisonOptions();
        options.setAdditionalChangeMarks(true);
        options.setComparisonMode(ComparisonMode.IgnoreSpaces);

        SideBySidePdfComparer.compare(document1, document2, outputFile.toString(), options);
    }
    System.out.println("Entire document comparison saved to " + outputFile);
}