איך להסיר עמוד ריק ב-Word באמצעות C#

איך להסיר עמוד ריק ב-Word באמצעות C#

הדרכה מהירה זו מסבירה כיצד להסיר דפים ריקים מקבצי Word (DOCX, DOC וכו’) באמצעות C#. התהליך כולל טעינת קובץ Word, ניתוח דפים בודדים, זיהוי דפים ריקים ולבסוף יצירת מסמך חדש ללא הדפים הריקים.

יתרונות הסרת דפים ריקים בקבצי Word

  1. מסמך נקי יותר:
    • משפר את הקריאות והמקצועיות.
  2. הקטנת גודל הקובץ:
    • אחסון יעיל על ידי חיסול דפים מיותרים.
  3. יכולת אוטומציה:
    • אידיאלי לניקוי מסמכים גדולים באופן אוטומטי.

דרישות מוקדמות: הכנת הסביבה

  1. Visual Studio או IDE אחר של .NET.
  2. Aspose.Words נוסף באמצעות מנהל החבילות NuGet.

מדריך שלב אחר שלב להסרת דפים ריקים ב-Word באמצעות C#

שלב 1: הגדרת הסביבה

התקן את ספריית Aspose.Words באמצעות מנהל החבילות NuGet.

Install-Package Aspose.Words

שלב 2: טעינת מסמך ה-Word

טען את קובץ ה-Word המקורי שלך באמצעות אובייקט מחלקת Document.

Document originalDoc = new Document("WordFileWithBlankPages.docx");

שלב 3: חילוץ כל דף בנפרד

חזור על כל דף וחלץ כל דף למסמך נפרד לצורך ניתוח.

int totalPages = originalDoc.PageCount;

for (int i = 0; i < totalPages; i++)
{
    Document singlePageDoc = originalDoc.ExtractPages(i, 1);
    // נתח singlePageDoc בשלבים הבאים
}

שלב 4: ניתוח מסמכי דף בודד

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

int shapesCounter = 0;
string pageText = "";

foreach (Section docSection in singlePageDoc.Sections)
{
    pageText += docSection.Body.ToString(SaveFormat.Text);
    shapesCounter += docSection.Body.GetChildNodes(NodeType.Shape, true).Count;
}

שלב 5: שמירה על רשימת דפים לא ריקים

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

ArrayList blankPages = new ArrayList();
blankPages.Add(-1);

if (string.IsNullOrEmpty(pageText.Trim()) && shapesCounter == 0)
    blankPages.Add(i); // i הוא אינדקס הדף בלולאה

שלב 6: הוספת דפים לא ריקים למסמך חדש

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

Document finalDoc = (Document)originalDoc.Clone(false);
finalDoc.RemoveAllChildren();

blankPages.Add(totalPages);

for (int i = 1; i < blankPages.Count; i++)
{
    int index = (int)blankPages[i - 1] + 1;
    int count = (int)blankPages[i] - index;

    if (count > 0)
        finalDoc.AppendDocument(originalDoc.ExtractPages(index, count), ImportFormatMode.KeepSourceFormatting);
}

שלב 7: שמירת המסמך המותאם

שמור את המסמך החדש עם הדפים הריקים שהוסרו.

finalDoc.Save(@"cleaned.docx");

דוגמת קוד מלאה למחיקת דפים ריקים ב-Word באמצעות C#

להלן דוגמת קוד מלאה שניתן להריץ המדגימה את השלבים הנ"ל:

Document originalDoc = new Document("WordFileWithBlankPages.docx");

ArrayList blankPages = new ArrayList();
blankPages.Add(-1);

int totalPages = originalDoc.PageCount;

for (int i = 0; i < totalPages; i++)
{
    Document singlePageDoc = originalDoc.ExtractPages(i, 1);
    int shapesCounter = 0;
    string pageText = "";

    foreach (Section docSection in singlePageDoc.Sections)
    {
        pageText += docSection.Body.ToString(SaveFormat.Text);
        shapesCounter += docSection.Body.GetChildNodes(NodeType.Shape, true).Count;
    }

    if (string.IsNullOrEmpty(pageText.Trim()) && shapesCounter == 0)
        blankPages.Add(i);
}

blankPages.Add(totalPages);

Document finalDoc = (Document)originalDoc.Clone(false);
finalDoc.RemoveAllChildren();

for (int i = 1; i < blankPages.Count; i++)
{
    int index = (int)blankPages[i - 1] + 1;
    int count = (int)blankPages[i] - index;

    if (count > 0)
        finalDoc.AppendDocument(originalDoc.ExtractPages(index, count), ImportFormatMode.KeepSourceFormatting);
}

finalDoc.Save(@"NonEmptyPages.docx");
System.Console.WriteLine("דפים ריקים הוסרו בהצלחה.");

סיכום

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

 Ελληνικά