Diviser des documents Word

Les documents MS Word sont largement utilisés pour conserver et partager des informations. Dans certains cas, vous devrez peut-être fractionner les données d’un document Word qui pourraient se trouver dans différentes sections ou pages. En outre, vous devrez peut-être diviser les pages d’un seul document en plusieurs documents. Conformément à ces scénarios, cet article vise à vous montrer comment diviser des documents MS Word par programmation à l’aide de C#.

API C# pour fractionner des documents MS Word

Aspose.Words for .NET est une puissante API de traitement de texte qui vous permet de créer et de manipuler des documents MS Word à l’aide de C# ou VB.NET. Parallèlement à cela, il vous permet également de diviser les documents MS Word par section, page ou plage de pages. Vous pouvez télécharger l’API ou l’installer dans votre application à l’aide de NuGet.

PM> Install-Package Aspose.Words

Diviser les documents Word par section à l’aide de C#

Les sections font référence aux parties d’un document où une mise en forme différente peut être appliquée. Une section peut être composée d’une seule page, d’une série de pages ou de l’ensemble du document. Les sauts de section sont utilisés pour diviser un document en plusieurs sections. Voici les étapes pour diviser un document Word en fonction de ses sections à l’aide de Aspose.Words for .NET.

L’exemple de code suivant montre comment diviser des documents MS Word en sections à l’aide de C#.

// Ouvrir un document Word
Document doc = new Document("document.docx"); 

for (int i = 0; i < doc.Sections.Count; i++)
{
	// Diviser un document en parties plus petites, dans ce cas divisé par section
	Section section = doc.Sections[i].Clone();

  // Créer un nouveau document
	Document newDoc = new Document();
	newDoc.Sections.Clear();

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

	// Enregistrez chaque section dans un document séparé
	newDoc.Save($"splitted_{i}.docx");
}

Fractionner des documents Word page par page à l’aide de C#

Il peut arriver qu’un document Word contienne un type d’informations similaire sur chaque page, comme des factures ou des reçus. Dans un tel cas, vous pouvez diviser les pages du document afin d’enregistrer chaque facture dans un document distinct. Pour diviser les documents page par page, vous pouvez utiliser la classe d’assistance DocumentPageSplitter basée sur Aspose.Words for .NET. Vous pouvez simplement copier la classe dans votre projet et diviser les documents Word page par page en suivant les étapes ci-dessous.

  • Chargez le document Word à l’aide de la classe Document.
  • Créez un objet de la classe DocumentPageSplitter et initialisez-le avec l’objet Document.
  • Parcourez les pages du document.
  • Extrayez chaque page dans un nouvel objet Document à l’aide de la méthode DocumentPageSplitter.GetDocumentOfPage(int PageIndex).
  • Enregistrez chaque document à l’aide de la méthode Document.Save(String).

L’exemple de code suivant montre comment diviser le document Word par pages à l’aide de C#.

// Ouvrir un document Word
Document doc = new Document("Document.docx");

// Créer et initialiser le séparateur de pages de document
DocumentPageSplitter splitter = new DocumentPageSplitter(doc);

// Enregistrez chaque page dans un document séparé
for (int page = 1; page <= doc.PageCount; page++)
{
	Document pageDoc = splitter.GetDocumentOfPage(page);
	pageDoc.Save($"spliteed_{page}.docx");
}

Diviser les documents Word par plage de pages à l’aide de C#

Vous pouvez également spécifier une plage de pages pour la séparer du document d’origine à l’aide de la classe DocumentPageSplitter. Par exemple, si vous devez diviser les pages de 2 à 4, spécifiez simplement l’index de la page de début et de fin dans la méthode DocumentPageSplitter.GetDocumentOfPageRange(int StartIndex, int EndIndex).

L’exemple de code suivant montre comment fractionner une plage de pages d’un document Word à l’aide de C#.

// Ouvrir un document Word
Document doc = new Document("document.docx");

// Créer et initialiser le séparateur de page de document
DocumentPageSplitter splitter = new DocumentPageSplitter(doc);

// Obtenir la plage de pages
Document pageDoc = splitter.GetDocumentOfPageRange(3, 6);
pageDoc.Save("splitted.docx");

Conclusion

Dans cet article, vous avez appris à diviser des documents MS Word par programmation à l’aide de C#. Les scénarios de fractionnement de documents Word par sections, pages et plages de pages ont été discutés avec des exemples de code. Vous pouvez en savoir plus sur Aspose.Words for .NET en utilisant la documentation.

Voir également