GroupDocs.Comparison for .NET היא ספריית C# המאפשרת לך להשוות מסמכים ולמצוא הבדלים. השווה ומיזוג של Microsoft Word, Excel, PowerPoint, OpenDocument, PDF, טקסט, HTML ומסמכים רבים אחרים, אחזר רשימה של שינויים בין מסמכי מקור ומסמכי יעד, החל או דחה שינויים ושמור תוצאות עם GroupDocs .API להשוואה. בנוסף לכך, GroupDocs.Comparison יכולה לזהות שינויי סגנון ועיצוב - כמו מודגש, נטוי, קווים תחתונים, קו חוצה, סוגי גופנים וכו'.

אלגוריתמי זיהוי שינויים המשמשים את GroupDocs.Comparison מאפשרים לזהות הבדלים בחלקי מסמכים ובלוקים שונים:

  • בלוקי טקסט - פסקאות, מילים ותווים;
  • טבלאות;
  • תמונות;
  • צורות וכו'.

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

  • הצג אובייקט Comparer עם נתיב מסמך מקור או זרם;
  • התקשר לשיטת Add וציין את נתיב מסמך היעד או זרם;
  • התקשר לשיטת השוואה.

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

השווה מסמכים מקובץ מקומי

using (Comparer comparer = new Comparer(“source.docx”))
{
    comparer.Add(“target.docx”);
    comparer.Compare(“result.docx”);
}

השווה מסמכים מהזרם

using (Comparer comparer = new Comparer(File.OpenRead(“source.docx”)))
{
    comparer.Add(File.OpenRead(“target.docx”));
    comparer.Compare(File.Create(“result.docx”));
}

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

קבל או דחה הבדלים שזוהו

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

להלן השלבים להחלת/דחיית שינויים במסמך שנוצר.

דוגמת הקוד הבאה מראה כיצד לקבל/לדחות הבדלים שזוהו.

using (Comparer comparer = new Comparer(“source.docx”))
{
    comparer.Add(“target.docx”);
    comparer.Compare();
    ChangeInfo[] changes = comparer.GetChanges();
    changes[0].ComparisonAction = ComparisonAction.Reject;
    comparer.ApplyChanges(File.Create(“result.docx”), new SaveOptions(), new ApplyChangeOptions() { Changes = changes });
}

צור תצוגה מקדימה של דפי מסמכים

GroupDocs.Comparison מאפשר ליצור תצוגות מקדימות של עמודים עבור מקור, יעד ומסמכים שהתקבלו באמצעות שיטת GeneratePreview של מחלקה Document.

PreviewOptions המחלקה משמשת לניהול תהליך יצירת תצוגה מקדימה - ציין מספרי עמודים רצויים, פורמט תמונה וכו'.

להלן השלבים ליצירת תצוגה מקדימה של מסמך עם GroupDocs.Comparison API:

  • צור מופע חדש של מחלקה Comparer והעבר את נתיב מסמך המקור כפרמטר בנאי;
  • הוסף מסמכי יעד להשוואה באמצעות שיטת הוסף;
  • מָקוֹר and Targets properties of Comparer object allows to access source and target documents and provides GeneratePreview method;
  • הצג את האובייקט PreviewOptions באמצעות:
    • נציג עבור כל יצירת זרם עמוד (ראה מטפל באירוע CreatePageStream);
    • פורמט תצוגה מקדימה של תמונה - PNG / JPG / BMP;
    • מספרי עמודים לעיבוד;
    • גודל מותאם אישית של תמונות תצוגה מקדימה (במידת הצורך).
  • התקשר לשיטת GeneratePreview של מסמך Source ו-Targets והעביר את PreviewOptions אליו.

קבל תצוגות מקדימות של דף עבור המסמך שנוצר

using (Comparer comparer = new Comparer(“source.docx”))
{
    comparer.Add(“target.docx”);
    comparer.Compare(“result.docx”);
    Document document = new Document(File.OpenRead(“result.docx”));
    PreviewOptions previewOptions = new PreviewOptions(pageNumber =>
    {
        var pagePath = Path.Combine(“C:\\”, $"result\_{pageNumber}.png");
        return File.Create(pagePath);
    });
    previewOptions.PreviewFormat = PreviewFormats.PNG;
    previewOptions.PageNumbers = new int[] { 1, 2 };
    document.GeneratePreview(previewOptions);
}

השוו בין מספר מסמכים

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

using (Comparer comparer = new Comparer(“source.docx”)
{
    comparer.Add(“target1.docx”);
    comparer.Add(“target2.docx”);
    comparer.Add(“target3.docx”);
    comparer.Compare(“result.docx”);
}

הַתקָנָה

NuGet היא הדרך הקלה ביותר להוריד ולהתקין את GroupDocs.Comparison עבור .NET. אנא קבל רישיון זמני כדי לבדוק את הספרייה ללא הגבלות תפקודיות.

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