הקדמה

בין אם אתה עובד עם חוזים, מדיניות פנימית, מפרטים טכניים או טקסטים שיווקיים, התבנית היא זהה: אתה מצטבר במהירות כמה גרסאות של .docx ובשלב מסוים צריך לראות מה בדיוק השתנה ביניהן. תיבת הדו‑שיח המובנית של Word Compare טובה לבדיקה ידנית מזדמנת, אך היא אינה מסייעת כשלהשוואה הופכת לחלק מתהליך קבוע או צריכה להיות מאוטומטת בצד השרת.

GroupDocs.Comparison for .NET מאפשר לך לבצע את ההשוואה מתוך קוד ולייצר את התוצאה בפורמט שהסוקרים שלך מעדיפים. הספרייה תומכת בשניים מצבי פלט להשוואה עבור מסמכי Word:

  1. מצב תיקון — ההבדלים נרשמים כתוויות תיקון (track‑changes) של Word. הסוקרים פותחים את הקובץ, רואים את הפקודות המוכרות Review → Accept / Reject, ועוברים על השינויים אחד אחרי השני.
  2. מצב הדגשה — טקסט שהוכנס, נמחק או השתנה מוצג עם הדגשות צבעוניות ישירות בגוף המסמך, כך שההבדלים נראים במבט אחד בעת קריאת הטקסט הסופי.

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

דרישות מקדימות

  • .NET 6.0 או גרסה מאוחרת יותר.
  • GroupDocs.Comparison for .NET — התקנה דרך NuGet:
dotnet add package GroupDocs.Comparison
  • קובץ רישיון (GroupDocs.Comparison.lic). ללא קובץ זה הספרייה פועלת במצב הערכה עם סימוני מים ומגבלות גודל. ניתן לבקש רישיון זמני לצורך בדיקה.
  • שני קבצי Word להשוואה — נקרא להם source.docx ו‑target.docx. תוכן לדוגמה:
source.docx target.docx

שיטה 1: השוואת מעקב‑תיקונים

מתי להשתמש: הסוקרים צריכים לאשר או לדחות כל שינוי בנפרד ב‑Microsoft Word בעזרת כלי Review → Accept / Reject המובנים — לדוגמה, במהלך משא ומתן חוזה או שלבי אישור מדיניות.

using GroupDocs.Comparison;
using GroupDocs.Comparison.Options;

using (var comparer = new Comparer("source.docx"))
{
    comparer.Add("target.docx");

    var options = new WordCompareOptions
    {
        DetectStyleChanges = true,
        DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions
    };

    comparer.Compare("result_revision.docx", options);
}

מסמך התוצאה במצב תיקון (מעקב שינוי):

תוצאות השוואה במצב תיקון (מעקב שינוי)

מה קורה מאחורי הקלעים:

  • ComparisonDisplayMode.Revisions מודיע למנוע לפלט תגיות מעקב‑שינויים של Word באופן מקורי.
  • DetectStyleChanges = true גורם להשוואה לאתר הבדלי עיצוב (מעוגל, גודל גופן, צבע) לצד עריכות טקסטואליות.
  • קובץ הפלט נפתח ב‑Microsoft Word עם לוח ה‑Review מוכן — כל הוספה, מחיקה, ושינוי עיצוב מופעים ברשימה וניתן לאשר או לדחות אותם.

מאחר שמצב תיקון אינו דורש רינדור מחדש של תוכן המסמך — הוא רק מוסיף מטא‑נתוני תיקון — הוא נוטה להיות המהיר משני המצבים.


שיטה 2: השוואת מצב‑הדגשה

מתי להשתמש: בעלי עניין רוצים מסמך נקי שמציג בבירור מה השתנה אך אינם מעוניינים לעבור על כל תיקון בנפרד. תרחיש נפוץ הוא מנהל הפותח את הגרסה האחרונה ב‑Word וסורק במהירות את ההוספות והמחיקות המודגשות כדי להבין את ההשפעה של העדכון.

using GroupDocs.Comparison;
using GroupDocs.Comparison.Options;

using (var comparer = new Comparer("source.docx"))
{
    comparer.Add("target.docx");

    var options = new WordCompareOptions
    {
        DetectStyleChanges = true,
        DisplayMode = WordCompareOptions.ComparisonDisplayMode.Highlight
    };

    comparer.Compare("result_highlighted.docx", options);
}

מסמך התוצאה במצב הדגשה:

תוצאות השוואה במצב הדגשה

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

חקירת WordCompareOptions

הדוגמאות שלמעלה משתמשות ב‑WordCompareOptions — מחלקה היורשת הגדרות משותפות מ‑CompareOptions ומוסיפה מאפיינים ספציפיים למסמכי Word. דרך סוג זה אתה שולט במצב הצגה (DisplayMode), האם לעקוב אחרי שינויי עיצוב (DetectStyleChanges), איזו שם מחבר מופיע על התיקונים (RevisionAuthorName), כיצד מטפלים בשבירות שורה, סימניות וכו'.

בנוסף, המחלקה הבסיסית CompareOptions חושפת סגנונות עבור פריטים שהוכנסו, נמחקו ושונו (InsertedItemStyle, DeletedItemStyle, ChangedItemStyle), כך שניתן לכוונן במדויק צבעים ועיצוב של ההדגשות לפי הצורך.

להלן דוגמה קטנה של הגדרת אפשרויות לבדיקה של טקסט בלבד במצב תיקון:

var options = new WordCompareOptions
{
    DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions,
    DetectStyleChanges = false,
    RevisionAuthorName = "QA Bot",
    CompareBookmarks = true
};

קבלת שינויים באופן תכנותי

בלי קשר למצב הפלט שתבחר (תיקונים או הדגשה), תמיד ניתן לקבל רשימה מובנית של ההבדלים שזוהו דרך ה‑API המשותף Comparer.GetChanges. שיטה זו פועלת עבור Word וכל הפורמטים הנתמכים האחרים.

using (var comparer = new Comparer("source.docx"))
{
    comparer.Add("target.docx");

    comparer.Compare("result_revision.docx");

    var changes = comparer.GetChanges(); // returns ChangeInfo[]
}

זה שימושי כאשר עליך לעבד את השינויים בתהליך העבודה שלך — לדוגמה, לבנות דוח HTML מותאם, להעביר את ההבדלים למערכת סקירה, או לאסוף סטטיסטיקות על עריכות. ראה את התיעוד הרשמי של ה‑API לפרטים נוספים: Comparer.GetChanges.

עבודה עם מסמכים מוגנים בסיסמה

אם המסמכים מוגנים עם סיסמא, ניתן עדיין לבצע השוואה: העברת הסיסמא מתבצעת דרך LoadOptions בעת יצירת ה‑Comparer. גישה זו פועלת באופן זהה עבור Word, PDF ופורמטים נתמכים נוספים.

using GroupDocs.Comparison;
using GroupDocs.Comparison.Options;

using (var comparer = new Comparer("source_protected.docx",
    new LoadOptions { Password = "secret" }))
{
    comparer.Add("target_protected.docx");

    var options = new WordCompareOptions
    {
        DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions
    };

    comparer.Compare("result_protected.docx", options);
}

קבל ניסיון חינם

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

שאלות נפוצות

ש: האם אני צריך Microsoft Word או Office מותקנים על השרת?
ת: לא. GroupDocs.Comparison היא ספרייה עצמאית של .NET; היא קוראת וכותבת קבצי DOCX באופן עצמאי.

ש: האם ניתן להשוות מסמכים בפורמטים אחרים חוץ מ‑Word?
ת: כן — הספרייה תומכת ב‑PDF, גיליונות Excel, מצגות, קבצי טקסט רגילים ועוד רבים. הרשימה המלאה נמצאת בתתיעוד.

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

ש: האם ניתן להתאים את צבעי ההדגשה?
ת: הצבעים המחדליים מתאימים לרוב המקרים. לשליטה מתקדמת בעיצוב, בדוק את המאפיין StyleSettings ב‑CompareOptions.

סיכום

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

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

משאבים נוספים