USO DE IRONWORD

Tutorial de C# Print Word: Guía paso a paso

Regan Pun
Regan Pun
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 eres principiante, considera descargar Visual Studio Community, 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 su proyecto (por ejemplo, "InteropPrintConsoleTutorial") y elija una ubicación adecuada.

Agregar referencia de Interop ###

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. De los resultados, seleccione Microsoft Word xx.x Object Library (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 puedes instalar la biblioteca `Microsoft.Office.Interop.Word` usando el Administrador de Paquetes NuGet.

Verificar configuraciones 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 Document

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)
$vbLabelText   $csharpLabel

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 funcionalidad 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 documentos de 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
$vbLabelText   $csharpLabel

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

3.2 Imprimir documentos de 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"; // To print multiple pages, e.g., 1 to 3.

    wordDoc.PrintOut(Copies: ref copies, Pages: ref pages);
}
private void ButtonPrintWithSettings_Click(object sender, EventArgs e)
{
    object copies = "1";
    object pages = "1-3"; // To print multiple pages, e.g., 1 to 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" ' To print multiple pages, e.g., 1 to 3.

	wordDoc.PrintOut(Copies:= copies, Pages:= pages)
End Sub
$vbLabelText   $csharpLabel

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 Configuraciones 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)
$vbLabelText   $csharpLabel

Especificar 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()
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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

Presentamos 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. Ingresa a IronWord: una alternativa superior a Interop para el procesamiento de archivos DOCX de Word. IronWord permite leer, escribir y manipular archivos Excel en C# sin problemas. Aprende más sobre cómo comenzar con IronWord.

IronXL for .NET: La Biblioteca de Excel para 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 fundamentales, vale la pena señalar que hay alternativas potentes como IronWord.

Regan Pun
Ingeniero de software
Regan se licenció en Ingeniería Electrónica por la Universidad de Reading. Antes de incorporarse a Iron Software, sus anteriores puestos de trabajo le obligaban a centrarse en tareas concretas; lo que más le gusta de Iron Software es la variedad de tareas que puede realizar, ya sea añadiendo valor a las ventas, el soporte técnico, el desarrollo de productos o el marketing. Le gusta entender cómo utilizan los desarrolladores la biblioteca de Iron Software y utilizar ese conocimiento para mejorar continuamente la documentación y desarrollar los productos.
< ANTERIOR
C# Abrir Documento Word

¿Listo para empezar? Versión: 2025.4 acaba de salir

Ver licencias >