So entfernen Sie eine leere Seite in Word mit C#

So entfernen Sie eine leere Seite in Word mit C#

Dieses kurze Tutorial erklärt, wie man leere Seiten aus Word-Dokumenten (DOCX, DOC usw.) mit C# entfernt. Der Prozess umfasst das Laden einer Word-Datei, das Analysieren einzelner Seiten, das Identifizieren leerer Seiten und schließlich das Erstellen eines neuen Dokuments ohne die leeren Seiten.

Vorteile der Entfernung leerer Seiten in Word-Dokumenten

  1. Saubereres Dokument:
    • Verbessert die Lesbarkeit und Professionalität.
  2. Reduzierte Dateigröße:
    • Effiziente Speicherung durch Eliminierung unnötiger Seiten.
  3. Automatisierungskapazität:
    • Ideal zum automatischen Bereinigen großer Dokumente.

Voraussetzungen: Vorbereitung der Umgebung

  1. Visual Studio oder eine andere .NET-IDE.
  2. Aspose.Words über den NuGet-Paket-Manager hinzugefügt.

Schritt-für-Schritt-Anleitung zur Entfernung leerer Seiten in Word mit C#

Schritt 1: Umgebung konfigurieren

Installieren Sie die Aspose.Words-Bibliothek über den NuGet-Paket-Manager.

Install-Package Aspose.Words

Schritt 2: Das Word-Dokument laden

Laden Sie Ihre ursprüngliche Word-Datei mit dem Document-Klassenobjekt.

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

Schritt 3: Jede Seite separat extrahieren

Durchlaufen Sie jede Seite und extrahieren Sie jede Seite in ein separates Dokument zur Analyse.

int totalPages = originalDoc.PageCount;

for (int i = 0; i < totalPages; i++)
{
    Document singlePageDoc = originalDoc.ExtractPages(i, 1);
    // Analysieren Sie singlePageDoc in den nächsten Schritten
}

Schritt 4: Einzelne Seiten-Dokumente analysieren

Überprüfen Sie, ob das einseitige Dokument Text oder Formen enthält.

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;
}

Schritt 5: Liste der nicht leeren Seiten beibehalten

Verfolgen Sie die Seitennummern, die Inhalte enthalten.

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

if (string.IsNullOrEmpty(pageText.Trim()) && shapesCounter == 0)
    blankPages.Add(i); // i ist der Seitenindex in der Schleife

Schritt 6: Nicht leere Seiten zum neuen Dokument hinzufügen

Erstellen Sie ein neues Dokument und fügen Sie nur nicht leere Seiten mit der verfolgten Liste hinzu.

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);
}

Schritt 7: Modifiziertes Dokument speichern

Speichern Sie das neue Dokument mit entfernten leeren Seiten.

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

Vollständiges Codebeispiel zum Löschen leerer Seiten in Word mit C#

Im Folgenden finden Sie das vollständige ausführbare Codebeispiel, das die oben genannten Schritte demonstriert:

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("Leere Seiten erfolgreich entfernt.");

Fazit

Dieser Artikel erklärte, wie man leere Seiten in Word-Dateien mit C# entfernt. Durch Befolgen der bereitgestellten Schritte können Sie programmgesteuert leere Seiten erkennen und entfernen, was zu einem saubereren Dokument führt. Sie können Aspose.Words weiter erkunden, um weitere Aufgaben zur Manipulation von Word-Dokumenten durchzuführen.

 Deutsch