Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
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.
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 Studioque 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.
El uso de Interop requiere una referencia a la biblioteca Microsoft Office Interop. A continuación te explicamos cómo añadirlo:
Haga clic en el botón Aceptar para añadir la referencia.
También puede instalarlo mediante el gestor de paquetes NuGet.
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.
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)
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.
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.
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
Este método envía el documento a la impresora predeterminada utilizando la configuración predeterminada.
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);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
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.
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.
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)
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()
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
De este modo, el usuario puede ajustar manualmente parámetros como la orientación, la impresión a doble cara, etc.
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.
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.
9 productos API .NET para sus documentos de oficina