confronta i documenti di Word in Java

Il confronto di documenti MS Word viene eseguito per conoscere la differenza tra due versioni di un documento. MS Word fornisce un’opzione integrata per confrontare il contenuto di due documenti. Tuttavia, con l’aumento del numero di documenti, diventa difficile eseguire manualmente il confronto dei documenti. Per automatizzare questo processo, questo articolo illustra come confrontare due documenti MS Word (DOC/DOCX) utilizzando Java.

API Java per confrontare documenti MS Word

Aspose.Words for Java è una potente API di manipolazione dei documenti che ti consente di creare, leggere, modificare e convertire documenti MS Word. Inoltre, ti consente di confrontare due documenti Word e considerare o ignorare la formattazione del contenuto. Puoi scaricare l’API o installarla utilizzando le configurazioni Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-words</artifactId>
    <version>20.9</version>
    <classifier>jdk17</classifier>
</dependency>

Confronta i documenti MS Word usando Java

Di seguito sono riportati i passaggi per eseguire un semplice confronto di documenti di Word utilizzando Aspose.Words per l’API Java.

L’esempio di codice seguente mostra come confrontare due documenti MS Word utilizzando Java.

Document docA = new Document(dataDir + "DocumentA.doc");
Document docB = new Document(dataDir + "DocumentB.doc");
docA.compare(docB, "user", new Date()); // docA now contains changes as revisions

Confronto di documenti Java Word - Ignora formattazione

Potrebbero verificarsi casi in cui i documenti hanno una formattazione diversa applicata al contenuto. In questi casi, preferiresti confrontare il testo solo ignorando la formattazione, le intestazioni/piè di pagina, le note a piè di pagina, le tabelle, i commenti, ecc. Di seguito sono riportati i passaggi per ignorare la formattazione del documento quando si confrontano due documenti MS Word.

L’esempio di codice seguente mostra come confrontare i documenti di MS Word ignorando la formattazione del contenuto utilizzando Java.

// Per esempi completi e file di dati, vai a https://github.com/aspose-words/Aspose.Words-for-Java
String dataDir = Utils.getDataDir(CompareTwoWordDocumentswithCompareOptions.class);

com.aspose.words.Document docA = new com.aspose.words.Document(dataDir + "DocumentA.doc");
com.aspose.words.Document docB = new com.aspose.words.Document(dataDir + "DocumentB.doc");

com.aspose.words.CompareOptions options = new com.aspose.words.CompareOptions();
options.setIgnoreFormatting(true);
options.setIgnoreHeadersAndFooters(true);
options.setIgnoreCaseChanges(true);
options.setIgnoreTables(true);
options.setIgnoreFields(true);
options.setIgnoreComments(true);
options.setIgnoreTextboxes(true);
options.setIgnoreFootnotes(true);

// DocA ora contiene le modifiche come revisioni.
docA.compare(docB, "user", new Date(), options);
if (docA.getRevisions().getCount() == 0)
    System.out.println("Documents are equal");
else
    System.out.println("Documents are not equal");

Imposta il documento Word di destinazione per le differenze di confronto

Aspose.Words per Java consente anche di specificare il documento Word di origine durante il confronto. Per questo, puoi usare la proprietà CompareOptions.setTarget() che si riferisce all’opzione “Mostra modifiche in” di MS Word. L’esempio di codice seguente mostra come specificare il documento di destinazione nel confronto.

Document docA = new Document(dataDir + "TestFile.doc");
Document docB = new Document(dataDir + "TestFile - Copy.doc");

CompareOptions options = new CompareOptions();
options.setIgnoreFormatting(true);
// Si riferisce all'opzione "Mostra modifiche in" di Microsoft Word nella finestra di dialogo "Confronta documenti".
options.setTarget(ComparisonTargetType.NEW);

docA.compare(docB, "user", new Date(), options);

Imposta la granularità per confrontare i file di Word in Java

Puoi anche impostare la granularità delle modifiche quando confronti due documenti MS Word. Questo può essere fatto usando la proprietà CompareOptions.setGranularity(). Di seguito sono elencate le possibili opzioni di granularità.

L’esempio di codice seguente mostra come impostare la granularità durante il confronto di documenti MS Word utilizzando Java.

DocumentBuilder builderA = new DocumentBuilder(new Document());
DocumentBuilder builderB = new DocumentBuilder(new Document());

builderA.writeln("This is A simple word");
builderB.writeln("This is B simple words");

CompareOptions co = new CompareOptions();
co.setGranularity(Granularity.CHAR_LEVEL);

builderA.getDocument().compare(builderB.getDocument(), "author", new Date(), co);

Conclusione

In questo articolo, hai visto come confrontare due documenti MS Word in vari scenari utilizzando Java. Puoi esplorare di più su Aspose.Words per Java utilizzando la documentazione.

Prova gratis

Aspose offre una licenza temporanea per provare gratuitamente le sue API. Puoi ottenere il tuo per valutare Aspose.Words per Java.

Guarda anche