Scinder des documents Word C++

MS Word est un format populaire pour stocker et partager des informations. Il peut y avoir des scénarios dans lesquels vous souhaitez diviser un document Word en plusieurs fichiers. Par exemple, un document peut contenir différentes sections qui doivent être partagées avec différentes personnes ou contenir des informations confidentielles qui doivent être séparées. Dans de tels cas, diviser le document Word s’avère utile. Dans cet article, vous apprendrez à diviser des documents MS Word à l’aide de C++.

API C++ pour fractionner des documents Word

Aspose.Words for C++ est une bibliothèque C++ native qui vous permet de générer, modifier et convertir des documents Microsoft Word. En outre, il prend également en charge le fractionnement de documents Word en plusieurs fichiers. Vous pouvez soit installer l’API via NuGet ou la télécharger directement à partir de la section Téléchargements.

PM> Install-Package Aspose.Words.Cpp

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

Voici les étapes pour diviser des fichiers Word à l’aide de C++.

  • Chargez le document Word à l’aide de la classe Document.
  • Créez une instance de la classe DocumentPageSplitter et initialisez-la avec l’objet Document créé à l’étape précédente.
  • Parcourez les pages du Document.
  • Extrayez chaque page avec la méthode DocumentPageSplitter.GetDocumentOfPage(int32t PageIndex).
  • Enregistrez les documents en utilisant la méthode Document->Save (System::String fileName).

Voici l’exemple de code pour diviser un document Word par page.

// Exemple de document Word
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";

// Charger le document Word
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);

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

// Chemin du fichier de sortie
System::String outputPath = u"OutputDirectory\\";

// Enregistrez chaque page dans un document séparé
for (int page = 1; page <= document->get_PageCount(); page++)
{
    auto pageDoc = splitter.GetDocumentOfPage(page);
    pageDoc->Save(outputPath + u"SplitDocumentPageByPageOut_" + System::Convert::ToString(page) + u".docx");
}

Utiliser la plage de pages pour diviser un document Word

Au lieu de séparer chaque page, vous pouvez également diviser le document Word en fournissant une plage de pages. Voici les étapes pour diviser un document Word en utilisant la plage de pages.

  • Tout d’abord, chargez le document Word à l’aide de la classe Document.
  • Créez une instance de la classe DocumentPageSplitter et initialisez-la avec l’objet Document de l’étape précédente.
  • Récupérez les pages dans la plage requise à l’aide de la méthode DocumentPageSplitter.GetDocumentOfPageRange(int32t pageIndex, int32t pageIndex).
  • Enfin, enregistrez le document Word en utilisant la méthode Document->Save (System::String fileName).

Voici l’exemple de code pour diviser un document Word à l’aide de la plage de pages.

// Exemple de document Word
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";

// Charger le document Word
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);

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

// Obtenir la plage de pages
auto pageDoc = splitter.GetDocumentOfPageRange(2, 3);

// Chemin du fichier de sortie
System::String outputPath = u"OutputDirectory\\";

// Enregistrer en tant que fichier DOCX
pageDoc->Save(outputPath + u"SplitDocumentByPageRangeOut.docx");

Diviser un document Word par sections à l’aide de C++

Les fichiers Word peuvent contenir une ou plusieurs sections qui peuvent avoir une mise en forme différente et peuvent être constituées d’un nombre quelconque de pages. Pour ajouter une nouvelle section dans le fichier Word, utilisez l’option Mise en page> Sauts> Sauts de section. Voici les étapes pour diviser les fichiers Word par sections à l’aide de l’API Aspose.Words for C++.

Voici l’exemple de code pour diviser les documents Word par sections.

// Exemple de document Word
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";

// Charger le document Word
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);

// Chemin du fichier de sortie
System::String outputPath = u"OutputDirectory\\";

for (int i = 0; i < document->get_Sections()->get_Count(); i++)
{
    // Diviser un document en parties plus petites, dans ce cas divisé par section
    auto section = document->get_Sections()->idx_get(i)->Clone();

    // Créer un nouveau document
    auto newDoc = System::MakeObject<Aspose::Words::Document>();
    newDoc->get_Sections()->Clear();

    //Ajouter une nouvelle section au document nouvellement créé
    auto newSection = System::StaticCast<Aspose::Words::Section>(newDoc->ImportNode(section, true));
    newDoc->get_Sections()->Add(newSection);

    // Enregistrez chaque section dans un document séparé
    newDoc->Save(outputPath + u"SplitDocumentBySectionsOut_" + System::Convert::ToString(i) + u".docx");
}

Obtenez une licence gratuite

Vous pouvez essayer l’API sans limitation d’évaluation en demandant une licence temporaire gratuite.

Conclusion

Dans cet article, vous avez appris à diviser des documents Word en plusieurs fichiers à l’aide de C++. Vous avez appris à utiliser l’API Aspose.Words for C++ pour diviser des documents Word par page, plage de pages et sections. Vous pouvez explorer l’API en détail en utilisant la documentation officielle. Si vous avez des questions, n’hésitez pas à nous contacter sur le forum.

Voir également