Việc so sánh các tài liệu MS Word được thực hiện để biết về sự khác biệt giữa hai phiên bản của một tài liệu. MS Word cung cấp tùy chọn tích hợp để so sánh nội dung của hai tài liệu. Tuy nhiên, với số lượng tài liệu tăng lên, việc thực hiện so sánh tài liệu theo cách thủ công trở nên khó khăn. Để tự động hóa quy trình này, bài viết này trình bày cách so sánh hai tài liệu MS Word (DOC/DOCX) bằng Java.
- API so sánh tài liệu MS Word cho Java
- So sánh tài liệu MS Word bằng Java
- Bỏ qua định dạng trong so sánh tài liệu MS Word
- Đặt tài liệu mục tiêu cho sự khác biệt so sánh
- Đặt độ chi tiết để so sánh tài liệu MS Word
API Java để so sánh tài liệu MS Word
Aspose.Words for Java là API thao tác tài liệu mạnh mẽ cho phép bạn tạo, đọc, sửa đổi và chuyển đổi tài liệu MS Word. Ngoài ra, nó còn cho phép bạn so sánh hai tài liệu Word cùng với việc xem xét hoặc bỏ qua định dạng của nội dung. Bạn có thể tải xuống API hoặc cài đặt API bằng cấu hình 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>
So sánh tài liệu MS Word bằng Java
Sau đây là các bước để thực hiện so sánh tài liệu Word đơn giản bằng Aspose.Words for Java API.
- Tải tài liệu cần so sánh bằng lớp Document.
- Gọi phương thức Document.compare(Document, String, Date) để so sánh tài liệu với tài liệu được truyền dưới dạng đối số.
Mẫu mã sau đây cho biết cách so sánh hai tài liệu MS Word bằng 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
So sánh tài liệu Java Word - Bỏ qua định dạng
Có thể xảy ra trường hợp tài liệu có định dạng khác được áp dụng cho nội dung. Trong những trường hợp như vậy, bạn chỉ muốn so sánh văn bản trong khi bỏ qua định dạng, đầu trang/cuối trang, chú thích cuối trang, bảng, nhận xét, v.v. Sau đây là các bước để bỏ qua định dạng của tài liệu khi so sánh hai tài liệu MS Word.
- Tải tài liệu cần so sánh bằng lớp Document.
- Tạo một đối tượng của lớp CompareOptions.
- Đặt So sánhOptions.setIgnoreFormatting(true).
- So sánh các tài liệu bằng phương pháp Document.compare(Document, String, Date, CompareOptions).
Mẫu mã sau đây cho thấy cách so sánh các tài liệu MS Word bỏ qua định dạng của nội dung bằng cách sử dụng Java.
// Để biết các ví dụ và tệp dữ liệu đầy đủ, vui lòng truy cập 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 hiện chứa các thay đổi dưới dạng bản sửa đổi.
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");
Đặt tài liệu Word mục tiêu để so sánh sự khác biệt
Aspose.Words for Java cũng cho phép bạn chỉ định tài liệu Word nguồn trong quá trình so sánh. Đối với điều này, bạn có thể sử dụng thuộc tính CompareOptions.setTarget() liên quan đến tùy chọn “Hiển thị các thay đổi trong” của MS Word. Mẫu mã sau đây cho biết cách chỉ định tài liệu đích trong so sánh.
Document docA = new Document(dataDir + "TestFile.doc");
Document docB = new Document(dataDir + "TestFile - Copy.doc");
CompareOptions options = new CompareOptions();
options.setIgnoreFormatting(true);
// Liên quan đến tùy chọn "Hiển thị các thay đổi trong" của Microsoft Word trong hộp thoại "So sánh tài liệu".
options.setTarget(ComparisonTargetType.NEW);
docA.compare(docB, "user", new Date(), options);
Đặt mức độ chi tiết để so sánh các tệp Word trong Java
Bạn cũng có thể đặt mức độ chi tiết của các thay đổi khi so sánh hai tài liệu MS Word. Điều này có thể được thực hiện bằng cách sử dụng thuộc tính CompareOptions.setGranularity(). Sau đây là các tùy chọn chi tiết có thể.
Mẫu mã sau đây cho biết cách đặt mức độ chi tiết khi so sánh các tài liệu MS Word bằng 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);
Sự kết luận
Trong bài viết này, bạn đã biết cách so sánh hai tài liệu MS Word trong các tình huống khác nhau bằng cách sử dụng Java. Bạn có thể khám phá thêm về Aspose.Words for Java bằng cách sử dụng tài liệu.
Thử miễn phí
Aspose cung cấp giấy phép tạm thời để bạn dùng thử miễn phí các API của nó. Bạn có thể lấy của bạn để đánh giá Aspose.Words for Java.