מבוא

אם אתה עובד עם חוזים, מדיניות פנימית, מפרטים טכניים או חומרים שיווקיים, הדפוס זהה: אתה מצטבר במהירות מספר גרסאות של .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
  • קובץ license (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 מודיע למנוע לייצר סימון תיקון (track‑changes) בפורמט 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);
}

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

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

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

  • ComparisonDisplayMode.Highlight מציג את ההבדלים כהדגשות צבעוניות בתוך הטקסט — אדום למחיקות, ירוק להוספות, כחול לשינויי עיצוב (צבעים ברירת מחדל שניתן להתאים דרך WordCompareOptions / CompareOptions וה‑StyleSettings המתאימים).
  • המסמך מוכן לקריאה או הדפסה ללא שלבים נוספים.
  • לא מתווסף קובץ מטא‑מידע של track‑changes.

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


חקר 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.docn");

    var changes = comparer.GetChanges(); // מחזירה 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 מאפשרת לכוונן את הפלט — מגילוי סגנון והקצאת מחבר ועד להשוואת סימניות ותכונות המסמך.

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

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