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 Word-dokument
- Jämför MS Word-dokument med Java
- Ignorera formatering i MS Word-dokumentjämförelse
- Ställ in måldokument för jämförelseskillnader
- Ställ in granularitet för att jämföra MS 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.
- Ladda dokumenten som ska jämföras med klassen Dokument.
- Anropa metoden Document.compare(Document, String, Date) för att jämföra dokumentet med det som skickades som argument.
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.
- Ladda dokumenten som ska jämföras med klassen Dokument.
- Skapa ett objekt av klassen CompareOptions.
- Ställ in CompareOptions.setIgnoreFormatting(true).
- Jämför dokumenten med metoden Document.compare(Document, String, Date, CompareOptions).
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.