so sánh các tài liệu từ trong Java

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 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.

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.

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.

Xem thêm

Chuyển đổi DOC/DOCX sang JPG trong C# .NETChuyển đổi DOC/DOCX sang JPG trong JavaChuyển đổi DOC/DOCX sang PNG trong C# .NET
Chuyển đổi DOC/DOCX sang PNG trong JavaChuyển đổi DOCX sang HTML trong C#Chuyển đổi DOCX sang TXT bằng Python
Hợp nhất tài liệu MS Word bằng JavaTạo tài liệu Rich Word bằng JavaMS Word DOC/DOCX sang PDF trong Java
PNG sang Word trong C# .NETJPG sang Word trong C# .NETHình ảnh thành Word trong C#
Word to HTML in C#Từ DOCX sang Markdown trong JavaTrích xuất hình ảnh từ Word DOC bằng Java
Từ DOC sang Markdown trong JavaTừ DOC DOCX sang Markdown trong C#Trích xuất văn bản từ tài liệu Word trong Java
Hợp nhất tài liệu MS Word bằng C# .NETTừ DOC sang PNG, JPEG, BMP, GIF hoặc TIFF trong C#Chuyển Word DOC sang PNG, JPEG, BMP, GIF hoặc TIFF trong Java