Comparar documentos PDF en Java
Contents
[
Hide
]
Aspose.PDF for Java proporciona APIs de comparación tanto lado a lado como gráficas para detectar diferencias entre archivos PDF.
Comparar páginas y exportar imágenes de diferencias
Utiliza este ejemplo cuando necesites una salida de diferencias basada en imágenes para un par específico de páginas PDF.
- Abra ambos PDF de origen
Documentobjetos. - Utilice
GraphicalPdfComparerpara obtener el nivel de páginaImagesDifference. - Utilice ‘GraphicalPdfComparer’ para obtener el nivel de página ‘ImagesDifference’.
- Exporte las imágenes de diferencia generadas y elimine el resultado de la comparación.
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);
}
Comparar páginas específicas una al lado de la otra
Utilice este ejemplo cuando solo se deban comparar páginas seleccionadas y guardarse como un resultado PDF lado a lado.
- Abra ambos PDF de origen
Documentobjetos. - Configure
SideBySideComparisonOptionspara el modo de comparación requerido. - Compare las páginas seleccionadas y guarde el PDF de salida.
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);
}
Comparar documentos PDF completos gráficamente
Este ejemplo genera un informe PDF gráfico que resalta las diferencias visuales en todos los documentos.
- Abra ambos PDF de origen
Documentobjetos. - Configure el
GraphicalPdfComparerumbral, color y resolución. - Compare los documentos completos y guarde el PDF de salida gráfico.
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);
}
Comparar documentos completos lado a lado
Utilice este ejemplo cuando se deben comparar los documentos completos página por página en una salida PDF de lado a lado.
- Abra ambos PDF de origen
Documentobjetos. - Configure
SideBySideComparisonOptionspara el comportamiento de comparación deseado. - Compare los documentos completos y guarde el resultado como un 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);
}