Dividi documenti Word

I documenti MS Word sono ampiamente utilizzati per conservare e condividere informazioni. In alcuni casi, potrebbe essere necessario dividere i dati da un documento di Word che potrebbe trovarsi in sezioni o pagine diverse. Inoltre, potrebbe essere necessario dividere le pagine di un singolo documento in più documenti. In base a tali scenari, questo articolo mira a mostrare come dividere i documenti di MS Word a livello di codice utilizzando C#.

API C# per dividere documenti MS Word

Aspose.Words for .NET è una potente API di elaborazione testi che ti consente di creare e manipolare documenti MS Word usando C# o VB.NET. Insieme a ciò, ti consente anche di dividere i documenti MS Word per sezione, pagina o intervallo di pagine. Puoi scaricare l’API o installarla all’interno della tua applicazione utilizzando NuGet.

PM> Install-Package Aspose.Words

Dividi i documenti di Word per sezione usando C#

Le sezioni si riferiscono alle parti di un documento in cui è possibile applicare una formattazione diversa. Una sezione può essere composta da una singola pagina, un intervallo di pagine o l’intero documento. Le interruzioni di sezione vengono utilizzate per dividere un documento in più sezioni. Di seguito sono riportati i passaggi per dividere un documento di Word in base alle sue sezioni usando Aspose.Words per .NET.

L’esempio di codice seguente mostra come dividere i documenti di MS Word per sezioni usando C#.

// Apri un documento di Word
Document doc = new Document("document.docx"); 

for (int i = 0; i < doc.Sections.Count; i++)
{
	// Dividi un documento in parti più piccole, in questo caso divise per sezione
	Section section = doc.Sections[i].Clone();

  // Crea un nuovo documento
	Document newDoc = new Document();
	newDoc.Sections.Clear();

	Section newSection = (Section)newDoc.ImportNode(section, true);
	newDoc.Sections.Add(newSection);

	// Salva ogni sezione come un documento separato
	newDoc.Save($"splitted_{i}.docx");
}

Dividi i documenti di Word pagina per pagina usando C#

Potrebbe verificarsi il caso in cui un documento Word contiene un tipo simile di informazioni su ciascuna pagina come fatture o ricevute. In tal caso, puoi dividere le pagine del documento per salvare ogni fattura come documento separato. Per dividere i documenti pagina per pagina, puoi usare la classe helper DocumentPageSplitter basata su Aspose.Words per .NET. Puoi semplicemente copiare la classe all’interno del tuo progetto e dividere i documenti di Word pagina per pagina seguendo i passaggi seguenti.

  • Carica il documento di Word usando la classe Document.
  • Crea un oggetto della classe DocumentPageSplitter e inizializzalo con l’oggetto Document.
  • Scorri le pagine del documento.
  • Estrarre ogni pagina in un nuovo oggetto Document utilizzando il metodo DocumentPageSplitter.GetDocumentOfPage(int PageIndex).
  • Salva ogni documento usando il metodo Document.Save(String).

Nell’esempio di codice seguente viene illustrato come dividere il documento di Word per pagine usando C#.

// Apri un documento di Word
Document doc = new Document("Document.docx");

// Crea e inizializza il divisore di pagina del documento
DocumentPageSplitter splitter = new DocumentPageSplitter(doc);

// Salva ogni pagina come un documento separato
for (int page = 1; page <= doc.PageCount; page++)
{
	Document pageDoc = splitter.GetDocumentOfPage(page);
	pageDoc.Save($"spliteed_{page}.docx");
}

Dividi i documenti di Word per intervallo di pagine usando C#

Puoi anche specificare un intervallo di pagine per dividerlo dal documento originale utilizzando la classe DocumentPageSplitter. Ad esempio, se è necessario dividere le pagine da 2 a 4, è sufficiente specificare l’indice della pagina iniziale e finale nel metodo DocumentPageSplitter.GetDocumentOfPageRange(int StartIndex, int EndIndex).

L’esempio di codice seguente mostra come dividere un intervallo di pagine da un documento di Word usando C#.

// Apri un documento di Word
Document doc = new Document("document.docx");

// Crea e inizializza il divisore di pagina del documento
DocumentPageSplitter splitter = new DocumentPageSplitter(doc);

// Ottieni l'intervallo di pagine
Document pageDoc = splitter.GetDocumentOfPageRange(3, 6);
pageDoc.Save("splitted.docx");

Conclusione

In questo articolo, hai imparato come dividere i documenti di MS Word a livello di codice usando C#. Gli scenari di suddivisione dei documenti di Word per sezioni, pagine e intervalli di pagine sono stati discussi insieme ad esempi di codice. Puoi esplorare di più su Aspose.Words per .NET usando la documentazione.

Guarda anche