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
- Dividir documentos do Word por página usando C++
- Use o intervalo de páginas para dividir um documento do Word
- Dividir documento do Word por seções usando C++
- Obtenha uma licença gratuita
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.
- Carregue o arquivo do Word usando a classe Document.
- Recupere as seções do documento usando o método Document->getSections() e itere sobre elas.
- Clone a seção em um objeto Section usando o método Document->getSections()->idxget(int32t index)->Clone().
- Crie um novo documento do Word usando a classe Document.
- Adicione a seção clonada ao documento do Word recém-criado usando Document->getSections()->Add (System::SharedPtrAspose::Words::Node nó) método.
- Finalmente, salve o arquivo do Word usando o método Document->Save (System::String fileName).
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.