Dividir documentos do Word C++

MS Word é um formato popular para armazenar e compartilhar informações. Pode haver cenários em que você deseja dividir um documento do Word em vários arquivos. Por exemplo, um documento pode conter seções diferentes que precisam ser compartilhadas com pessoas diferentes ou conter algumas informações confidenciais que precisam ser separadas. Nesses casos, dividir o documento do Word é útil. Neste artigo, você aprenderá como dividir documentos do MS Word usando C++.

API C++ para dividir documentos do Word

Aspose.Words for C++ é uma biblioteca nativa de C++ que permite gerar, alterar e converter documentos do Microsoft Word. Além disso, também suporta a divisão de documentos do Word em vários arquivos. Você pode instalar a API por meio do NuGet ou baixá-la diretamente da seção Downloads.

PM> Install-Package Aspose.Words.Cpp

Dividir documentos do Word por página usando C++

A seguir estão as etapas para dividir arquivos do Word usando C++.

  • Carregue o documento do Word usando a classe Document.
  • Crie uma instância da classe DocumentPageSplitter e inicialize-a com o objeto Document criado na etapa anterior.
  • Percorra as páginas do Documento.
  • Extraia cada página com o método DocumentPageSplitter.GetDocumentOfPage(int32t PageIndex).
  • Salve os documentos usando o método Document->Save (System::String fileName).

A seguir está o código de exemplo para dividir um documento do Word por página.

// Exemplo de documento do Word
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";

// Carregar o documento do Word
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);

// Criar e inicializar o divisor de página do documento
DocumentPageSplitter splitter = DocumentPageSplitter(document);

// Caminho do arquivo de saída
System::String outputPath = u"OutputDirectory\\";

// Salve cada página como um documento separado
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");
}

Use o intervalo de páginas para dividir um documento do Word

Em vez de separar cada página, você também pode dividir o documento do Word fornecendo um intervalo de páginas. A seguir estão as etapas para dividir um documento do Word usando o intervalo de páginas.

  • Primeiramente, carregue o documento do Word usando a classe Document.
  • Crie uma instância da classe DocumentPageSplitter e inicialize-a com o objeto Document da etapa anterior.
  • Recupere as páginas no intervalo necessário usando o método DocumentPageSplitter.GetDocumentOfPageRange(int32t pageIndex, int32t pageIndex).
  • Por último, salve o documento do Word usando o método Document->Save (System::String fileName).

Veja a seguir o código de exemplo para dividir um documento do Word usando o intervalo de páginas.

// Exemplo de documento do Word
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";

// Carregar o documento do Word
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);

// Criar e inicializar o divisor de página do documento
DocumentPageSplitter splitter = DocumentPageSplitter(document);

// Obter o intervalo de páginas
auto pageDoc = splitter.GetDocumentOfPageRange(2, 3);

// Caminho do arquivo de saída
System::String outputPath = u"OutputDirectory\\";

// Salvar como arquivo DOCX
pageDoc->Save(outputPath + u"SplitDocumentByPageRangeOut.docx");

Dividir documento do Word por seções usando C++

Os arquivos do Word podem conter uma ou mais seções que podem ter formatação diferente e podem consistir em qualquer número de páginas. Para adicionar uma nova seção no arquivo do Word, use a opção Layout>Quebras>Quebras de Seção. A seguir estão as etapas para dividir arquivos do Word por seções usando Aspose.Words para C++ API.

A seguir está o código de exemplo para dividir documentos do Word por seções.

// Exemplo de documento do Word
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";

// Carregar o documento do Word
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);

// Caminho do arquivo de saída
System::String outputPath = u"OutputDirectory\\";

for (int i = 0; i < document->get_Sections()->get_Count(); i++)
{
    // Dividir um documento em partes menores, neste caso dividido por seção
    auto section = document->get_Sections()->idx_get(i)->Clone();

    // Criar um novo documento
    auto newDoc = System::MakeObject<Aspose::Words::Document>();
    newDoc->get_Sections()->Clear();

    //Adicionar nova seção ao documento recém-criado
    auto newSection = System::StaticCast<Aspose::Words::Section>(newDoc->ImportNode(section, true));
    newDoc->get_Sections()->Add(newSection);

    // Salve cada seção como um documento separado
    newDoc->Save(outputPath + u"SplitDocumentBySectionsOut_" + System::Convert::ToString(i) + u".docx");
}

Obtenha uma licença gratuita

Você pode experimentar a API sem limitações de avaliação solicitando uma licença temporária gratuita.

Conclusão

Neste artigo, você aprendeu como dividir documentos do Word em vários arquivos usando C++. Você aprendeu como usar o Aspose.Words for C++ API para dividir documentos do Word por página, intervalo de páginas e seções. Você pode explorar a API em detalhes usando a documentação oficial. Se você tiver alguma dúvida, não hesite em nos contatar no fórum.

Veja também