Dividir documentos de Word C++

MS Word es un formato popular para almacenar y compartir información. Puede haber escenarios en los que desee dividir un documento de Word en varios archivos. Por ejemplo, un documento puede contener diferentes secciones que deben compartirse con diferentes personas o contener información confidencial que debe separarse. En tales casos, dividir el documento de Word resulta útil. En este artículo, aprenderá cómo dividir documentos de MS Word usando C++.

API de C++ para dividir documentos de Word

Aspose.Words for C++ es una biblioteca nativa de C++ que le permite generar, cambiar y convertir documentos de Microsoft Word. Además, también admite la división de documentos de Word en varios archivos. Puede instalar la API a través de NuGet o descargarla directamente desde la sección Descargas.

PM> Install-Package Aspose.Words.Cpp

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

Los siguientes son los pasos para dividir archivos de Word usando C++.

  • Cargue el documento de Word utilizando la clase Document.
  • Cree una instancia de la clase DocumentPageSplitter e inicialícela con el objeto Document creado en el paso anterior.
  • Recorra las páginas del Document.
  • Extrae cada página con el método DocumentPageSplitter.GetDocumentOfPage(int32\t PageIndex).
  • Guarde los documentos utilizando el método Document->Save(System::String fileName).

El siguiente es el código de ejemplo para dividir un documento de Word por página.

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

// Cargue el documento de Word
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);

// Crear e inicializar el separador de páginas del documento
DocumentPageSplitter splitter = DocumentPageSplitter(document);

// Ruta del archivo de salida
System::String outputPath = u"OutputDirectory\\";

// Guarde cada página como un 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 el rango de páginas para dividir un documento de Word

En lugar de separar todas y cada una de las páginas, también puede dividir el documento de Word proporcionando un rango de páginas. Los siguientes son los pasos para dividir un documento de Word usando el rango de páginas.

  • En primer lugar, cargue el documento de Word utilizando la clase Document.
  • Cree una instancia de la clase DocumentPageSplitter e inicialícela con el objeto Document del paso anterior.
  • Recupere las páginas en el rango requerido usando el método DocumentPageSplitter.GetDocumentOfPageRange(int32\t pageIndex, int32\t pageIndex).
  • Por último, guarde el documento de Word utilizando el método Document->Save(System::String fileName).

El siguiente es el código de muestra para dividir un documento de Word usando el rango de páginas.

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

// Cargue el documento de Word
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);

// Crear e inicializar el separador de páginas del documento
DocumentPageSplitter splitter = DocumentPageSplitter(document);

// Obtener el rango de páginas
auto pageDoc = splitter.GetDocumentOfPageRange(2, 3);

// Ruta del archivo de salida
System::String outputPath = u"OutputDirectory\\";

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

Dividir documento de Word por secciones usando C++

Los archivos de Word pueden contener una o más secciones que pueden tener un formato diferente y pueden constar de cualquier número de páginas. Para agregar una nueva sección en el archivo de Word, use la opción Diseño>Saltos>Saltos de sección. Los siguientes son los pasos para dividir archivos de Word por secciones usando Aspose.Words for C++.

El siguiente es el código de ejemplo para dividir documentos de Word por secciones.

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

// Cargue el documento de Word
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);

// Ruta del archivo de salida
System::String outputPath = u"OutputDirectory\\";

for (int i = 0; i < document->get_Sections()->get_Count(); i++)
{
    // Divida un documento en partes más pequeñas, en este caso dividido por sección
    auto section = document->get_Sections()->idx_get(i)->Clone();

    // Crear un nuevo documento
    auto newDoc = System::MakeObject<Aspose::Words::Document>();
    newDoc->get_Sections()->Clear();

    //Agregar nueva sección al documento recién creado
    auto newSection = System::StaticCast<Aspose::Words::Section>(newDoc->ImportNode(section, true));
    newDoc->get_Sections()->Add(newSection);

    // Guarde cada sección como un documento separado
    newDoc->Save(outputPath + u"SplitDocumentBySectionsOut_" + System::Convert::ToString(i) + u".docx");
}

Obtenga una licencia gratis

Puede probar la API sin limitaciones de evaluación solicitando una licencia temporal gratuita.

Conclusión

En este artículo, ha aprendido a dividir documentos de Word en varios archivos usando C++. Aprendió a usar Aspose.Words for C++ para dividir documentos de Word por página, rango de páginas y secciones. Puede explorar la API en detalle utilizando la documentación oficial. Si tiene alguna pregunta, no dude en contactarnos en el foro.

Ver también