مقایسه اسناد word در جاوا

مقایسه اسناد MS Word برای دانستن تفاوت بین دو نسخه از یک سند انجام می شود. MS Word یک گزینه داخلی برای مقایسه محتوای دو سند ارائه می دهد. با این حال، با افزایش تعداد اسناد، انجام مقایسه اسناد به صورت دستی دشوار می شود. به منظور خودکار کردن این فرآیند، این مقاله نحوه مقایسه دو سند MS Word (DOC/DOCX) با استفاده از جاوا را پوشش می‌دهد.

Java API برای مقایسه اسناد MS Word

Aspose.Words for Java یک API دستکاری اسناد قدرتمند است که به شما امکان می دهد اسناد MS Word را ایجاد، بخوانید، تغییر دهید و تبدیل کنید. علاوه بر این، به شما امکان می دهد دو سند Word را با در نظر گرفتن یا نادیده گرفتن قالب بندی محتوا مقایسه کنید. می توانید API را دانلود یا با استفاده از تنظیمات 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>

مقایسه اسناد MS Word با استفاده از جاوا

مراحل زیر برای انجام یک مقایسه ساده سند Word با استفاده از Aspose.Words برای Java API است.

  • اسناد مورد مقایسه را با استفاده از کلاس Document بارگیری کنید.
  • برای مقایسه سند با سند ارسال شده به عنوان آرگومان، متد Document.compare(Document, String, Date) را فراخوانی کنید.

نمونه کد زیر نحوه مقایسه دو سند MS Word را با استفاده از جاوا نشان می دهد.

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 Word - نادیده گرفتن قالب بندی

ممکن است موردی وجود داشته باشد که اسناد دارای قالب بندی متفاوتی برای محتوا باشند. در چنین مواردی، ترجیح می‌دهید متن را فقط با نادیده گرفتن قالب‌بندی، سرصفحه‌ها، پاورقی‌ها، جداول، نظرات و غیره مقایسه کنید. مراحل زیر برای نادیده گرفتن قالب‌بندی سند هنگام مقایسه دو سند MS Word است.

نمونه کد زیر نحوه مقایسه اسناد MS Word را با نادیده گرفتن قالب بندی محتوا با استفاده از جاوا نشان می دهد.

// برای نمونه های کامل و فایل های داده، لطفاً به 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 در حال حاضر شامل تغییرات به عنوان تجدید نظر است.
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");

سند ورد هدف را برای تفاوت های مقایسه تنظیم کنید

Aspose.Words برای جاوا همچنین به شما این امکان را می دهد که سند منبع Word را در طول مقایسه مشخص کنید. برای این، می توانید از ویژگی CompareOptions.setTarget() استفاده کنید که به گزینه “نمایش تغییرات در” MS Word مربوط می شود. نمونه کد زیر نحوه تعیین سند هدف را در مقایسه نشان می دهد.

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

CompareOptions options = new CompareOptions();
options.setIgnoreFormatting(true);
// مربوط به مایکروسافت ورد "نمایش تغییرات در" در کادر محاوره ای "مقایسه اسناد".
options.setTarget(ComparisonTargetType.NEW);

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

Granularity را برای مقایسه فایل های Word در جاوا تنظیم کنید

همچنین می توانید هنگام مقایسه دو سند MS Word، جزئیات تغییرات را تنظیم کنید. این را می توان با استفاده از ویژگی CompareOptions.setGranularity() انجام داد. موارد زیر گزینه های احتمالی دانه بندی هستند.

نمونه کد زیر نحوه تنظیم جزئیات را هنگام مقایسه اسناد MS Word با استفاده از جاوا نشان می دهد.

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);

نتیجه

در این مقاله نحوه مقایسه دو سند MS Word در سناریوهای مختلف با استفاده از جاوا را مشاهده کرده اید. می‌توانید با استفاده از مستندات درباره Aspose.Words برای جاوا بیشتر کاوش کنید.

مجانی امتحان کنید

Aspose یک مجوز موقت را برای شما ارائه می دهد تا API های خود را به صورت رایگان امتحان کنید. می‌توانید Aspose.Words را برای جاوا ارزیابی کنید.

همچنین ببینید

تبدیل DOC/DOCX به JPG در C#.NETتبدیل DOC/DOCX به JPG در جاواتبدیل DOC/DOCX به PNG در C#.NET
تبدیل DOC/DOCX به PNG در جاواتبدیل DOCX به HTML در سی شارپتبدیل DOCX به TXT در پایتون
ادغام اسناد MS Word با استفاده از جاواCreate Rich Word Documents in JavaMS Word DOC/DOCX به PDF در جاوا
PNG به Word در C#.NETJPG به Word در C#.NETتصویر به ورد در سی شارپ
ورد به HTML در سی شارپWord DOCX به Markdown در جاواExtract Images from Word DOC in Java
Word DOC به Markdown در جاواWord DOC DOCX به Markdown در سی شارپExtract Text from Word Documents in Java
ادغام اسناد MS Word با استفاده از C#.NETWord DOC به PNG، JPEG، BMP، GIF، یا TIFF در C#Word DOC به PNG، JPEG، BMP، GIF، یا TIFF در جاوا