مقایسه دو یا چند سند ورد با استفاده از C#

مقایسه دو یا چند سند ورد با استفاده از C#

شما به راحتی می‌توانید دو یا چند سند Word را با هم مقایسه کنید یا نسخه‌های مختلف یک فایل Word را از نظر تفاوت‌ها و شباهت‌ها به صورت برنامه‌نویسی در برنامه‌های .NET خود مقایسه کنید. در این مقاله، شما یاد خواهید گرفت که چگونه دو یا چند سند Word را مقایسه کرده و تفاوت‌ها را با استفاده از C# هایلایت کنید.

مباحث زیر در این مقاله مورد بحث/پوشش قرار گرفته‌اند:

C# API برای مقایسه فایل‌های DOCX

برای مقایسه دو یا چند DOCX فایل، من از GroupDocs.Comparison for .NET API استفاده خواهم کرد. این ابزار دو یا چند سند را مقایسه می‌کند و تغییرات موجود در محتوای اسناد از نظر کلمات، پاراگراف‌ها و کاراکترها را شناسایی می‌کند. در نتیجه، یک سند مقایسه تولید می‌کند که تفاوت‌ها را برجسته کرده و خلاصه‌ای از تفاوت‌ها را لیست می‌کند. همچنین به شما این امکان را می‌دهد که تغییرات و تفاوت‌ها در سبک متن را بین قالب‌های مشابه سند شناسایی کنید. این API از مقایسه تمام فرمت‌های اسناد استاندارد صنعتی مانند PDF، HTML، Word، Excel، PowerPoint، ایمیل‌های Outlook، نمودارهای Visio، OpenDocument، AutoCAD و تصاویر پشتیبانی می‌کند.

شما می‌توانید یا download DLL API را دانلود کنید یا آن را با استفاده از NuGet نصب کنید.

Install-Package GroupDocs.Comparison

مقایسه دو یا چند سند ورد با استفاده از C#

شما می‌توانید به‌صورت برنامه‌نویسی دو یا چند سند Word را با دنبال کردن مراحل ساده زیر مقایسه کنید:

  1. یک نمونه از کلاس Comparer را با مسیر فایل DOCX منبع ایجاد کنید
  2. متد Add() را با فایل DOCX هدف فراخوانی کنید تا به مقایسه اضافه شود.
  3. تکرار مرحله بالا برای افزودن فایل‌های بیشتر در مقایسه
  4. Call the Compare() method with the output file path

کد نمونه زیر نشان می‌دهد که چگونه می‌توان دو یا چند سند Word را مقایسه کرد و تفاوت‌ها را با استفاده از C# هایلایت کرد.

// initialize comparer
Comparer comparer = new Comparer("C:\\Files\\source.docx");

// فایل هدف را برای مقایسه اضافه کنید
comparer.Add("C:\\Files\\target.docx");

// مقایسه و ذخیره تفاوت‌ها
comparer.Compare("C:\\Files\\result.docx");
فایل‌های DOCX منبع و هدف

فایل های DOCX منبع و هدف

مقایسه دو یا چند سند ورد با استفاده از C#

مقایسه دو یا چند سند ورد با استفاده از C#

مدرک حاصل همچنین شامل یک صفحه خلاصه در انتهای مدرک است که خلاصه‌ای از تمام تغییرات موجود در مقایسه را نمایش می‌دهد.

کلاس Comparer کلاس اصلی است که به شما اجازه می‌دهد تا فرآیند مقایسه را کنترل و اجرا کنید. این کلاس چندین متد برای مقایسه دو یا چند سند فراهم می‌کند. متد Add() این کلاس، یک فایل را به فرآیند مقایسه اضافه می‌کند. شما می‌توانید به راحتی چندین فایل را با استفاده از متد Add() به مقایسه اضافه کنید همانطور که در زیر نشان داده شده است:

comparer.Add("target1.docx");
comparer.Add("target2.docx");
comparer.Add("target3.docx");

متد Compare() از کلاس Comparer اسناد منبع و هدف را مقایسه می‌کند. این متد تفاوت‌ها را برجسته کرده و نتایج را در مسیر فایل ارائه شده به عنوان پارامتر ورودی ذخیره می‌کند.

مقایسه اسناد Word با استفاده از Stream در C#

شما می‌توانید دو یا چند سند Word را با استفاده از FileStream با دنبال کردن مراحل زیر مقایسه کنید:

  1. فایل منبع را در یک شیء Stream بخوانید
  2. فایل هدف را در یک شیء Stream دیگر بخوانید
  3. یک نمونه از کلاس Comparer را با شیء Stream منبع ایجاد کنید.
  4. متد Add() را با شیء Stream هدف فراخوانی کنید تا به مقایسه اضافه شود.
  5. Call the Compare() method with the output file path

کد نمونه زیر نشان می‌دهد که چگونه می‌توان مستندات ورد را با استفاده از FileStream در C# مقایسه کرد.

// read source and target files
using (Stream sourceStream = File.OpenRead("C:\\Files\\source.docx"))
using (Stream targetStream = File.OpenRead("C:\\Files\\target.docx"))
{
    // initialize comparer
    using (Comparer comparer = new Comparer(sourceStream))
    {
        // add target filestream to compare
        comparer.Add(targetStream);

        // مقایسه و ذخیره تفاوت‌ها
        comparer.Compare(File.Create("C:\\Files\\result.docx"));
    }
}

متن تغییرات را با استفاده از C# بگیرید

شما می‌توانید متن تغییرات یافت‌شده در مقایسه اسناد ورد را به‌طور برنامه‌نویسی با پیروی از مراحل ساده زیر دریافت کنید:

  1. یک نمونه از کلاس Comparer را با مسیر فایل DOCX منبع ایجاد کنید
  2. متد Add() را با فایل DOCX هدف فراخوانی کنید تا به مقایسه اضافه شود.
  3. تکرار مرحله بالا برای افزودن فایل‌های بیشتر در مقایسه
  4. Call the Compare() method
  5. Call the GetChanges() method to get the details of changes
  6. Show the changes

کد نمونه زیر نشان می‌دهد که چگونه می‌توان متن تغییرات را با استفاده از C# دریافت کرد.

// initialize comparer
Comparer comparer = new Comparer("C:\\Files\\source.docx");

// add target file to compare
comparer.Add("C:\\Files\\target.docx");

// compare
comparer.Compare();

// get changes
ChangeInfo[] changes = comparer.GetChanges();

Console.WriteLine("Count of changes: " + changes.Length);

// show changes
foreach (ChangeInfo change in changes)
{
    Console.WriteLine("Change Type: " + change.Type + ", Text: " + change.Text);
}
Count of changes: 10
Change Type: Inserted, Text:
Change Type: Inserted, Text:  Company ‼ HYPERLINK "http://www.aspose.com/" ¶Aspose Pty Ltd§ Division GroupDocs
Change Type: Inserted, Text:
Change Type: Inserted, Text: Cool
Change Type: Deleted, Text: test
Change Type: Inserted, Text:
Change Type: Inserted, Text: signatures
Change Type: Inserted, Text:
Change Type: Deleted, Text: Customers
Change Type: Deleted, Text: GroupDocs is used by companies of all sizes across the globe, from large multinational firms to small freelance businesses. They come to us because they have a need for a simple, one-stop-shop, document management solution.

شما می‌توانید با فراخوانی GetChanges() متد کلاس Comparer لیستی از تغییرات بین فایل‌های منبع و هدف را دریافت کنید. این متد یک لیست از ChangeInfo اشیاء را برمی‌گرداند. کلاس ChangeInfo نمایانگر اطلاعات درباره تغییرات است و خواص مختلفی برای دریافت جزئیات تغییرات مانند Text، Type و غیره فراهم می‌آورد.

مقایسه خصوصیات مستندات با استفاده از C#

با دنبال کردن مراحل زیر می‌توانید ویژگی‌های داخلی، سفارشی و ویژگی‌های متغیر اسناد Word را به صورت برنامه‌نویسی مقایسه کنید:

  1. یک نمونه از کلاس Comparer را با مسیر فایل DOCX منبع ایجاد کنید
  2. متد Add() را با فایل DOCX هدف فراخوانی کنید تا به مقایسه اضافه شود.
  3. تکرار مرحله بالا برای افزودن فایل‌های بیشتر در مقایسه
  4. یک نمونه از CompareOptions ایجاد کنید.
  5. Set the CompareVariableProperty to true
  6. مقدار CompareDocumentProperty را به true تنظیم کنید
  7. Call the Compare() method with the output file path and CompareOptions

نمونه کد زیر نشان می‌دهد که چگونه ویژگی‌های اسناد را با استفاده از C# مقایسه کنید.

// مقایسه‌گر را راه‌اندازی کنید
Comparer comparer = new Comparer("C:\\Files\\source.docx");

// فایل هدف را برای مقایسه اضافه کنید
comparer.Add("C:\\Files\\target.docx");

// define compare options
CompareOptions options = new CompareOptions();
options.CompareVariableProperty = true; // activate the comparison of variable properties
options.CompareDocumentProperty = true; // activate the comparison of built and custom properties

// compare
comparer.Compare("C:\\Files\\result.docx", options);
مقایسه خواص اسناد با استفاده از C#

مقایسه ویژگی‌های اسناد با استفاده از C#

شما می‌توانید فرآیند مقایسه خود را با اعمال گزینه‌های مقایسه مختلف بهبود بخشید. برای این منظور، کلاس CompareOptions به شما این امکان را می‌دهد که گزینه‌های مقایسه مختلفی را برای دستیابی به نتایج خاص تنظیم کنید. CompareDocumentProperty این کلاس به شما امکان می‌دهد تا مقایسه ویژگی‌های داخلی و سفارشی در فرمت Word را فعال کنید. CompareVariableProperty به شما امکان می‌دهد تا مقایسه ویژگی‌های متغیرها را در فرمت Word فعال کنید.

مقایسه اسناد ورد محافظت شده توسط کلمه عبور با استفاده از C#

شما می‌توانید به‌طور برنامه‌نویسی دو یا چند سند Word محافظت‌شده با رمز عبور را با پیروی از مراحل زیر مقایسه کنید:

  1. یک نمونه از کلاس LoadOptions ایجاد کنید
  2. Provide the password for the source file
  3. یک نمونه از کلاس Comparer را با مسیر فایل DOCX منبع و LoadOptions ایجاد کنید.
  4. Call the Add() method with the target DOCX file path and LoadOptions instance with password
  5. تکرار مرحله بالا برای افزودن فایل های بیشتر در مقایسه
  6. Call the Compare() method with the output file path

کد نمونه زیر نشان می‌دهد که چگونه می‌توان اسناد Word محافظت‌شده با رمز عبور را با استفاده از C# مقایسه کرد.

// define load options for source file
LoadOptions sourceLoadOptions = new LoadOptions() { Password = "1234" };

// initialize comparer
Comparer comparer = new Comparer("C:\\Files\\source.docx", sourceLoadOptions);

// add target file to compare
comparer.Add("C:\\Files\\target.docx", new LoadOptions() { Password = "5678" });

// compare
comparer.Compare("C:\\Files\\result.docx");

کلاس LoadOptions به شما امکان می‌دهد گزینه‌های اضافی را در حین بارگذاری یک سند مشخص کنید. این کلاس ویژگی‌های زیر را برای مشخص کردن فراهم می‌کند:

  • FontDirectories — لیستی از دایرکتوری‌های فونت برای بارگذاری.
  • LoadText — اشاره دارد که رشته های ارسال شده متن مقایسه هستند، نه مسیرهای فایل (فقط برای مقایسه متن).
  • رمز عبور — رمز عبور سند.

مقایسه نشانک‌ها در اسناد ورد با استفاده از C#

شما می‌توانید با دنبال کردن مراحل زیر، بوک‌مارک‌های موجود در اسناد Word را به‌صورت برنامه‌نویسی مقایسه کنید:

  1. یک نمونه از کلاس Comparer را با مسیر فایل DOCX منبع ایجاد کنید
  2. متد Add() را با فایل DOCX هدف فراخوانی کنید تا به مقایسه اضافه شود.
  3. تکرار مرحله بالا برای افزودن فایل‌های بیشتر در مقایسه
  4. یک نمونه از CompareOptions ایجاد کنید.
  5. مقدار CompareBookmarks را به true تنظیم کنید.
  6. متد Compare() را با مسیر فایل خروجی و CompareOptions فراخوانی کنید

نمونه کد زیر نشان می‌دهد که چگونه می‌توان نشانک‌ها را در اسناد ورد با استفاده از C# مقایسه کرد.

// مقایسه کننده را راه اندازی کنید
Comparer comparer = new Comparer("C:\\Files\\source.docx");

// فایل هدف را برای مقایسه اضافه کنید
comparer.Add("C:\\Files\\target.docx");

// تعریف گزینه‌های مقایسه
CompareOptions compareOptions = new CompareOptions();
compareOptions.CompareBookmarks = true; // compare bookmarks

// compare
comparer.Compare("C:\\Files\\result.docx", compareOptions);
مقایسه نشانه‌گذاری‌ها در اسناد ورد با استفاده از C#

مقایسه نشانه گذاری ها در اسناد ورد با استفاده از C#

خاصیت CompareBookmarks به شما این امکان را می‌دهد که بوکمارک‌های موجود در اسناد منبع و هدف را مقایسه کنید.

یک مجوز رایگان بگیرید

شما می‌توانید بدون محدودیت‌های ارزیابی، API را با درخواست a free temporary license امتحان کنید.

نتیجه گیری

در این مقاله، شما یاد گرفته‌اید که چگونه دو یا چند سند ورد را مقایسه کرده و تفاوت‌ها را با استفاده از C# برجسته کنید. همچنین یاد گرفته‌اید که چگونه لیست تغییرات برجسته شده را دریافت کنید. علاوه بر این، یاد گرفته‌اید که چگونه نشانه‌گذاری‌ها را در اسناد ورد به‌صورت برنامه‌نویسی مقایسه کنید. همچنین، یاد گرفته‌اید که چگونه اسناد ورد محافظت‌شده با رمز عبور را با استفاده از C# مقایسه کنید. می‌توانید اطلاعات بیشتری درباره GroupDocs.Comparison برای API .NET از طریق documentation یاد بگیرید. در صورت وجود هر گونه ابهام، لطفاً در ارتباط با ما در forum احساس راحتی کنید.

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