
MS Word — популярный формат для хранения и обмена информацией. Могут быть сценарии, в которых вы хотите разделить документ Word на несколько файлов. Например, документ может содержать разные разделы, которыми нужно поделиться с разными людьми, или содержать некоторую конфиденциальную информацию, которую необходимо разделить. В таких случаях полезно разделить документ Word. В этой статье вы узнаете, как разделить документы MS Word с помощью C++.
- C++ API для разделения документов Word
- Разделить документы Word по страницам с помощью C++
- Используйте диапазон страниц для разделения документа Word
- Разделить документ Word по разделам с помощью C++
- Получить бесплатную лицензию
C++ API для разделения документов Word
Aspose.Words for C++ — это собственная библиотека C++, позволяющая создавать, изменять и преобразовывать документы Microsoft Word. Кроме того, он также поддерживает разделение документов Word на несколько файлов. Вы можете либо установить API через NuGet, либо загрузить его напрямую из раздела Загрузки.
PM> Install-Package Aspose.Words.Cpp
Разделить документы Word по страницам с помощью C++
Ниже приведены шаги для разделения файлов Word с помощью C++.
- Загрузите документ Word с помощью класса Document.
- Создайте экземпляр класса DocumentPageSplitter и инициализируйте его с помощью объекта Document, созданного на предыдущем шаге.
- Пролистайте страницы Документа.
- Извлеките каждую страницу с помощью метода DocumentPageSplitter.GetDocumentOfPage(int32\t PageIndex).
- Сохраните документы методом Документ->Сохранить (System::String fileName).
Ниже приведен пример кода для разделения документа Word по страницам.
// Образец документа Word
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";
// Загрузите документ Word
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);
// Создание и инициализация разделителя страниц документа
DocumentPageSplitter splitter = DocumentPageSplitter(document);
// Путь к выходному файлу
System::String outputPath = u"OutputDirectory\\";
// Сохраняйте каждую страницу как отдельный документ
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");
}
Используйте диапазон страниц для разделения документа Word
Вместо разделения каждой страницы вы также можете разделить документ Word, указав диапазон страниц. Ниже приведены шаги для разделения документа Word с использованием диапазона страниц.
- Во-первых, загрузите документ Word, используя класс Document.
- Создайте экземпляр класса DocumentPageSplitter и инициализируйте его с помощью объекта Document предыдущего шага.
- Получите страницы в требуемом диапазоне с помощью метода DocumentPageSplitter.GetDocumentOfPageRange(int32\t pageIndex, int32\t pageIndex).
- Наконец, сохраните документ Word, используя метод Документ->Сохранить (System::String fileName).
Ниже приведен пример кода для разделения документа Word с использованием диапазона страниц.
// Образец документа Word
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";
// Загрузите документ Word
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);
// Создание и инициализация разделителя страниц документа
DocumentPageSplitter splitter = DocumentPageSplitter(document);
// Получить диапазон страниц
auto pageDoc = splitter.GetDocumentOfPageRange(2, 3);
// Путь к выходному файлу
System::String outputPath = u"OutputDirectory\\";
// Сохранить как файл DOCX
pageDoc->Save(outputPath + u"SplitDocumentByPageRangeOut.docx");
Разделить документ Word по разделам с помощью C++
Файлы Word могут содержать один или несколько разделов, которые могут иметь разное форматирование и могут состоять из любого количества страниц. Чтобы добавить новый раздел в файл Word, используйте параметр «Макет»> «Разрывы»> «Разрывы раздела». Ниже приведены шаги для разделения файлов Word на разделы с помощью Aspose.Words for C++ API.
- Загрузите файл Word, используя класс Document.
- Получите разделы документа с помощью метода Document->getSections() и выполните итерацию по ним.
- Клонируйте раздел в объект Section с помощью метода Document->getSections()->idxget(int32t index)->Clone().
- Создайте новый документ Word, используя класс Document.
- Добавьте клонированный раздел во вновь созданный документ Word, используя Document->getSections()->Add (System::SharedPtrAspose::Words::Node узел) метод.
- Наконец, сохраните файл Word, используя метод Документ->Сохранить (System::String fileName).
Ниже приведен пример кода для разделения документов Word на разделы.
// Образец документа Word
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";
// Загрузите документ Word
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);
// Путь к выходному файлу
System::String outputPath = u"OutputDirectory\\";
for (int i = 0; i < document->get_Sections()->get_Count(); i++)
{
// Разделить документ на более мелкие части, в данном случае по разделам
auto section = document->get_Sections()->idx_get(i)->Clone();
// Создать новый документ
auto newDoc = System::MakeObject<Aspose::Words::Document>();
newDoc->get_Sections()->Clear();
//Добавить новый раздел во вновь созданный документ
auto newSection = System::StaticCast<Aspose::Words::Section>(newDoc->ImportNode(section, true));
newDoc->get_Sections()->Add(newSection);
// Сохраняйте каждый раздел как отдельный документ
newDoc->Save(outputPath + u"SplitDocumentBySectionsOut_" + System::Convert::ToString(i) + u".docx");
}
Получить бесплатную лицензию
Вы можете попробовать API без ограничений по ознакомительной версии, запросив бесплатную временную лицензию.
Вывод
В этой статье вы узнали, как разделить документы Word на несколько файлов с помощью C++. Вы узнали, как использовать Aspose.Words for C++ API для разделения документов Word по страницам, диапазонам страниц и разделам. Вы можете подробно изучить API, используя официальную документацию. Если у вас есть какие-либо вопросы, свяжитесь с нами на форуме.