Разделить документы Word C++

MS Word — популярный формат для хранения и обмена информацией. Могут быть сценарии, в которых вы хотите разделить документ Word на несколько файлов. Например, документ может содержать разные разделы, которыми нужно поделиться с разными людьми, или содержать некоторую конфиденциальную информацию, которую необходимо разделить. В таких случаях полезно разделить документ Word. В этой статье вы узнаете, как разделить документы MS 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 на разделы.

// Образец документа 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, используя официальную документацию. Если у вас есть какие-либо вопросы, свяжитесь с нами на форуме.

Смотрите также