MS Word je oblíbený formát pro ukládání a sdílení informací. Mohou nastat situace, kdy budete chtít rozdělit dokument aplikace Word do více souborů. Dokument může například obsahovat různé části, které je třeba sdílet s různými lidmi, nebo obsahovat nějaké důvěrné informace, které je třeba oddělit. V takových případech se ukáže být užitečné rozdělení dokumentu aplikace Word. V tomto článku se dozvíte, jak rozdělit dokumenty MS Word pomocí C++.
- C++ API pro rozdělení dokumentů aplikace Word
- Rozdělte dokumenty aplikace Word podle stránek pomocí C++
- Použijte rozsah stránek k rozdělení dokumentu aplikace Word
- Rozdělte dokument Word podle sekcí pomocí C++
- Získejte bezplatnou licenci
C++ API pro rozdělení dokumentů aplikace Word
Aspose.Words for C++ je nativní knihovna C++, která umožňuje generovat, měnit a převádět dokumenty Microsoft Word. Kromě toho také podporuje rozdělení dokumentů aplikace Word do více souborů. Rozhraní API můžete nainstalovat buď prostřednictvím NuGet, nebo si jej stáhnout přímo ze sekce Downloads.
PM> Install-Package Aspose.Words.Cpp
Rozdělte dokumenty aplikace Word podle stránek pomocí C++
Níže jsou uvedeny kroky k rozdělení souborů aplikace Word pomocí C++.
- Načtěte dokument aplikace Word pomocí třídy Document.
- Vytvořte instanci třídy DocumentPageSplitter a inicializujte ji pomocí objektu Document vytvořeného v předchozím kroku.
- Procházejte stránky dokumentu.
- Extrahujte každou stránku pomocí metody DocumentPageSplitter.GetDocumentOfPage(int32t PageIndex).
- Uložte dokumenty pomocí metody Document->Save (System::String fileName).
Následuje ukázkový kód pro rozdělení dokumentu aplikace Word podle stránek.
// Ukázkový dokument aplikace Word
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";
// Načtěte dokument aplikace Word
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);
// Vytvořte a inicializujte rozdělovač stránek dokumentu
DocumentPageSplitter splitter = DocumentPageSplitter(document);
// Cesta k výstupnímu souboru
System::String outputPath = u"OutputDirectory\\";
// Uložte každou stránku jako samostatný 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");
}
Použijte rozsah stránek k rozdělení dokumentu aplikace Word
Namísto oddělování každé stránky můžete dokument Word také rozdělit poskytnutím rozsahu stránek. Následují kroky k rozdělení dokumentu aplikace Word pomocí rozsahu stránek.
- Nejprve načtěte dokument aplikace Word pomocí třídy Document.
- Vytvořte instanci třídy DocumentPageSplitter a inicializujte ji objektem Document předchozího kroku.
- Načtěte stránky v požadovaném rozsahu pomocí metody DocumentPageSplitter.GetDocumentOfPageRange(int32t pageIndex, int32t pageIndex).
- Nakonec uložte dokument aplikace Word pomocí metody Document->Save (System::String fileName).
Následuje ukázkový kód pro rozdělení dokumentu aplikace Word pomocí rozsahu stránek.
// Ukázkový dokument aplikace Word
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";
// Načtěte dokument aplikace Word
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);
// Vytvořte a inicializujte rozdělovač stránek dokumentu
DocumentPageSplitter splitter = DocumentPageSplitter(document);
// Získejte rozsah stránek
auto pageDoc = splitter.GetDocumentOfPageRange(2, 3);
// Cesta k výstupnímu souboru
System::String outputPath = u"OutputDirectory\\";
// Uložit jako soubor DOCX
pageDoc->Save(outputPath + u"SplitDocumentByPageRangeOut.docx");
Rozdělte dokument Word podle sekcí pomocí C++
Soubory aplikace Word mohou obsahovat jednu nebo více částí, které mohou mít různé formátování a mohou sestávat z libovolného počtu stránek. Chcete-li přidat novou sekci do souboru Word, použijte volbu Rozvržení>Konce>Konce sekcí. Následují kroky k rozdělení souborů aplikace Word podle sekcí pomocí Aspose.Words for C++ API.
- Načtěte soubor aplikace Word pomocí třídy Document.
- Načtěte části dokumentu pomocí metody Document->getSections() a iterujte je.
- Naklonujte sekci do objektu Section pomocí metody Document->getSections()->idxget(int32t index)->Clone().
- Vytvořte nový dokument aplikace Word pomocí třídy Document.
- Přidejte klonovanou sekci do nově vytvořeného dokumentu aplikace Word pomocí Document->getSections()->Add (System::SharedPtrAspose::Words::Node uzel) metoda.
- Nakonec uložte soubor aplikace Word pomocí metody Document->Save (System::String fileName).
Následuje ukázkový kód pro rozdělení dokumentů aplikace Word podle sekcí.
// Ukázkový dokument aplikace Word
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";
// Načtěte dokument aplikace Word
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);
// Cesta k výstupnímu souboru
System::String outputPath = u"OutputDirectory\\";
for (int i = 0; i < document->get_Sections()->get_Count(); i++)
{
// Rozdělte dokument na menší části, v tomto případě rozdělené podle sekcí
auto section = document->get_Sections()->idx_get(i)->Clone();
// Vytvořte nový dokument
auto newDoc = System::MakeObject<Aspose::Words::Document>();
newDoc->get_Sections()->Clear();
//Přidejte nový oddíl do nově vytvořeného dokumentu
auto newSection = System::StaticCast<Aspose::Words::Section>(newDoc->ImportNode(section, true));
newDoc->get_Sections()->Add(newSection);
// Uložte každou sekci jako samostatný dokument
newDoc->Save(outputPath + u"SplitDocumentBySectionsOut_" + System::Convert::ToString(i) + u".docx");
}
Získejte bezplatnou licenci
Rozhraní API můžete vyzkoušet bez omezení hodnocení tím, že požádáte o bezplatnou dočasnou licenci.
Závěr
V tomto článku jste se naučili, jak rozdělit dokumenty Wordu do více souborů pomocí C++. Naučili jste se používat Aspose.Words for C++ API k rozdělení dokumentů aplikace Word podle stránky, rozsahu stránek a sekcí. Rozhraní API můžete podrobně prozkoumat pomocí oficiální dokumentace. Pokud máte nějaké dotazy, neváhejte nás kontaktovat na fóru.