Pruebe en producción sin marcas de agua.
Funciona donde lo necesite.
Obtén 30 días de producto totalmente funcional.
Ténlo en funcionamiento en minutos.
Acceso completo a nuestro equipo de asistencia técnica durante la prueba del producto
La conversión de documentos mediante programación se ha convertido en una función esencial en muchas aplicaciones. Especialmente en el mundo empresarial, convertir documentos de Word a archivos PDF es una tarea rutinaria. Afortunadamente, con C# y Microsoft Interop, puede convertir archivos Word a PDF sin problemas. Este tutorial discutirá el proceso de convertir Word a PDF mediante programación usando C#
Antes de sumergirse en el código para convertir .DOCX a PDF usando C#, es crucial asegurarse de tener el entorno necesario configurado. A continuación se indican los requisitos previos necesarios:
Asegúrese de tener instalado Microsoft Word en su ordenador. Los servicios Interop utilizarán las funciones integradas de Word para gestionar la conversión de documentos Word y PDF.
Una versión de Visual Studio es necesaria para crear, compilar y ejecutar el programa en C#. Si aún no tienes Visual Studio, puedes descargar la versión comunitaria, que es gratuita, desde el sitio web oficial de Microsoft.
Microsoft.Office.Interop.Word
Este paquete es esencial para proporcionar las funcionalidades necesarias para que su programa C# interactúe con documentos Word. Se instalará más tarde utilizando NuGet Package Manager, pero es bueno conocer su importancia en el proceso de conversión.
Prepare un documento de Word o un archivo .docx
que desee convertir. Asegúrese de conocer su ruta en su máquina, ya que tendrá que especificarla en el programa C#.
Asegúrese de que puede leer el archivo Word y escribir el archivo PDF resultante en el directorio deseado. Ejecutar Visual Studio como administrador a veces puede resolver problemas relacionados con los permisos.
Con estos requisitos previos, podrá configurar su entorno y convertir sus documentos Word en archivos PDF.
Abra su Visual Studio.
Cree una nueva aplicación de consola C#.
Vaya a NuGet Package Manager > Administrar paquetes NuGet para la solución.
Busca "Microsoft.Office.Interop.Word
" e instálalo. Este paquete permitirá a nuestra aplicación comunicarse con Word y convertir archivos Word.
Para convertir un documento Word a PDF utilizando C#, emplearemos las capacidades de los servicios Microsoft Interop. El siguiente fragmento de código cumple esta tarea, y a continuación se ofrece una explicación detallada.
using System;
using Word = Microsoft.Office.Interop.Word;
class Program
{
static void Main()
{
var wordApp = new Word.Application();
var wordDocument = wordApp.Documents.Open(@"path_to_your_word_file.docx");
var outputPath = @"path_where_you_want_to_save_pdf.pdf";
wordDocument.ExportAsFixedFormat(outputPath, Word.WdExportFormat.wdExportFormatPDF);
wordDocument.Close();
wordApp.Quit();
Console.WriteLine("Word document converted to PDF successfully!");
}
}
using System;
using Word = Microsoft.Office.Interop.Word;
class Program
{
static void Main()
{
var wordApp = new Word.Application();
var wordDocument = wordApp.Documents.Open(@"path_to_your_word_file.docx");
var outputPath = @"path_where_you_want_to_save_pdf.pdf";
wordDocument.ExportAsFixedFormat(outputPath, Word.WdExportFormat.wdExportFormatPDF);
wordDocument.Close();
wordApp.Quit();
Console.WriteLine("Word document converted to PDF successfully!");
}
}
Imports System
Imports Word = Microsoft.Office.Interop.Word
Friend Class Program
Shared Sub Main()
Dim wordApp = New Word.Application()
Dim wordDocument = wordApp.Documents.Open("path_to_your_word_file.docx")
Dim outputPath = "path_where_you_want_to_save_pdf.pdf"
wordDocument.ExportAsFixedFormat(outputPath, Word.WdExportFormat.wdExportFormatPDF)
wordDocument.Close()
wordApp.Quit()
Console.WriteLine("Word document converted to PDF successfully!")
End Sub
End Class
El principio de nuestro código incluye dos namespaces vitales. El espacio de nombres System
proporciona clases fundamentales para la programación en C#, y es un elemento básico en casi todos los programas de C#.
La acción real comienza dentro del método Main
. Primero creamos una nueva instancia de la aplicación Word usando new Word.Application()
. Este paso es similar al inicio de MS Word, pero todo sucede en segundo plano, sin que el usuario lo vea. Una vez que se inicializa la instancia de la aplicación, le indicamos que abra un documento de Word con el método wordApp.Documents.Open
. Es crucial especificar la ruta a su documento de Word en lugar de "ruta a su archivo de Word.docx".
Ahora, teniendo el documento abierto, determinamos dónde queremos que se guarde nuestro PDF. Esto se especifica en la variable output path
. Es esencial tener en cuenta que la ruta debe ajustarse al lugar donde desea que resida su archivo PDF convertido.
La magia de convertir el documento de Word a PDF ocurre con la línea wordDocument.ExportAsFixedFormat(...)
. Los servicios Interop proporcionan un método integrado que permite la conversión sin complicaciones. El método toma dos argumentos principales: la ruta donde debe guardarse el PDF y el formato de exportación, que en nuestro caso es PDF.
Después de la conversión, cerrar los recursos que hemos utilizado es una buena práctica. Por lo tanto, wordDocument.Close()
asegura que el documento que abrimos ahora esté cerrado, mientras que wordApp.Quit()
asegura que la instancia de la aplicación de Word que lanzamos en segundo plano se termine.
Por último, nuestro programa comunica el resultado al usuario con un simple mensaje de consola. El método Console.WriteLine()
proporciona retroalimentación, indicando que el proceso de conversión se ejecutó con éxito.
Por lo tanto, Microsoft.Office.Interop.Word
proporciona una solución adecuada para manejar y convertir documentos de Word.
Mientras que Microsoft.Office.Interop
proporciona una solución viable para la conversión de documentos, existe una alternativa más eficiente y robusta para trabajar con Excels: IronXL.
IronXL simplifica el proceso de manejo de archivos Excel en C#. No sólo supera a Interop en velocidad y facilidad de uso, sino que además no requiere instalaciones adicionales como Microsoft Office. ¿Quieres saber más? Consulta su tutorial detallado sobre cómo leer archivos de Excel usando C#.
La librería IronXL puede instalarse utilizando el siguiente comando en la consola de NuGet Package Manager:
Install-Package IronWord
using IronXL;
using System.IO;
// Import any XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Export the excel file as XLS, XLSX, XLSM, CSV, TSV, JSON, XML
workBook.SaveAs("sample.xls");
workBook.SaveAs("sample.xlsx");
workBook.SaveAs("sample.tsv");
workBook.SaveAsCsv("sample.csv");
workBook.SaveAsJson("sample.json");
workBook.SaveAsXml("sample.xml");
// Export the excel file as Html, Html string
workBook.ExportToHtml("sample.html");
string htmlString = workBook.ExportToHtmlString();
// Export the excel file as Binary, Byte array, Data set, Stream
byte [] binary = workBook.ToBinary();
byte [] byteArray = workBook.ToByteArray();
System.Data.DataSet dataSet = workBook.ToDataSet(); // Allow easy integration with DataGrids, SQL and EF
Stream stream = workBook.ToStream();
using IronXL;
using System.IO;
// Import any XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Export the excel file as XLS, XLSX, XLSM, CSV, TSV, JSON, XML
workBook.SaveAs("sample.xls");
workBook.SaveAs("sample.xlsx");
workBook.SaveAs("sample.tsv");
workBook.SaveAsCsv("sample.csv");
workBook.SaveAsJson("sample.json");
workBook.SaveAsXml("sample.xml");
// Export the excel file as Html, Html string
workBook.ExportToHtml("sample.html");
string htmlString = workBook.ExportToHtmlString();
// Export the excel file as Binary, Byte array, Data set, Stream
byte [] binary = workBook.ToBinary();
byte [] byteArray = workBook.ToByteArray();
System.Data.DataSet dataSet = workBook.ToDataSet(); // Allow easy integration with DataGrids, SQL and EF
Stream stream = workBook.ToStream();
Imports IronXL
Imports System.IO
' Import any XLSX, XLS, XLSM, XLTX, CSV and TSV
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
' Export the excel file as XLS, XLSX, XLSM, CSV, TSV, JSON, XML
workBook.SaveAs("sample.xls")
workBook.SaveAs("sample.xlsx")
workBook.SaveAs("sample.tsv")
workBook.SaveAsCsv("sample.csv")
workBook.SaveAsJson("sample.json")
workBook.SaveAsXml("sample.xml")
' Export the excel file as Html, Html string
workBook.ExportToHtml("sample.html")
Dim htmlString As String = workBook.ExportToHtmlString()
' Export the excel file as Binary, Byte array, Data set, Stream
Dim binary() As Byte = workBook.ToBinary()
Dim byteArray() As Byte = workBook.ToByteArray()
Dim dataSet As System.Data.DataSet = workBook.ToDataSet() ' Allow easy integration with DataGrids, SQL and EF
Dim stream As Stream = workBook.ToStream()
Como se muestra en el código de ejemplo anterior, la biblioteca IronXL ayuda a leer archivos de Excel sin usar Interop. Además, puedes usar la biblioteca IronXL para cargar tu libro de trabajo y exportarlo con el método SaveAs
a diferentes formatos como XLS, XLSX, XLSM, CSV, TSV, JSON, XML. También permite exportar tipos de datos como cadenas HTML, binarios, matrices de bytes, conjuntos de datos y flujos de memoria directamente en el código.
En la era digital actual, las conversiones de documentos, especialmente de documentos Word a PDF, se han vuelto indispensables para muchas aplicaciones. Esto se puede conseguir utilizando C# y las posibilidades que ofrece Microsoft Interop.
Sin embargo, mantenerse actualizado con herramientas superiores como IronXL es esencial, ya que ofrece un rendimiento mejorado y simplifica el proceso. Si estás considerando probar IronXL, ofrecen una prueba gratuita. Una vez que hayas experimentado su potencia, la licencia comienza desde un razonable $749, proporcionando valor para tu inversión y garantizando un manejo fluido de documentos en tus aplicaciones.