Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
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 entrar en el código paraconvertir .DOCX a PDF con C#Es fundamental contar con el entorno necesario. 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 deVisual Studio es necesario para crear, compilar y ejecutar el programa C#. Si aún no tiene Visual Studio, puede descargar la versión comunitaria, que es gratuita, desdeSitio 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 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#.
Ir a NuGet Package Manager > Manage NuGet Packages for Solution.
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 todo C#
La verdadera acción comienza dentro del método Main
. Primero creamos una nueva instancia de la aplicación Word utilizando 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 inicializada 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. Se especifica en la variable output path
. Es esencial tener en cuenta que la ruta debe ajustarse al lugar donde desea que resida el archivo PDF de salida convertido.
La magia de convertir el documento 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.
Tras la conversión, cerrar los recursos que hemos utilizado es una buena práctica. Así, wordDocument.Close()
asegura que el documento que abrimos está cerrado, mientras que wordApp.Quit()
asegura que la instancia de la aplicación Word que lanzamos en segundo plano se termina.
Por último, nuestro programa comunica el resultado al usuario con un simple mensaje de consola. El comando Console.WriteLine()El método
proporciona información, indicando que el proceso de conversión se ha ejecutado correctamente.
Así, 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 factible 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? Consulte su tutorial detallado encómo leer archivos 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 utilizar Interop. Además, puede utilizar la biblioteca IronXL para cargar su libro 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 al día con herramientas superiores comoIronXL que ofrece un mayor rendimiento y simplifica el proceso. Si estás pensando en probar IronXL, ofrecen unprueba gratuita. Una vez que haya experimentado su destreza, la licencia comienza a partir de un razonable $749, lo que proporciona valor a su inversión y garantiza un manejo fluido de los documentos en sus aplicaciones.
9 productos API .NET para sus documentos de oficina