Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Veuillez noter que tous les outils de comparaison sont disponibles dans la bibliothèque Aspose.PDF.Drawing.
Lorsque vous travaillez avec des documents PDF, il y a des moments où vous devez comparer le contenu de deux documents pour identifier les différences. La bibliothèque Aspose.PDF for .NET fournit un ensemble d’outils puissant à cet effet. Dans cet article, nous allons explorer comment comparer des documents PDF en utilisant quelques extraits de code simples.
La fonctionnalité de comparaison dans Aspose.PDF vous permet de comparer deux documents PDF page par page. Vous pouvez choisir de comparer soit des pages spécifiques, soit des documents entiers. Le document de comparaison résultant met en évidence les différences, facilitant ainsi l’identification des changements entre les deux fichiers.
Voici une liste des façons possibles de comparer des documents PDF en utilisant la bibliothèque Aspose.PDF for .NET :
Comparer des pages spécifiques - Comparez les premières pages de deux documents PDF.
Comparer des documents entiers - Comparez l’ensemble du contenu de deux documents PDF.
Comparer des documents PDF graphiquement :
Comparez PDF avec la méthode GetDifference - images individuelles où les changements sont marqués.
Comparez PDF avec la méthode CompareDocumentsToPdf - document PDF avec des images où les changements sont marqués.
Le premier extrait de code démontre comment comparer les premières pages de deux documents PDF.
Initialisation du document. Le code commence par initialiser deux documents PDF en utilisant leurs chemins de fichiers respectifs (documentPath1 et documentPath2). Les chemins sont spécifiés comme des chaînes vides pour l’instant, mais en pratique, vous les remplaceriez par les chemins de fichiers réels.
Processus de comparaison.
‘AdditionalChangeMarks = true’ - cette option garantit que des marqueurs de changement supplémentaires sont affichés. Ces marqueurs mettent en évidence les différences qui pourraient être présentes sur d’autres pages, même si elles ne se trouvent pas sur la page actuelle en cours de comparaison.
‘ComparisonMode = ComparisonMode.IgnoreSpaces’ - ce mode indique au comparateur d’ignorer les espaces dans le texte, en se concentrant uniquement sur les changements au sein des mots.
// 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
});
}
}
}
Le deuxième extrait de code élargit le champ d’application pour comparer l’ensemble du contenu de deux documents 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
});
}
}
}
Les résultats de comparaison générés par ces extraits sont des documents PDF que vous pouvez ouvrir dans un visualiseur comme Adobe Acrobat. Si vous utilisez la vue à deux pages dans Adobe Acrobat, vous verrez les changements côte à côte :
En définissant ‘AdditionalChangeMarks’ sur ’true’, vous pouvez également voir des marqueurs pour les changements qui peuvent se produire sur d’autres pages, même si ces changements ne sont pas sur la page actuelle visualisée.
Aspose.PDF for .NET fournit des outils robustes pour comparer des documents PDF, que vous ayez besoin de comparer des pages spécifiques ou des documents entiers. En utilisant des options comme ‘AdditionalChangeMarks’ et différents paramètres ‘ComparisonMode’, vous pouvez adapter le processus de comparaison à vos besoins spécifiques. Le document résultant fournit une vue claire, côte à côte des changements, facilitant le suivi des révisions et garantissant l’exactitude des documents.
Lors de la collaboration sur des documents, en particulier dans des environnements professionnels, vous vous retrouvez souvent avec plusieurs versions du même fichier.
Vous pouvez utiliser la classe GraphicalPdfComparer pour comparer des documents et des pages PDF. La classe est adaptée pour comparer les changements dans le contenu graphique d’une page.
Avec Aspose.PDF for .NET, il est possible de comparer des documents et des pages et de produire le résultat de la comparaison dans un document PDF ou un fichier image.
Vous pouvez définir les propriétés de classe suivantes :
La classe a une méthode qui vous permet d’obtenir les différences d’image de page sous une forme adaptée à un traitement ultérieur : ImagesDifference GetDifference(Page page1, Page page2).
Cette méthode retourne un objet de la classe ImagesDifference, qui contient une image de la première page comparée et un tableau de différences. Le tableau de différences et l’image originale ont le format de pixel RGB24bpp.
ImagesDifference vous permet de générer une image différente et d’obtenir une image de la deuxième page comparée en ajoutant un tableau de différences à l’image originale. Pour ce faire, utilisez les méthodes ImagesDifference.GetDestinationImage et ImagesDifference.DifferenceToImage.
Le code fourni définit une méthode GetDifference qui compare deux documents PDF et génère des représentations visuelles des différences entre eux.
Cette méthode compare les premières pages de deux fichiers PDF et génère deux images PNG :
Ce processus peut être utile pour comparer visuellement les changements ou les différences entre deux versions d’un document.
// 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");
}
}
}
}
}
L’extrait de code fourni utilise la méthode CompareDocumentsToPdf qui compare deux documents et génère un rapport PDF des résultats de la comparaison.
// 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");
}
}
}
Vous pouvez utiliser la classe TextPdfComparer pour comparer des documents et des pages individuelles. La classe permet de comparer des documents page par page ou comme un flux de contenu continu unique (sans séparation de pages). Les méthodes de comparaison retournent un tableau de différences qui peut être passé à toute classe implémentant les interfaces IStringOutputGenerator ou IFileOutputGenerator pour produire une sortie de comparaison formatée. La sortie est prise en charge dans : HTML, Markdown, PDF, et JSON. Vous pouvez également utiliser la classe ComparisonStatistics pour obtenir des statistiques sur les opérations de comparaison effectuées.
| Méthode | Description | Paramètres | Valeur de retour |
|---|---|---|---|
CompareDocumentsPageByPage(Document document1, Document document2, ComparisonOptions options) |
Compare deux documents PDF page par page. | * document1 – le premier document.* document2 – le deuxième document.* options – options de comparaison (voir ci-dessous). |
List<List<DiffOperation>> – liste des différences pour chaque page. |
CompareDocumentsPageByPage(Document document1, Document document2, ComparisonOptions options, string resultPdfDocumentPath) |
Même que ci-dessus, mais enregistre également les résultats de la comparaison dans un fichier PDF. | Même paramètres que ci-dessus + resultPdfDocumentPath – chemin vers le fichier de sortie. |
List<List<DiffOperation>> – liste des différences. |
CompareFlatDocuments(Document document1, Document document2, ComparisonOptions options) |
Compare deux documents PDF comme un texte continu unique (fusionnant toutes les pages). | Même paramètres que dans CompareDocumentsPageByPage. |
List<DiffOperation> – liste de toutes les différences. |
CompareFlatDocuments(Document document1, Document document2, ComparisonOptions options, string resultPdfDocumentPath) |
Comparaison de documents plats avec résultat enregistré dans un fichier PDF. | Même paramètres que dans CompareFlatDocuments + resultPdfDocumentPath. |
List<DiffOperation> – liste des différences. |
ComparePages(Page page1, Page page2, ComparisonOptions options) |
Compare deux pages individuelles. | * page1 – la première page.* page2 – la deuxième page.* options – options de comparaison. |
List<DiffOperation> – liste des différences de page. |
CreateComparisonStatistics(List<DiffOperation> diffs) |
Génère des statistiques de comparaison pour une liste d’opérations (page unique). | diffs – liste de DiffOperation. |
TextItemComparisonStatistics (voir ci-dessous). |
CreateComparisonStatistics(List<List<DiffOperation>> diffs) |
Génère des statistiques de comparaison pour une liste d’opérations à travers les pages (niveau document). | diffs – liste de listes de DiffOperation. |
DocumentComparisonStatistics (voir ci-dessous). |
AssemblySourcePageText(List<DiffOperation> diffs) |
Reconstruit le texte original (avant changement) de la page. | diffs – liste d’opérations. |
string – texte original. |
AssemblyDestinationPageText(List<DiffOperation> diffs) |
Reconstruit le texte modifié (après changement) de la page. | diffs – liste d’opérations. |
string – texte modifié. |
ComparisonOptionsParamètres affectant le processus de comparaison :
| Propriété | Type | Description |
|---|---|---|
ExtractionArea |
Rectangle |
La zone à partir de laquelle le texte sera extrait. Non compatible avec ExcludeTables, ExcludeAreas1/2. |
ExcludeTables |
bool |
Exclure les tables de la comparaison. Non compatible avec ExtractionArea. |
ExcludeAreas1 |
Rectangle[] |
Tableau de zones à exclure pour le premier document. |
ExcludeAreas2 |
Rectangle[] |
Tableau de zones à exclure pour le deuxième document. |
EditOperationsOrder |
EditOperationsOrder (enum) |
Ordre d’application des opérations d’insertion/suppression (la valeur par défaut est DeleteFirst). |
DiffOperationReprésente une opération de différence unique. Contient :
| Propriété | Type | Description |
|---|---|---|
Operation |
Operation (enum) |
Type d’opération (Égal, Supprimer, Insérer). |
Text |
string |
Texte associé à l’opération. |
ComparisonStatistics| Classe | Description |
|---|---|
TextItemComparisonStatistics |
Statistiques pour un texte individuel (page). Comprend le nombre total de caractères, le nombre d’insertion, de suppressions et les opérations correspondantes. |
DocumentComparisonStatistics (hérite de TextItemComparisonStatistics) |
Statistiques étendues pour l’ensemble du document, y compris une liste de PagesStatistics (statistiques par page). |
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.