jämför word-dokument i Java

Du kan jämföra MS Word-dokument för att veta om skillnaden mellan de två versionerna av ett dokument. MS Word har ett inbyggt alternativ för att jämföra innehållet i två dokument och markera skillnaderna. När du arbetar med MS Word-automatisering i Java kan du behöva jämföra två eller flera Word-dokument programmatiskt. Därför tar den här artikeln upp hur man jämför två Word-dokument i Java. Vi kommer också att visa hur man ignorerar formateringen av dokumenten och får jämförelseskillnader i ett specifikt Word-dokument.

Java-bibliotek för att jämföra två Word-dokument

Aspose.Words for Java är ett kraftfullt dokumentmanipuleringsbibliotek som låter dig skapa, läsa, ändra och konvertera MS Word-dokument. Dessutom låter det dig jämföra två Word-dokument tillsammans med att överväga eller ignorera formateringen av innehållet. Du kan ladda ner biblioteket eller få det installerat med Maven-konfigurationer.

<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>22.9</version>
    <classifier>jdk17</classifier>
</dependency>

Hur man jämför två Word-dokument i Java

Följande är stegen för att utföra en enkel Word-dokumentjämförelse med Aspose.Words för Java API.

Java-kod för att jämföra Word-dokument

Följande kodexempel visar hur man jämför två MS Word-dokument med 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

Java Jämför Word DOCX genom att ignorera formatering

Det kan finnas ett fall när dokumenten har olika formatering på innehållet. I sådana fall föredrar du att endast jämföra texten samtidigt som du ignorerar formateringen, sidhuvuden/sidfötter, fotnoter, tabeller, kommentarer etc. Följande är stegen för att ignorera dokumentets formatering när du jämför två MS Word DOC-filer i Java.

Följande kodexempel visar hur man jämför MS Word-dokument och ignorerar innehållets formatering med Java.

// För fullständiga exempel och datafiler, gå till 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 innehåller nu ändringar som revisioner.
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");

Ställ in måldokument i MS Word-jämförelse

Aspose.Words för Java låter dig också ange källdokumentet för Word under jämförelsen. För detta kan du använda egenskapen CompareOptions.setTarget() som är relaterad till MS Words “Visa ändringar i”-alternativ. Följande kodexempel visar hur man anger måldokumentet i jämförelsen.

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

CompareOptions options = new CompareOptions();
options.setIgnoreFormatting(true);
// Relaterar till Microsoft Word alternativet "Visa ändringar i" i dialogrutan "Jämför dokument".
options.setTarget(ComparisonTargetType.NEW);

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

Jämför Word-filer med anpassad granularitet

Du kan också ställa in granulariteten för ändringar när du jämför två MS Word-dokument. Detta kan göras med hjälp av egenskapen CompareOptions.setGranularity(). Följande är möjliga granularitetsalternativ.

Följande kodexempel visar hur man ställer in granularitet när man jämför MS Word-dokument med 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);

Java Difference Checker Library - Gratis licens

Aspose erbjuder en gratis tillfällig licens för dig att jämföra Word-dokument utan några utvärderingsbegränsningar.

Läs mer om Java Word Library

Du kan utforska mer om Aspose.Words för Java med hjälp av dokumentationen.

Slutsats

I den här artikeln har du sett hur du jämför två Word-dokument i Java. Vi har täckt olika alternativ för att anpassa Word-dokumentjämförelsen programmatiskt i Java.

Se även

Konvertera DOC/DOCX till JPG i C# .NETKonvertera DOC/DOCX till JPG i JavaKonvertera DOC/DOCX till PNG i C# .NET
Konvertera DOC/DOCX till PNG i JavaKonvertera DOCX till HTML i C#Konvertera DOCX till TXT i Python
Slå samman MS Word-dokument med JavaSkapa Rich Word-dokument i JavaMS Word DOC/DOCX till PDF i Java
PNG till Word i C# .NETJPG till Word i C# .NETBild till Word i C#
Ord till HTML i C#Word DOCX till Markdown i JavaExtrahera bilder från Word DOC i Java
Word DOC till Markdown i JavaWord DOC DOCX till Markdown i C#Extrahera text från Word-dokument i Java
Slå samman MS Word-dokument med C# .NETWord DOC till PNG, JPEG, BMP, GIF eller TIFF i C#Word DOC till PNG, JPEG, BMP, GIF eller TIFF i Java