Come rimuovere una pagina vuota in Word usando C#

Questo breve tutorial è progettato per spiegare come rimuovere una pagina vuota in Word utilizzando C# come DOCX, DOC, ecc. Fornisce dettagli per configurare l’ambiente insieme ai passaggi da eseguire per il attività e un codice di esempio che implementa la logica completa per cancellare la pagina vuota in Word usando C#. Puoi eseguire questo codice senza installare alcun software di terze parti utilizzando uno qualsiasi dei sistemi operativi come Windows, Linux o macOS.

Passaggi per eliminare la pagina vuota in Word usando C#

  1. Configura il progetto per aggiungere la libreria Aspose.Words al progetto
  2. Carica il file Word di origine nell’oggetto classe Document per rimuovere le pagine vuote
  3. Analizza tutte le pagine del documento di origine e recupera ciascuna pagina separatamente
  4. Crea un documento separato con ogni singola pagina solo dal documento di origine
  5. Analizza questo documento a pagina singola e controlla se qualsiasi section contiene qualche nodo di testo/forma o meno
  6. Mantenere un elenco di tutte le pagine non vuote nel documento originale
  7. Aggiungi tutte le pagine non vuote al nuovo file di Word
  8. Salva questo file con le pagine solo con del testo o una forma

Questi passaggi forniscono i dettagli per eliminare la pagina vuota in Word utilizzando C#. Innanzitutto, carichi il file di Word di origine e quindi analizzi ciascuna delle pagine in esso contenute in modo tale che per ogni pagina venga creato un nuovo documento di Word. È necessario perché dobbiamo analizzare ogni pagina separatamente e le funzionalità della classe Document ci aiuteranno a identificare le pagine non vuote. Durante l’analisi, ogni pagina non vuota viene aggiunta a un nuovo file di Word che conterrà tutte queste pagine.

Codice per eliminare la pagina vuota in Word utilizzando 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");
}
}
}

Questo codice per rimuovere la pagina vuota dal documento di Word utilizzando C# descrive la logica completa in cui ogni pagina del file di Word di origine viene salvata in un nuovo file di Word e quindi analizzata per qualsiasi contenuto in esso contenuto. Durante questo processo, le intestazioni e i piè di pagina non vengono considerati, tuttavia puoi includere anche quelli. Una volta che tutte le pagine sono state analizzate e i loro numeri sono stati salvati in un array, questo array viene utilizzato per aggiungere tutte quelle pagine a un nuovo file di Word.

In questo tutorial, abbiamo rimosso tutte le pagine vuote da un file di Word. Se desideri apprendere altre funzionalità come la conversione di documenti Word in HTML, consulta l’articolo su come convertire un documento Word in HTML usando C#.

 Italiano