מסמכי עיבוד תמלילים הם הדרך הנפוצה ביותר לנסח חוזים, הסכמים, מסמכים ומסמכים רשמיים רבים אחרים. אם אתה צריך להשוות ולמזג שני מסמכי Word, בדיוק כמו אפשרות השינויים ב-Microsoft Word, אנחנו יכולים לעשות זאת באופן תוכנתי בתוך יישומי ה-NET שלנו. במאמר זה, נדון כיצד להשוות שני מסמכי Word ולהדגיש את ההבדלים שזוהו באמצעות C#. בנוסף, נבחן כיצד להשוות מסמכים מוגני סיסמה, לקבל ולדחות שינויים ולהשוות יותר משני מסמכים עם דוגמאות C#.

השווה בין מסמכי Word כדי למצוא הבדלים באמצעות .NET API

הנושאים הבאים נדונים כאן:

.NET API להשוואת מסמכי Word

GroupDocs.Comparison מספק .NET API המאפשר השוואה ולאחר מכן מיזוג מסמכים שונים בפורמטים מרובים של קבצים בתוך יישום NET. אני אשתמש ב-.NET API שלו כלומר GroupDocs.Comparison for .NET כדי להשוות מסמכי Word.

אתה יכול להוריד את קובצי ה-DLL או את תוכנית ההתקנה של MSI מ סעיף ההורדות או להתקין את ה-API באפליקציית NET שלך דרך NuGet.

PM> Install-Package GroupDocs.Comparison

השווה בין מסמכי Word באמצעות C#

אם יש לך שתי גרסאות של מסמך, תוכל להשוות בין המסמכים כדי למצוא את ההבדלים ביניהם (הוספות, מחיקות) וליצור מסמך חדש המציג את כל השינויים. להלן השלבים להשוואה בין שני מסמכי Word ולהדגיש את ההבדלים.

  • טען את מסמך Word הראשון באמצעות המחלקה Comparer.
  • הוסף את הקובץ השני ל-Comparer באמצעות שיטת Add().
  • השווה וקבל את סיכום השינויים על ידי קריאה לשיטת Compare().

קוד C# הבא מראה כיצד להשוות מסמכי Word ולקבל את השינויים במסמך שנוצר.

/*
 * השווה שני מסמכי Word והדגש שינויים באמצעות C#
 */
using (Comparer comparer = new Comparer("path/document.docx"))
{
    comparer.Add("path/document-ver2.docx");
    comparer.Compare("path/compared-result.docx");
}

קבל או דחה שינויים מזוהים במסמכי Word באמצעות C#

בדומה לאפשרות מעקב אחר שינויים של MS Word, אתה יכול לקבל או לדחות כל שינוי שזוהה. להלן השלבים להשוואה ולאחר מכן לקבל או לדחות את השינויים שזוהו במסמכי Word.

  • טען את מסמך המקור והוסף את מסמכי היעד של Word באמצעות המחלקה Comparer.
  • בצע את ההשוואה של מסמכים טעונים באמצעות השיטה Compare().
  • קבל את השינויים שזוהו באמצעות שיטת GetChanges().
  • עכשיו אתה יכול לעבור את השינויים ולהגדיר ComparisonAction של כל שינוי.
    • עבור כל שינוי אתה יכול לבחור קבל, או דחה.
  • בסיום השינויים, קרא למתודה ApplyChanges() כדי לקבל את המסמך שנוצר עם השינויים שהוחלו.

קוד המקור C# הבא משווה בין שני מסמכי Word ולאחר מכן מקבל שינוי מזוהה ולאחר מכן דוחה עוד אחד.

/*
 * קבל ודחה שינויים שזוהו על ידי השוואת מסמכי Word באמצעות C#
 */
using (Comparer comparer = new Comparer("path/document-1.docx"))
{
    comparer.Add("path/document-2.docx");
    comparer.Compare();
    ChangeInfo[] changes = comparer.GetChanges();
    
    // דחיית השינוי המזוהה הראשון והוא לא יתווסף למסמך התוצאה
    changes[0].ComparisonAction = ComparisonAction.Reject;
    comparer.ApplyChanges("path/rejected-change-result.docx", new ApplyChangeOptions { Changes = changes, SaveOriginalState = true });

    changes = comparer.GetChanges();
    changes[0].ComparisonAction = ComparisonAction.Accept;
    comparer.ApplyChanges("path/accepted-change-result.docx", new ApplyChangeOptions { Changes = changes });
}

השווה יותר משני מסמכים באמצעות C#

באופן דומה, ניתן להשוות יותר משני מסמכים במכה אחת. להלן השלבים להשוואת מסמכי Word מרובים עבור הבדלים והדגשת השינויים שזוהו.

  • טען את מסמך ה-Word הראשון באמצעות המחלקה Comparer.
  • המשיכו להוסיף את המסמכים האחרים ל-Comparer באמצעות השיטה Add().
  • קרא למתודה Compare() כדי לקבל את השינויים וסיכום השינויים.

קוד C# הבא מראה כיצד להשוות יותר משני מסמכי Word ולקבל את השינויים במסמך שנוצר.

/*
 * השווה בין מסמכי Word מרובים באמצעות C#
 */
using (Comparer comparer = new Comparer("path/document-1.docx"))
{
    comparer.Add("path/document-2.docx");
    comparer.Add("path/document-3.docx");
    comparer.Add("path/document-4.docx");

    comparer.Compare("path/compare-result.docx");
}

השווה מסמכי Word מוגנים באמצעות סיסמה באמצעות C#

אם המסמכים שלך מוגנים בסיסמה, פשוט ספק את הסיסמה שלהם בזמן טעינת המסמכים. השלבים הבאים מראים כיצד אנו יכולים להשוות את התוכן של מסמכים המוגנים באמצעות סיסמה באמצעות C#.

  • הכן את אפשרויות הטעינה עבור מסמכי מקור ויעד על ידי מתן הסיסמה.
  • טען את מסמך המקור באמצעות המחלקה Comparer.
  • הוסף את מסמך היעד ל-Comparer באמצעות אפשרויות הטעינה המוכנות.
  • קבל את סיכום ההבדלים על ידי קריאה לשיטת Compare().

הדוגמה הבאה של קוד C# משווה בין שני קובצי Word המוגנים בסיסמה ויוצרת את המסמך שנוצר שמדגיש את ההבדלים.

/*
 * השווה מסמכי Word מוגנים באמצעות סיסמה באמצעות C#
 */
using (Comparer comparer = new Comparer("path/protected-document-1.docx", new LoadOptions(){ Password = "SourceFilePassword" }))
{
    comparer.Add("path/protected-document-2.docx", new LoadOptions() { Password = "TargetFilePassword" });
    comparer.Compare("path/compared-protected-docs-result.docx");
}

קבל רישיון API בחינם

אתה יכול לקבל רישיון זמני בחינם לשימוש ב-API ללא מגבלות ההערכה.

סיכום

לסיום, למדנו להשוות בין שני מסמכי Word או יותר באמצעות C#. יתרה מכך, לאחר שהדגשנו את ההבדלים, למדנו לקבל באופן תוכניתי את השינויים שזוהו. בסופו של דבר, דנו גם כיצד נוכל להשוות בין מסמכי Word המוגנים באמצעות סיסמה בתוך יישומי NET.

ישנן התאמות אישיות רבות אחרות לשליטה בתוצאות ההשוואה, כמו הגדרת רגישות ההשוואה, הצגת דף הסיכום בלבד, התעלמות מפערים ועוד ועוד. למידע נוסף על GroupDocs.Comparison עבור .NET. בקר בתיעוד שלה כדי להתחיל לבנות יישומי השוואת מסמכים משלך עבור פורמטים נתמכים של מסמכים שונים. לשאלות, צור איתנו קשר דרך הפורום.

ראה גם