مقایسه اسناد MS Word برای دانستن تفاوت بین دو نسخه از یک سند انجام می شود. MS Word یک گزینه داخلی برای مقایسه محتوای دو سند ارائه می دهد. با این حال، با افزایش تعداد اسناد، انجام مقایسه اسناد به صورت دستی دشوار می شود. به منظور خودکار کردن این فرآیند، این مقاله نحوه مقایسه دو سند MS Word (DOC/DOCX) با استفاده از جاوا را پوشش میدهد.
- MS Word Document Comparison API برای جاوا
- مقایسه اسناد MS Word با استفاده از جاوا
- نادیده گرفتن قالب بندی در مقایسه اسناد MS Word
- تنظیم سند هدف برای تفاوت های مقایسه
- Granularity را برای مقایسه اسناد MS Word تنظیم کنید
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 است.
- اسناد مورد مقایسه را با استفاده از کلاس Document بارگیری کنید.
- یک شی از کلاس CompareOptions ایجاد کنید.
- CompareOptions.setIgnoreFormatting(true) را تنظیم کنید.
- اسناد را با استفاده از روش Document.compare(Document, String, Date, CompareOptions) مقایسه کنید.
نمونه کد زیر نحوه مقایسه اسناد 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 را برای جاوا ارزیابی کنید.