Cum să eliminați pagina albă în Word folosind C#

Cum să eliminați pagina albă în Word folosind C#

Acest tutorial rapid explică cum să eliminați paginile goale din documentele Word (DOCX, DOC, etc.) folosind C#. Procesul implică încărcarea unui fișier Word, analizarea paginilor individuale, identificarea paginilor goale și, în cele din urmă, crearea unui nou document fără paginile goale.

Beneficiile eliminării paginilor albe în documentele Word

  • Documentul de curățare:- Îmbunătățește citibilitatea și profesionalismul.

  • Dimensiunea fișierului redus:- Depozitare eficientă prin eliminarea paginilor inutile.

  • Capacitate de automatizare:- Ideal pentru curățarea automată a documentelor mari.

Etichetă: pregătirea mediului

  • Visual Studio sau un alt .NET IDE.
  • Aspose.Words a fost adăugat prin NuGet Package Manager.

Ghid pas cu pas pentru a elimina paginile alb în Word folosind C#

Pasul 1: Configurarea mediului

Instalați biblioteca Aspose.Words prin intermediul administratorului de pachete NuGet.

Install-Package Aspose.Words

Pasul 2: Încărcați documentul Word

Încărcați fișierul original Word folosind obiectul de clasă Document.

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

Pasul 3: Extrageți fiecare pagină separat

Mergeți prin fiecare pagină și extrageți fiecare pagină într-un Document separat pentru analiză.

int totalPages = originalDoc.PageCount;

for (int i = 0; i < totalPages; i++)
{
    Document singlePageDoc = originalDoc.ExtractPages(i, 1);
    // Analyze singlePageDoc in next steps
}

Pasul 4: Analiza documentelor single-page

Verificați dacă documentul cu o singură pagină conține text sau forme.

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

Pasul 5: Păstrați o listă de pagini necomptate

Urmăriți numărul de pagini care conțin conținut.

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

if (string.IsNullOrEmpty(pageText.Trim()) && shapesCounter == 0)
    blankPages.Add(i); // i is page index in loop

Pasul 6: Adăugați pagini non-pace la un nou document

Creați un nou document și adăugați doar pagini neîncărcate folosind lista urmărită.

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

Pasul 7: Salvați documentul modificat

Salvați noul document cu pagini albe îndepărtate.

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

Exemplu complet de cod pentru a șterge paginile albe în Word folosind C#

Mai jos este exemplul complet de cod executabil care demonstrează etapele de mai sus:

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("Blank pages removed successfully.");

concluziile

Acest articol a explicat cum să eliminați paginile goale în fișierele Word folosind C#. Urmând pașii furnizați, puteți detecta în mod programat paginile goale și le puteți elimina, ceea ce duce la un document mai curat.

 Română