So entfernen Sie leere Seiten in Word mit C#

Dieses kurze Tutorial soll erklären, wie man leere Seiten in Word mit C# wie DOCX, DOC usw. entfernt. Es enthält Details zum Konfigurieren der Umgebung sowie die Schritte, die für die auszuführen sind Aufgabe und einen Beispielcode, der die vollständige Logik zum Löschen einer leeren Seite in Word mit C# implementiert. Sie können diesen Code ausführen, ohne Software von Drittanbietern mit einem der Betriebssysteme wie Windows, Linux oder macOS zu installieren.

Schritte zum Löschen einer leeren Seite in Word mit C#

  1. Konfigurieren Sie das Projekt, um die Aspose.Words-Bibliothek zum Projekt hinzuzufügen
  2. Laden Sie die Word-Quelldatei in das Klassenobjekt Document, um leere Seiten zu entfernen
  3. Analysieren Sie alle Seiten im Quelldokument und rufen Sie jede Seite einzeln ab
  4. Erstellen Sie ein separates Dokument mit jeder einzelnen Seite nur aus dem Quelldokument
  5. Analysieren Sie dieses einseitige Dokument und prüfen Sie, ob section einen Text-/Formknoten enthält oder nicht
  6. Pflegen Sie eine Liste aller nicht leeren Seiten im Originaldokument
  7. Hängen Sie alle nicht leeren Seiten an die neue Word-Datei an
  8. Speichern Sie diese Datei mit den Seiten nur mit etwas Text oder Form

Diese Schritte enthalten Details zum Löschen der leeren Seite in Word mit C#. Zuerst laden Sie die Word-Quelldatei und parsen dann jede der darin enthaltenen Seiten, sodass für jede Seite ein neues Word-Dokument erstellt wird. Es ist erforderlich, weil wir jede Seite separat analysieren müssen und die Features der Document-Klasse uns helfen werden, die nicht leeren Seiten zu identifizieren. Während des Parsens wird jede nicht leere Seite zu einer neuen Word-Datei hinzugefügt, die alle diese Seiten enthält.

Code zum Löschen der leeren Seite in Word mit C#

using System.Collections;
using Aspose.Words;
namespace DeleteABlankPageInWordUsingCSharp
{
class Program
{
static void Main(string[] args) // Main function to delete a blank page in Word using CSharp
{
// Instantiate the license to avoid any trial version limitations
// and watermark in the output Word file
Aspose.Words.License licDeleteBlankPages= new Aspose.Words.License();
licDeleteBlankPages.SetLicense("Aspose.Words.lic");
// Load the Word file having blank pages in it
Document originalDocWithFewBlankPages = new Document("WordFileWithBlankPages.docx");
// Declare an array to store page numbers of the empty or blank pages
ArrayList listOfBlankPageNumbers = new ArrayList();
listOfBlankPageNumbers.Add(-1);
// Extract each page of the loaded document as a separate Word document
int totalPagesInOriginalDoc = originalDocWithFewBlankPages.PageCount;
for (int iCount = 0; iCount < totalPagesInOriginalDoc; iCount++)
{
// Create a new Word document containing the single page
Document DocWithOnePage = originalDocWithFewBlankPages.ExtractPages(iCount, 1);
// Parse through all the sections of the newly created document
// to count text segments and shapes if any
int shapesCounter = 0;
string pageText = "";
foreach (Section docSection in DocWithOnePage.Sections)
{
// Extract text from the section and also get shapes count in the newly created document
pageText = pageText + docSection.Body.ToString(SaveFormat.Text);
shapesCounter += docSection.Body.GetChildNodes(NodeType.Shape, true).Count;
}
// Check if the extracted page is null or not and also check if shapes count is 0 or not
// If text is blank and shapes count is 0, it means the page is blank
if (string.IsNullOrEmpty(pageText.Trim()) && shapesCounter == 0)
listOfBlankPageNumbers.Add(iCount);
}
listOfBlankPageNumbers.Add(totalPagesInOriginalDoc);
// Add all the non-empty pages to the final document
Document nonEmptyDocument = (Document)originalDocWithFewBlankPages.Clone(false);
nonEmptyDocument.RemoveAllChildren();
for (int iCount = 1; iCount < listOfBlankPageNumbers.Count; iCount++)
{
int index = (int)listOfBlankPageNumbers[iCount - 1] + 1;
int count = (int)listOfBlankPageNumbers[iCount] - index;
if (count > 0)
nonEmptyDocument.AppendDocument(originalDocWithFewBlankPages.ExtractPages(index, count), ImportFormatMode.KeepSourceFormatting);
}
// Save the output file having all the non-empty pages
nonEmptyDocument.Save(@"NonEmptyPages.docx");
System.Console.WriteLine("Done");
}
}
}

Dieser Code zum Entfernen einer leeren Seite aus einem Word-Dokument mit C# beschreibt die vollständige Logik, bei der jede Seite der Word-Quelldatei in einer neuen Word-Datei gespeichert und dann auf darin enthaltenen Inhalt analysiert wird. Während dieses Vorgangs werden die Kopf- und Fußzeilen nicht berücksichtigt, Sie können diese jedoch ebenfalls einbeziehen. Sobald alle Seiten analysiert und ihre Nummern in einem Array gespeichert sind, wird dieses Array verwendet, um alle diese Seiten an eine neue Word-Datei anzuhängen.

In diesem Lernprogramm haben wir alle leeren Seiten aus einer Word-Datei entfernt. Wenn Sie andere Funktionen wie das Konvertieren von Word-Dokumenten in HTML kennenlernen möchten, lesen Sie den Artikel zu So konvertieren Sie Word-Dokumente mit C# in HTML.

 Deutsch