Dividir documentos de Word

Los documentos de MS Word se utilizan ampliamente para guardar y compartir información. En algunos casos, es posible que deba dividir los datos de un documento de Word que podría estar ubicado en diferentes secciones o páginas. Además, es posible que deba dividir las páginas de un solo documento en varios documentos. De acuerdo con tales escenarios, este artículo tiene como objetivo mostrarle cómo dividir documentos de MS Word mediante programación usando C#.

API de C# para dividir documentos de MS Word

Aspose.Words for .NET es una poderosa API de procesamiento de texto que le permite crear y manipular documentos de MS Word usando C# o VB.NET. Junto con eso, también le permite dividir documentos de MS Word por sección, página o rango de páginas. Puede descargar la API o instalarla dentro de su aplicación usando NuGet.

PM> Install-Package Aspose.Words

Dividir documentos de Word por sección usando C#

Las secciones se refieren a las partes de un documento donde se pueden aplicar diferentes formatos. Una sección puede estar compuesta por una sola página, un rango de páginas o el documento completo. Los saltos de sección se utilizan para dividir un documento en varias secciones. Los siguientes son los pasos para dividir un documento de Word en función de sus secciones utilizando Aspose.Words for .NET.

El siguiente ejemplo de código muestra cómo dividir documentos de MS Word por secciones usando C#.

// Abrir un documento de Word
Document doc = new Document("document.docx"); 

for (int i = 0; i < doc.Sections.Count; i++)
{
	// Divida un documento en partes más pequeñas, en este caso dividido por sección
	Section section = doc.Sections[i].Clone();

  // Crear un nuevo documento
	Document newDoc = new Document();
	newDoc.Sections.Clear();

	Section newSection = (Section)newDoc.ImportNode(section, true);
	newDoc.Sections.Add(newSection);

	// Guarde cada sección como un documento separado
	newDoc.Save($"splitted_{i}.docx");
}

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

Puede darse el caso de que un documento de Word contenga un tipo de información similar en cada página, como facturas o recibos. En tal caso, puede dividir las páginas del documento para guardar cada factura como un documento separado. Para dividir los documentos página por página, puede usar la clase auxiliar DocumentPageSplitter basada en Aspose.Words for .NET. Simplemente puede copiar la clase dentro de su proyecto y dividir los documentos de Word página por página siguiendo los pasos a continuación.

  • Cargue el documento de Word usando la clase Document.
  • Cree un objeto de la clase DocumentPageSplitter e inicialícelo con el objeto Document.
  • Iterar a través de las páginas del documento.
  • Extraiga cada página en un nuevo objeto Documento utilizando el método DocumentPageSplitter.GetDocumentOfPage(int PageIndex).
  • Guarde cada documento usando el método Document.Save(String).

El siguiente ejemplo de código muestra cómo dividir el documento de Word por páginas usando C#.

// Abrir un documento de Word
Document doc = new Document("Document.docx");

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

// Guarde cada página como un documento separado
for (int page = 1; page <= doc.PageCount; page++)
{
	Document pageDoc = splitter.GetDocumentOfPage(page);
	pageDoc.Save($"spliteed_{page}.docx");
}

Dividir documentos de Word por rango de páginas usando C#

También puede especificar un rango de páginas para dividirlo del documento original usando la clase DocumentPageSplitter. Por ejemplo, si necesita dividir las páginas de 2 a 4, simplemente especifique el índice de la página inicial y final en el método DocumentPageSplitter.GetDocumentOfPageRange(int StartIndex, int EndIndex).

El siguiente ejemplo de código muestra cómo dividir un rango de páginas de un documento de Word usando C#.

// Abrir un documento de Word
Document doc = new Document("document.docx");

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

// Obtener el rango de páginas
Document pageDoc = splitter.GetDocumentOfPageRange(3, 6);
pageDoc.Save("splitted.docx");

Conclusión

En este artículo, ha aprendido cómo dividir documentos de MS Word mediante programación usando C#. Los escenarios de dividir documentos de Word por secciones, páginas y rangos de páginas se han discutido junto con ejemplos de código. Puede explorar más sobre Aspose.Words for .NET utilizando la documentación.

Ver también