Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Tenga en cuenta que todas las herramientas de comparación están disponibles en la biblioteca Aspose.PDF.Drawing.
Al trabajar con documentos PDF, hay momentos en los que necesitas comparar el contenido de dos documentos para identificar diferencias. La biblioteca Aspose.PDF for .NET proporciona un conjunto de herramientas poderoso para este propósito. En este artículo, exploraremos cómo comparar documentos PDF utilizando un par de fragmentos de código simples.
La funcionalidad de comparación en Aspose.PDF te permite comparar dos documentos PDF página por página. Puedes elegir comparar ya sea páginas específicas o documentos completos. El documento de comparación resultante resalta las diferencias, facilitando la identificación de cambios entre los dos archivos.
Aquí hay una lista de posibles formas de comparar documentos PDF utilizando la biblioteca Aspose.PDF for .NET:
Comparar Páginas Específicas - Comparar las primeras páginas de dos documentos PDF.
Comparar Documentos Completos - Comparar todo el contenido de dos documentos PDF.
Comparar documentos PDF gráficamente:
Comparar PDF con el método GetDifference - imágenes individuales donde se marcan los cambios.
Comparar PDF con el método CompareDocumentsToPdf - documento PDF con imágenes donde se marcan los cambios.
El primer fragmento de código demuestra cómo comparar las primeras páginas de dos documentos PDF.
Inicialización del Documento. El código comienza inicializando dos documentos PDF utilizando sus respectivas rutas de archivo (documentPath1 y documentPath2). Las rutas se especifican como cadenas vacías por ahora, pero en la práctica, reemplazarías estas con las rutas de archivo reales.
Proceso de Comparación.
‘AdditionalChangeMarks = true’ - esta opción asegura que se muestren marcadores de cambios adicionales. Estos marcadores resaltan diferencias que podrían estar presentes en otras páginas, incluso si no están en la página actual que se está comparando.
‘ComparisonMode = ComparisonMode.IgnoreSpaces’ - este modo le dice al comparador que ignore los espacios en el texto, enfocándose solo en los cambios dentro de las palabras.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ComparingSpecificPages()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_DocumentCompare();
// Open PDF documents
using (var document1 = new Aspose.Pdf.Document(dataDir + "ComparingSpecificPages1.pdf"))
{
using (var document2 = new Aspose.Pdf.Document(dataDir + "ComparingSpecificPages2.pdf"))
{
// Compare
Aspose.Pdf.Comparison.SideBySidePdfComparer.Compare(document1.Pages[1], document2.Pages[1], dataDir + "ComparingSpecificPages_out.pdf", new Aspose.Pdf.Comparison.SideBySideComparisonOptions
{
AdditionalChangeMarks = true,
ComparisonMode = Aspose.Pdf.Comparison.ComparisonMode.IgnoreSpaces,
DeleteColor = Color.DarkGray,
InsertColor = Color.LightYellow
});
}
}
}
El segundo fragmento de código amplía el alcance para comparar todo el contenido de dos documentos PDF.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ComparingEntireDocuments()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_DocumentCompare();
// Open PDF documents
using (var document1 = new Aspose.Pdf.Document(dataDir + "ComparingEntireDocuments1.pdf"))
{
using (var document2 = new Aspose.Pdf.Document(dataDir + "ComparingEntireDocuments2.pdf"))
{
// Compare
Aspose.Pdf.Comparison.SideBySidePdfComparer.Compare(
document1,
document2,
dataDir + "ComparingEntireDocuments_out.pdf",
new Aspose.Pdf.Comparison.SideBySideComparisonOptions
{
AdditionalChangeMarks = true,
ComparisonMode = Aspose.Pdf.Comparison.ComparisonMode.IgnoreSpaces,
DeleteColor = Color.DarkGray,
InsertColor = Color.LightYellow
});
}
}
}
Los resultados de comparación generados por estos fragmentos son documentos PDF que puedes abrir en un visor como Adobe Acrobat. Si utilizas la vista de dos páginas en Adobe Acrobat, verás los cambios lado a lado:
Al establecer ‘AdditionalChangeMarks’ en ’true’, también puedes ver marcadores para cambios que pueden ocurrir en otras páginas, incluso si esos cambios no están en la página actual que se está viendo.
Aspose.PDF for .NET proporciona herramientas robustas para comparar documentos PDF, ya sea que necesites comparar páginas específicas o documentos completos. Al utilizar opciones como ‘AdditionalChangeMarks’ y diferentes configuraciones de ‘ComparisonMode’, puedes adaptar el proceso de comparación a tus necesidades específicas. El documento resultante proporciona una vista clara, lado a lado de los cambios, facilitando el seguimiento de revisiones y asegurando la precisión del documento.
Al colaborar en documentos, especialmente en entornos profesionales, a menudo terminas con múltiples versiones del mismo archivo.
Puedes usar la clase GraphicalPdfComparer para comparar documentos y páginas PDF. La clase es adecuada para comparar cambios en el contenido gráfico de una página.
Con Aspose.PDF for .NET, es posible comparar documentos y páginas y exportar el resultado de la comparación a un documento PDF o archivo de imagen.
Puedes establecer las siguientes propiedades de la clase:
La clase tiene un método que te permite obtener diferencias de imagen de página en una forma adecuada para un procesamiento posterior: ImagesDifference GetDifference(Page page1, Page page2).
Este método devuelve un objeto de la clase ImagesDifference, que contiene una imagen de la primera página que se está comparando y un array de diferencias. El array de diferencias y la imagen original tienen el formato de píxel RGB24bpp.
ImagesDifference te permite generar una imagen diferente y obtener una imagen de la segunda página que se está comparando al agregar un array de diferencias a la imagen original. Para hacer esto, utiliza los métodos ImagesDifference.GetDestinationImage y ImagesDifference.DifferenceToImage.
El código proporcionado define un método GetDifference que compara dos documentos PDF y genera representaciones visuales de las diferencias entre ellos.
Este método compara las primeras páginas de dos archivos PDF y genera dos imágenes PNG:
Este proceso puede ser útil para comparar visualmente cambios o diferencias entre dos versiones de un documento.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ComparePDFWithGetDifferenceMethod()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_DocumentCompare();
// Open PDF documents
using (var document1 = new Aspose.Pdf.Document(dataDir + "ComparePDFWithGetDifferenceMethod1.pdf"))
{
using (var document2 = new Aspose.Pdf.Document(dataDir + "ComparePDFWithGetDifferenceMethod2.pdf"))
{
// Create comparer
var comparer = new Aspose.Pdf.Comparison.GraphicalPdfComparer();
// Compare
using (var imagesDifference = comparer.GetDifference(document1.Pages[1], document2.Pages[1]))
{
using (var diffImg = imagesDifference.DifferenceToImage(Aspose.Pdf.Color.Red, Aspose.Pdf.Color.White))
{
diffImg.Save(dataDir + "ComparePDFWithGetDifferenceMethodDiffPngFilePath_out.png");
}
using (var destImg = imagesDifference.GetDestinationImage())
{
destImg.Save(dataDir + "ComparePDFWithGetDifferenceMethodDestPngFilePath_out.png");
}
}
}
}
}
El fragmento de código proporcionado utiliza el método CompareDocumentsToPdf que compara dos documentos y genera un informe PDF de los resultados de la comparación.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ComparePDFWithCompareDocumentsToPdfMethod()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_DocumentCompare();
// Open PDF documents
using (var document1 = new Aspose.Pdf.Document(dataDir + "ComparePDFWithCompareDocumentsToPdfMethod1.pdf"))
{
using (var document2 = new Aspose.Pdf.Document(dataDir + "ComparePDFWithCompareDocumentsToPdfMethod2.pdf"))
{
// Create comparer
var comparer = new Aspose.Pdf.Comparison.GraphicalPdfComparer()
{
Threshold = 3.0,
Color = Aspose.Pdf.Color.Blue,
Resolution = new Aspose.Pdf.Devices.Resolution(300)
};
// Compare
comparer.CompareDocumentsToPdf(document1, document2, dataDir + "compareDocumentsToPdf_out.pdf");
}
}
}
Puedes usar la clase TextPdfComparer para comparar documentos y páginas individuales. La clase permite comparar documentos página por página o como un único flujo de contenido continuo (sin separación de páginas). Los métodos de comparación devuelven un array de diferencias que se pueden pasar a cualquier clase que implemente las interfaces IStringOutputGenerator o IFileOutputGenerator para producir una salida de comparación formateada. La salida es compatible en: HTML, Markdown, PDF, y JSON. También puedes usar la clase ComparisonStatistics para obtener estadísticas sobre las operaciones de comparación realizadas.
| Método | Descripción | Parámetros | Valor de Retorno |
|---|---|---|---|
CompareDocumentsPageByPage(Document document1, Document document2, ComparisonOptions options) |
Compara dos documentos PDF página por página. | * document1 – el primer documento.* document2 – el segundo documento.* options – opciones de comparación (ver abajo). |
List<List<DiffOperation>> – lista de diferencias para cada página. |
CompareDocumentsPageByPage(Document document1, Document document2, ComparisonOptions options, string resultPdfDocumentPath) |
Igual que arriba, pero también guarda los resultados de la comparación en un archivo PDF. | Mismos parámetros que arriba + resultPdfDocumentPath – ruta al archivo de salida. |
List<List<DiffOperation>> – lista de diferencias. |
CompareFlatDocuments(Document document1, Document document2, ComparisonOptions options) |
Compara dos documentos PDF como un único texto continuo (fusionando todas las páginas). | Mismos parámetros que en CompareDocumentsPageByPage. |
List<DiffOperation> – lista de todas las diferencias. |
CompareFlatDocuments(Document document1, Document document2, ComparisonOptions options, string resultPdfDocumentPath) |
Comparación de documentos planos con resultado guardado en un archivo PDF. | Mismos parámetros que en CompareFlatDocuments + resultPdfDocumentPath. |
List<DiffOperation> – lista de diferencias. |
ComparePages(Page page1, Page page2, ComparisonOptions options) |
Compara dos páginas individuales. | * page1 – la primera página.* page2 – la segunda página.* options – opciones de comparación. |
List<DiffOperation> – lista de diferencias de página. |
CreateComparisonStatistics(List<DiffOperation> diffs) |
Genera estadísticas de comparación para una lista de operaciones (página única). | diffs – lista de DiffOperation. |
TextItemComparisonStatistics (ver abajo). |
CreateComparisonStatistics(List<List<DiffOperation>> diffs) |
Genera estadísticas de comparación para una lista de operaciones a través de páginas (nivel de documento). | diffs – lista de listas de DiffOperation. |
DocumentComparisonStatistics (ver abajo). |
AssemblySourcePageText(List<DiffOperation> diffs) |
Reconstruye el texto original (pre-cambio) de la página. | diffs – lista de operaciones. |
string – texto original. |
AssemblyDestinationPageText(List<DiffOperation> diffs) |
Reconstruye el texto modificado (post-cambio) de la página. | diffs – lista de operaciones. |
string – texto modificado. |
ComparisonOptionsParámetros que afectan el proceso de comparación:
| Propiedad | Tipo | Descripción |
|---|---|---|
ExtractionArea |
Rectangle |
El área de la que se extraerá el texto. No compatible con ExcludeTables, ExcludeAreas1/2. |
ExcludeTables |
bool |
Excluir tablas de la comparación. No compatible con ExtractionArea. |
ExcludeAreas1 |
Rectangle[] |
Array de áreas a excluir para el primer documento. |
ExcludeAreas2 |
Rectangle[] |
Array de áreas a excluir para el segundo documento. |
EditOperationsOrder |
EditOperationsOrder (enum) |
Orden de aplicación de operaciones de inserción/eliminación (el valor predeterminado es DeleteFirst). |
DiffOperationRepresenta una única operación de diferencia. Contiene:
| Propiedad | Tipo | Descripción |
|---|---|---|
Operation |
Operation (enum) |
Tipo de operación (Equal, Delete, Insert). |
Text |
string |
Texto asociado con la operación. |
ComparisonStatistics| Clase | Descripción |
|---|---|
TextItemComparisonStatistics |
Estadísticas para un texto individual (página). Incluye caracteres totales, número de inserciones, eliminaciones y operaciones correspondientes. |
DocumentComparisonStatistics (hereda de TextItemComparisonStatistics) |
Estadísticas extendidas para todo el documento, incluyendo una lista de PagesStatistics (estadísticas por página). |
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.