USO DE IRONWORD

C# Print Word (Tutorial para desarrolladores)

Actualizado 30 de octubre, 2023
Compartir:

Bienvenido a este tutorial, en el que exploraremos cómo imprimir documentos de Word utilizando Microsoft Interop en una aplicación de consola C#. Esta guía para principiantes le guiará a través de los pasos necesarios para imprimir mediante programación documentos de Microsoft Word.

Requisitos previos

Antes de sumergirse en el código, es esencial tener algunas cosas preparadas:

Instalación de Microsoft Word: Asegúrese de tener Microsoft Word instalado en su sistema. Si no es así, dirígete al sitio web oficial de Microsoft de tu ordenador o a la tienda de aplicaciones para instalarlo.

Configuración de Visual Studio: Usted debe tener Visual Studio instalado con la capacidad de crear una aplicación de consola. Si es usted principiante, considere la posibilidad de descargar Comunidad de Visual Studio que es gratuito y suficiente para nuestras necesidades.

Un documento Word: Tenga preparado un documento Word de muestra en su máquina para realizar pruebas. Este será el documento que enviaremos a la imprenta.

Configuración del entorno

Crear una nueva aplicación de consola

  1. Abre Visual Studio.
  2. Haga clic en Crear un nuevo proyecto.
  3. Busque "Console App" y seleccione la plantilla C# adecuada.
  4. Nombre de su proyecto (por ejemplo, "InteropPrintConsoleTutorial".) y elige una ubicación adecuada.

Añadir referencia de interoperabilidad

El uso de Interop requiere una referencia a la biblioteca Microsoft Office Interop. A continuación te explicamos cómo añadirlo:

  1. En Visual Studio, haga clic con el botón derecho en su proyecto Console en el Explorador de soluciones.
  2. Vaya a Añadir > Referencia.
  3. En la ventana Gestor de referencias, vaya a la pestaña COM.
  4. Escriba "Microsoft Word" en la barra de búsqueda para filtrar la lista.
  5. En los resultados, seleccione Biblioteca de objetos de Microsoft Word xx.x (donde xx.x indica el número de versión).
  6. Haga clic en el botón Aceptar para añadir la referencia.

    También puede instalarlo mediante el gestor de paquetes NuGet.

    También puede instalar la biblioteca `Microsoft.Office.Interop.Word` mediante el gestor de paquetes NuGet.

Verificar la configuración de la aplicación

Asegúrese de que el framework de destino de su aplicación es compatible con la biblioteca Interop. Puede comprobarlo haciendo clic con el botón derecho del ratón sobre el proyecto en el Explorador de soluciones, seleccionando Propiedades y, a continuación, visualizando el marco de trabajo de destino en la pestaña Aplicación. Si tiene problemas con la versión de la biblioteca Interop, considere la posibilidad de descargar el paquete o ensamblado necesario o de ajustar la versión del framework de destino.

Una vez configurado el entorno, puede continuar con el proceso de codificación.

Comprender el objeto documento

El objeto documento es el núcleo de los servicios Interop cuando se trata de documentos Word. Este objeto representa un documento Microsoft Word y proporciona todas sus funcionalidades.

Una tarea habitual es abrir un documento:

object oMissing = Type.Missing;
object fileName = @"C:\path_to_document\document.docx";
Word._Document wordDoc = wordApp.Documents.Open(ref fileName, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
object oMissing = Type.Missing;
object fileName = @"C:\path_to_document\document.docx";
Word._Document wordDoc = wordApp.Documents.Open(ref fileName, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
Dim oMissing As Object = Type.Missing
Dim fileName As Object = "C:\path_to_document\document.docx"
Dim wordDoc As Word._Document = wordApp.Documents.Open(fileName, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing)
VB   C#

Los múltiples parámetros con ref oMissing pueden parecer desalentadores, pero son esenciales para el método Open, que espera numerosos argumentos, la mayoría de los cuales son opcionales.

Implementación de la función de impresión

Con nuestro entorno configurado y entendiendo el objeto documento, es hora de sumergirse en la funcionalidad principal de la impresión de documentos de Word.

Impresión básica de un documento Word

Para imprimir el documento, puede utilizar el siguiente método:

private void ButtonPrint_Click(object sender, EventArgs e)
{
    wordDoc.PrintOut();
}
private void ButtonPrint_Click(object sender, EventArgs e)
{
    wordDoc.PrintOut();
}
Private Sub ButtonPrint_Click(ByVal sender As Object, ByVal e As EventArgs)
	wordDoc.PrintOut()
End Sub
VB   C#

Este método envía el documento a la impresora predeterminada utilizando la configuración predeterminada.

3.2 Imprimir documentos Word con personalizaciones

Si desea introducir un cuadro de diálogo de impresión, personalizar la configuración de la impresora o incluso imprimir varias páginas, necesitará un enfoque más detallado:

private void ButtonPrintWithSettings_Click(object sender, EventArgs e)
{
    object copies = "1";
    object pages = "1-3"; //  Para imprimir varias páginas, por ejemplo, de 1 a 3.

    wordDoc.PrintOut(Copies: ref copies, Pages: ref pages);
}
private void ButtonPrintWithSettings_Click(object sender, EventArgs e)
{
    object copies = "1";
    object pages = "1-3"; //  Para imprimir varias páginas, por ejemplo, de 1 a 3.

    wordDoc.PrintOut(Copies: ref copies, Pages: ref pages);
}
Private Sub ButtonPrintWithSettings_Click(ByVal sender As Object, ByVal e As EventArgs)
	Dim copies As Object = "1"
	Dim pages As Object = "1-3" '  Para imprimir varias páginas, por ejemplo, de 1 a 3.

	wordDoc.PrintOut(Copies:= copies, Pages:= pages)
End Sub
VB   C#

En el código fuente anterior, especificamos el intervalo de páginas y el número de copias, pero las posibilidades de personalización son enormes.

Personalización de la configuración de impresión

La posibilidad de modificar los ajustes de impresión es lo que diferencia al control programático. Si desea ajustar la configuración de la impresora, definir una impresora específica o incluso imprimir el documento de forma silenciosa, todo está a su alcance con Interop.

Impresión silenciosa

La impresión silenciosa consiste en enviar el documento a la impresora sin ninguna interacción por parte del usuario:

object background = false;
wordDoc.PrintOut(Background: ref background);
object background = false;
wordDoc.PrintOut(Background: ref background);
Dim background As Object = False
wordDoc.PrintOut(Background:= background)
VB   C#

Especificación de una impresora

Para imprimir un documento en una impresora específica distinta de la predeterminada:

wordApp.ActivePrinter = "Printer Name";
wordDoc.PrintOut();
wordApp.ActivePrinter = "Printer Name";
wordDoc.PrintOut();
wordApp.ActivePrinter = "Printer Name"
wordDoc.PrintOut()
VB   C#

Configuración avanzada de la impresora

Además de especificar la impresora, puede ser necesario ajustar la configuración de la impresora:

PrintDialog printDialog = new PrintDialog();
if (printDialog.ShowDialog() == DialogResult.OK)
{
    wordApp.ActivePrinter = printDialog.PrinterSettings.PrinterName;
    wordDoc.PrintOut();
}
PrintDialog printDialog = new PrintDialog();
if (printDialog.ShowDialog() == DialogResult.OK)
{
    wordApp.ActivePrinter = printDialog.PrinterSettings.PrinterName;
    wordDoc.PrintOut();
}
Dim printDialog As New PrintDialog()
If printDialog.ShowDialog() = DialogResult.OK Then
	wordApp.ActivePrinter = printDialog.PrinterSettings.PrinterName
	wordDoc.PrintOut()
End If
VB   C#

De este modo, el usuario puede ajustar manualmente parámetros como la orientación, la impresión a doble cara, etc.

Presentación de IronWord

Aunque Microsoft Interop ofrece funciones para gestionar documentos de Word, no es todo lo robusto y eficaz que debería para un uso comercial serio. Entre en IronWord-una alternativa superior a Interop para el tratamiento de archivos DOCX de Word. IronWord permite leer, escribir y manipular archivos Excel en C# sin problemas. Más información cómo empezar con IronWord.

IronXL for .NET: La biblioteca de Excel en C

Conclusión

En este tutorial, hemos profundizado en los pasos necesarios para aprovechar Microsoft Interop para imprimir documentos de Word mediante programación en una aplicación de consola C#. Hemos visto cómo mostrar el cuadro de diálogo de impresión, establecer configuraciones de impresión personalizadas y controlar varios aspectos de la impresión, como elegir una impresora específica o definir un intervalo de páginas. Aunque Interop ofrece capacidades básicas, cabe señalar que existen alternativas potentes como IronWord.

< ANTERIOR
C# Abrir Documento Word

¿Listo para empezar? Versión: 2024.7 recién publicada

Descarga gratuita de NuGet Descargas totales: 3,031 Ver licencias >
123