Dela Word-dokument C++

MS Word är ett populärt format för att lagra och dela information. Det kan finnas scenarier där du vill dela upp ett Word-dokument i flera filer. Till exempel kan ett dokument innehålla olika avsnitt som behöver delas med olika personer eller innehålla en del konfidentiell information som måste separeras. I sådana fall kan det vara till hjälp att dela upp Word-dokumentet. I den här artikeln kommer du att lära dig hur du delar MS Word-dokument med C++.

C++ API för att dela Word-dokument

Aspose.Words for C++ är ett inbyggt C++-bibliotek som låter dig generera, ändra och konvertera Microsoft Word-dokument. Dessutom stöder den också uppdelning av Word-dokument i flera filer. Du kan antingen installera API:t genom NuGet eller ladda ner det direkt från avsnittet Nedladdningar.

PM> Install-Package Aspose.Words.Cpp

Dela Word-dokument efter sida med C++

Följande är stegen för att dela Word-filer med C++.

  • Ladda Word-dokumentet med klassen Document.
  • Skapa en instans av klassen DocumentPageSplitter och initiera den med objektet Document som skapades i föregående steg.
  • Bläddra igenom sidorna i Dokument.
  • Extrahera varje sida med metoden DocumentPageSplitter.GetDocumentOfPage(int32t PageIndex).
  • Spara dokumenten med metoden Dokument->Spara (System::String filnamn).

Följande är exempelkoden för att dela upp ett Word-dokument efter sida.

// Exempel på Word-dokument
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";

// Ladda Word-dokumentet
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);

// Skapa och initiera dokumentsiddelare
DocumentPageSplitter splitter = DocumentPageSplitter(document);

// Utdatafilens sökväg
System::String outputPath = u"OutputDirectory\\";

// Spara varje sida som ett separat dokument
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");
}

Använd sidintervall för att dela upp ett Word-dokument

Istället för att separera varje sida kan du också dela upp Word-dokumentet genom att tillhandahålla ett sidintervall. Följande är stegen för att dela ett Word-dokument med hjälp av sidintervall.

  • Först laddar du Word-dokumentet med klassen Dokument.
  • Skapa en instans av klassen DocumentPageSplitter och initiera den med föregående stegs Document-objekt.
  • Hämta sidorna i det önskade intervallet med metoden DocumentPageSplitter.GetDocumentOfPageRange(int32t pageIndex, int32t pageIndex).
  • Slutligen sparar du Word-dokumentet med metoden Dokument->Spara (System::String filnamn).

Följande är exempelkoden för att dela ett Word-dokument med hjälp av sidintervall.

// Exempel på Word-dokument
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";

// Ladda Word-dokumentet
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);

// Skapa och initiera dokumentsiddelare
DocumentPageSplitter splitter = DocumentPageSplitter(document);

// Hämta sidintervallet
auto pageDoc = splitter.GetDocumentOfPageRange(2, 3);

// Utdatafilens sökväg
System::String outputPath = u"OutputDirectory\\";

// Spara som DOCX-fil
pageDoc->Save(outputPath + u"SplitDocumentByPageRangeOut.docx");

Dela Word-dokument efter sektioner med C++

Word-filer kan innehålla en eller flera sektioner som kan ha olika formatering och kan bestå av valfritt antal sidor. För att lägga till ett nytt avsnitt i Word-filen, använd alternativet Layout > Avbrott > Avsnittsbrytningar. Följande är stegen för att dela Word-filer efter sektioner med Aspose.Words för C++ API.

Följande är exempelkoden för att dela upp Word-dokument efter sektioner.

// Exempel på Word-dokument
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";

// Ladda Word-dokumentet
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);

// Utdatafilens sökväg
System::String outputPath = u"OutputDirectory\\";

for (int i = 0; i < document->get_Sections()->get_Count(); i++)
{
    // Dela upp ett dokument i mindre delar, i det här fallet uppdelat efter avsnitt
    auto section = document->get_Sections()->idx_get(i)->Clone();

    // Skapa ett nytt dokument
    auto newDoc = System::MakeObject<Aspose::Words::Document>();
    newDoc->get_Sections()->Clear();

    //Lägg till ett nytt avsnitt i det nyskapade dokumentet
    auto newSection = System::StaticCast<Aspose::Words::Section>(newDoc->ImportNode(section, true));
    newDoc->get_Sections()->Add(newSection);

    // Spara varje avsnitt som ett separat dokument
    newDoc->Save(outputPath + u"SplitDocumentBySectionsOut_" + System::Convert::ToString(i) + u".docx");
}

Skaffa en gratis licens

Du kan prova API utan utvärderingsbegränsningar genom att begära en gratis tillfällig licens.

Slutsats

I den här artikeln har du lärt dig hur du delar upp Word-dokument i flera filer med C++. Du har lärt dig hur du använder Aspose.Words för C++ API för att dela upp Word-dokument efter sida, sidintervall och sektioner. Du kan utforska API:et i detalj genom att använda den officiella dokumentationen. Om du har några frågor är du välkommen att kontakta oss på forumet.

Se även