Ознайомившись із цією статтею, ми зможемо порівнювати текстові файли, файли Word, файли PDF та інші документи в програмах на основі Java. Використовуючи цю функцію, ми можемо порівнювати рахунки-фактури, контракти, презентації, проекти AutoCAD, прайс-листи або файли програм. Ми також матимемо привілей виділяти виявлені зміни та матимемо можливість прийняти або відхилити будь-які зміни. Ми навіть можемо створити власний інструмент порівняння документів, подібний до того, що запустив GroupDocs, використовуючи API порівняння документів для Java.
Нижче ви ознайомитеся з такими темами:
- Порівняйте файли Word і покажіть відмінності.
- Порівняйте файли Word за допомогою потоків.
- Прийняти або відхилити виявлені зміни у файлі Word.
- Порівняйте текстові файли та виділіть відмінності.
- Порівняйте файли PDF за допомогою Java.
API порівняння документів Java
Як попередню умову ви можете отримати GroupDocs.Comparison for Java із розділу завантажень. Крім того, ви можете просто додати наступне у свій pom.xml у випадку програм на основі maven:
Репозиторій і залежності
<repository>
<id>GroupDocsJavaAPI</id>
<name>GroupDocs Java API</name>
<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-comparison</artifactId>
<version>20.4</version>
</dependency>
Порівняйте файли Word і покажіть відмінності за допомогою Java
Наведені нижче кроки покажуть вам, як порівняти будь-які два документи Word у кількох рядках коду Java. У результаті ви отримаєте результуючий документ, у якому будуть висвітлені виявлені зміни.
- Ініціалізуйте об’єкт Comparer шляхом до вихідного документа.
- Додайте другий документ для порівняння за допомогою методу add.
- Викличте метод compare, щоб отримати результат порівняння. Метод порівняння приймає назву вихідного документа як параметр.
// Compare two Word files from the provided location on disk
Comparer comparer = new Comparer("source.docx");
try {
comparer.add("target.docx");
comparer.compare("comparison.docx");
}
finally {
comparer.dispose();
}
Тут я показую результуючий документ Word, згенерований наведеним вище кодом, і він містить виділені відмінності двох порівнюваних документів Word. Видалений вміст буде позначено ЧЕРВОНИМ кольором, доданий вміст відображатиметься синім кольором, однак зеленим буде позначено змінений вміст.
Порівняйте файли Word для тексту за допомогою потоку
Так само можна передати документ як потік до класу Comparer, щоб порівняти його з другим документом. Ось код Java, який дасть вам чітке уявлення:
// Compare two Word file using Stream
Comparer comparer = new Comparer(new FileInputStream("source.docx"));
try {
comparer.add(new FileInputStream("target.docx"));
comparer.compare(new FileOutputStream("result.docx"));
}
finally {
comparer.dispose();
}
Прийняти або відхилити порівняні зміни у файлі Word за допомогою Java
Після успішного виділення виявлених відмінностей ви можете прийняти або відхилити будь-яку зміну. Для прикладу я приймаю та відхиляю зміни по черзі. Ви можете відображати кожну зміну одну за одною за допомогою подібного коду та приймати рішення щодо прийняття/відхилення кожної зміни відповідно до ваших вимог.
// Accept or Reject the identified changes of Word document in Java
Comparer comparer = new Comparer(source);
try {
comparer.add(target);
comparer.compare();
ChangeInfo[] changes = comparer.getChanges();
System.out.println("changes.length: " + changes.length + ".");
// Accept or Reject the changes
for (int n = 0; n < changes.length; n++) {
if (n % 2 == 0) {
changes[n].setComparisonAction(ComparisonAction.ACCEPT);
}
else {
changes[n].setComparisonAction(ComparisonAction.REJECT);
}
}
// Apply your decisions to get the resultant document.
comparer.applyChanges(outputFileName, new SaveOptions(), new ApplyChangeOptions(changes));
}
finally {
comparer.dispose();
}
Порівняйте текстові файли та покажіть відмінності за допомогою Java
Використовуючи клас Comparer, ми також можемо порівняти будь-який текстовий файл. Нижче наведено аналогічний код для порівняння двох текстових файлів у Java. Кроки такі ж, як і для порівняння двох інших документів:
- Почніть з передачі текстового файлу в клас Comparer.
- Додайте другий файл за допомогою методу add.
- Викличте метод compare.
// Compare two text files to identify and highlight changes.
Comparer comparer = new Comparer("source.txt");
try {
comparer.add("target.txt");
comparer.compare("comparison.txt");
}
finally {
comparer.dispose();
}
Ось вихідний документ, який показує результат порівняння двох текстових файлів за допомогою наведеного вище коду.
Порівняйте файли PDF на різницю в тексті за допомогою Java
Ми можемо порівняти PDF-файли, використовуючи той самий код вище та просто змінивши розширення файлу на “.pdf”. До речі, наведений нижче код порівнює два pdf-файли та показує відмінності в Java.
// Compare two PDF file using Stream
Comparer comparer = new Comparer(new FileInputStream("source.pdf"));
comparer.add(new FileInputStream("target.pdf"));
comparer.compare(new FileOutputStream("result.pdf"));
Нижче наведено результат порівняння PDF-файлів.
Дивись також
Багато інших прикладів із відкритим кодом є загальнодоступними на GitHub Repository. Ви можете завантажити та швидко запустити приклади за допомогою посібника початок роботи. Якщо у вас виникли запитання, перегляньте документацію або будь-коли зв’яжіться з нами на форумі.