Saltar al pie de página
USANDO IRONWORD

Cómo Convertir Word a PDF en C#

Convertir documentos programáticamente se ha convertido en una característica 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, puedes convertir sin problemas archivos de Word a PDF. Este tutorial discutirá el proceso de convertir Word a PDF programáticamente usando C#.

Requisitos previos

Antes de profundizar en el código para convertir .DOCX a PDF usando C#, asegurar que tienes el entorno necesario configurado es crucial. Requisitos previos necesarios:

Instalación de Microsoft Word

Asegúrate de tener Microsoft Word instalado en tu computadora. El servicio de Interop usará las capacidades integradas de Word para manejar el documento Word y la conversión a PDF.

Estudio Visual

Una versión de Visual Studio es necesaria para crear, compilar y ejecutar el programa C#. Si aún no tienes Visual Studio, puedes descargar la versión comunitaria, que es gratuita, desde el sitio web oficial de Microsoft.

Instalar el paquete Microsoft.Office.Interop.Word

Este paquete es esencial para proporcionar las funcionalidades necesarias para que tu programa en C# interactúe con documentos de Word. Se instalará más tarde usando el Administrador de Paquetes NuGet, pero es bueno saber su importancia en el proceso de conversión.

Documento de Word para conversión

Prepara un documento de Word o un archivo .docx que desees convertir. Asegúrate de conocer su ruta en tu máquina, ya que necesitarás especificarlo en el programa C#.

Permisos suficientes

Asegúrate de poder leer el archivo de Word y escribir el archivo PDF resultante en el directorio deseado. Ejecutar Visual Studio como administrador a veces puede resolver problemas relacionados con permisos.

Con estos requisitos previos, puedes configurar tu entorno y convertir tus documentos de Word a archivos PDF.

Configuración del entorno

  1. Abre tu Visual Studio.
  2. Crea una nueva Aplicación de Consola C#.
  3. Ve a Administrador de Paquetes NuGet > Administrar Paquetes NuGet para la Solución.
  4. Busca "Microsoft.Office.Interop.Word" e instálalo. Este paquete permitirá que nuestra aplicación se comunique con Word y convierta archivos de Word.

Cómo Convertir Word a PDF en C#: Figura 1 - Abre Visual Studio y crea un nuevo proyecto de Consola de App. Ve al Administrador de Paquetes NuGet para la Solución. Busca Microsoft.Office.Interop.Word e instálalo. Este paquete ayudará a nuestra aplicación de consola a interactuar con Word y también a convertir archivos de Word.

Código de ejemplo para convertir un documento de Word a PDF

Para convertir un documento de Word a PDF usando C#, emplearemos las capacidades de los servicios de Microsoft Interop. El siguiente fragmento de código logra esta tarea, y sigue una explicación detallada.

using System;
using Word = Microsoft.Office.Interop.Word;

class Program
{
    static void Main()
    {
        // Create an instance of Microsoft Word application
        var wordApp = new Word.Application();

        // Open the Word document
        var wordDocument = wordApp.Documents.Open(@"path_to_your_word_file.docx");

        // Specify the path where the PDF should be saved
        var outputPath = @"path_where_you_want_to_save_pdf.pdf";

        // Convert the Word document to PDF
        wordDocument.ExportAsFixedFormat(outputPath, Word.WdExportFormat.wdExportFormatPDF);

        // Close the Word document and quit the Word application
        wordDocument.Close();
        wordApp.Quit();

        // Output a success message
        Console.WriteLine("Word document converted to PDF successfully!");
    }
}
using System;
using Word = Microsoft.Office.Interop.Word;

class Program
{
    static void Main()
    {
        // Create an instance of Microsoft Word application
        var wordApp = new Word.Application();

        // Open the Word document
        var wordDocument = wordApp.Documents.Open(@"path_to_your_word_file.docx");

        // Specify the path where the PDF should be saved
        var outputPath = @"path_where_you_want_to_save_pdf.pdf";

        // Convert the Word document to PDF
        wordDocument.ExportAsFixedFormat(outputPath, Word.WdExportFormat.wdExportFormatPDF);

        // Close the Word document and quit the Word application
        wordDocument.Close();
        wordApp.Quit();

        // Output a success message
        Console.WriteLine("Word document converted to PDF successfully!");
    }
}
Imports System
Imports Word = Microsoft.Office.Interop.Word

Friend Class Program
	Shared Sub Main()
		' Create an instance of Microsoft Word application
		Dim wordApp = New Word.Application()

		' Open the Word document
		Dim wordDocument = wordApp.Documents.Open("path_to_your_word_file.docx")

		' Specify the path where the PDF should be saved
		Dim outputPath = "path_where_you_want_to_save_pdf.pdf"

		' Convert the Word document to PDF
		wordDocument.ExportAsFixedFormat(outputPath, Word.WdExportFormat.wdExportFormatPDF)

		' Close the Word document and quit the Word application
		wordDocument.Close()
		wordApp.Quit()

		' Output a success message
		Console.WriteLine("Word document converted to PDF successfully!")
	End Sub
End Class
$vbLabelText   $csharpLabel

Explicación del código

El principio de nuestro código incluye un alias esencial de espacio de nombres Word para referirse fácilmente al espacio de nombres Microsoft.Office.Interop.Word. El espacio de nombres System proporciona clases fundamentales para la programación en C# y es un elemento básico en casi todas las aplicaciones de C#.

La verdadera acción comienza dentro del método Main. Primero, creamos una nueva instancia de la aplicación de Word usando new Word.Application(). Este paso es similar a iniciar MS Word, pero todo ocurre en segundo plano, no visto por el usuario. Una vez que la instancia de la aplicación está inicializada, le indicamos que abra un documento de Word con el método wordApp.Documents.Open. Es fundamental especificar la ruta a tu documento de Word en lugar de "path_to_your_word_file.docx".

Ahora, con el documento abierto, determinamos dónde queremos que se guarde nuestro PDF. Esto se especifica en la variable outputPath. Es fundamental notar que la ruta debe ajustarse a donde te gustaría que residiera tu archivo de salida PDF convertido.

La magia de convertir el documento de Word a PDF ocurre con la línea wordDocument.ExportAsFixedFormat(...). Los servicios de Interop proporcionan un método incorporado, permitiendo la conversión sin complicaciones. El método toma dos argumentos principales: la ruta donde se debe guardar 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 buena práctica. Así, 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 esté terminada.

Finalmente, nuestro programa comunica el resultado al usuario con un simple mensaje de consola. El método Console.WriteLine() proporciona retroalimentación, señalando que el proceso de conversión se ejecutó exitosamente.

Así, Microsoft.Office.Interop.Word proporciona una solución adecuada para manejar y convertir documentos de Word.

Word a PDF C# usando IronPDF y IronWord

Si estás construyendo una aplicación .NET que implica automatización de documentos, una tarea común que enfrentarás es convertir documentos de Word a formato PDF. Ya sea que estés trabajando con plantillas de documentos .docx, facturas, informes o contratos, convertir archivos DOCX a PDF asegura un formato consistente, una entrega segura y compatibilidad entre plataformas.

Este artículo explica cómo convertir fácilmente Word a PDF usando dos potentes herramientas de Iron Software: IronPDF y IronWord. Aprenderás cómo difieren, cuándo usar cada herramienta, y cómo implementarlas en C# para una generación de Word a PDF rápida y confiable.

¿Por qué convertir Word a PDF en .NET?

Antes de sumergirnos en cómo puedes usar estas bibliotecas para lograr esta tarea, primero echemos un vistazo a por qué exactamente convertir tus documentos de Word a PDF puede elevar tu espacio de trabajo y documentos.

Entonces, ¿por qué deberías convertir archivos DOCX a formato PDF?

  • Asegura consistencia visual a través de varias plataformas
  • Bloquea el formato y previene ediciones no intencionadas
  • Es ideal para archivar documentos legales o financieros
  • Facilita la impresión y el compartir de tus archivos
  • A menudo es el formato requerido para muchos flujos de trabajo empresariales

Descripción general de las herramientas: IronPDF y IronWord

Palabra de hierro

IronWord

IronWord es una biblioteca .NET construida para leer y editar documentos de Word. Con IronWord, puedes cargar documentos .docx directamente editarlos para ajustarlos a tus necesidades, sin necesidad de Microsoft Office Interop o instalaciones de Microsoft Word, antes de usar IronPDF para manejar la conversión de DOCX a PDF.

Echemos ahora un vistazo a IronWord en acción, creando un nuevo objeto de documento y agregando texto a él:

using IronWord;
using IronWord.Models;
using IronWord.Models.Abstract;

WordDocument doc = new WordDocument();

TextContent text = new TextContent("This is some example text.");
text.Style = new TextStyle()
{
    Color = Color.Red,
    TextFont = new Font()
    {
        FontFamily = "Roboto",
        FontSize = 72,
    }
};
doc.AddText(text);
doc.Save("example.docx");
using IronWord;
using IronWord.Models;
using IronWord.Models.Abstract;

WordDocument doc = new WordDocument();

TextContent text = new TextContent("This is some example text.");
text.Style = new TextStyle()
{
    Color = Color.Red,
    TextFont = new Font()
    {
        FontFamily = "Roboto",
        FontSize = 72,
    }
};
doc.AddText(text);
doc.Save("example.docx");
Imports IronWord
Imports IronWord.Models
Imports IronWord.Models.Abstract

Private doc As New WordDocument()

Private text As New TextContent("This is some example text.")
text.Style = New TextStyle() With {
	.Color = Color.Red,
	.TextFont = New Font() With {
		.FontFamily = "Roboto",
		.FontSize = 72
	}
}
doc.AddText(text)
doc.Save("example.docx")
$vbLabelText   $csharpLabel

Documento de Word de salida

![Word de salida

HierroPDF

IronPDF

IronPDF es una biblioteca PDF completa de .NET, repleta de herramientas para la generación y manipulación de PDF. Aunque una de sus características más destacadas es su capacidad de conversión HTML a PDF de alta calidad, también es capaz de manejar tareas de conversión de Word a PDF C#. Para desarrolladores .NET que buscan generar PDFs o editar documentos PDF existentes, IronPDF te cubre todas tus necesidades.

¿Cuán fácil es usar IronPDF? Echemos un vistazo al siguiente ejemplo de código para ver cómo funciona al convertir documentos de Word a PDF:

using IronPdf;

var renderer = new DocxToPdfRenderer();
var pdf = renderer.RenderDocxAsPdf("sample.docx");
pdf.SaveAs("example.pdf");
using IronPdf;

var renderer = new DocxToPdfRenderer();
var pdf = renderer.RenderDocxAsPdf("sample.docx");
pdf.SaveAs("example.pdf");
Imports IronPdf

Private renderer = New DocxToPdfRenderer()
Private pdf = renderer.RenderDocxAsPdf("sample.docx")
pdf.SaveAs("example.pdf")
$vbLabelText   $csharpLabel

Salida de PDF

![PDF de salida

Flujo de trabajo combinado: IronWord y IronPDF

Mientras que IronWord no puede exportar directamente a PDF, es perfecto para preparar documentos de Word programáticamente. Aquí tienes un flujo común:

Canalización de Word a PDF en C

  1. Cargar o crear un documento de Word con IronWord
  2. Editar o llenar con datos dinámicos (por ejemplo, reemplazar tokens)
  3. Guardar el archivo .docx
  4. Usar IronPDF para convertir el documento a formato PDF
  5. Después, puedes usar IronPDF para hacer cualquier ajuste adicional al PDF recién renderizado, como agregar marcas de agua o anotaciones

Este flujo de trabajo híbrido ofrece máxima flexibilidad con mínimo dependencia, ideal para aplicaciones web, servicios en la nube y aplicaciones de escritorio por igual.

¿Cómo se ve esto en acción?

Uso de IronWord para la creación de documentos

Primero usaremos IronWord para crear un documento de Word de ejemplo.

using IronWord;
using IronWord.Models;
using IronWord.Models.Abstract;

WordDocument doc = new WordDocument();

TextContent title = new TextContent("Example Report.");
TextContent text = new TextContent("Report created using IronWord, you can use this to create dynamic text and tables.");
title.Style = new TextStyle()
{
    TextFont = new Font()
    {
        FontSize = 72
    },
    IsBold = true,
};

Paragraph paragraph = new Paragraph();
paragraph.AddText(title);
paragraph.AddText(text);

doc.AddParagraph(paragraph);
doc.Save("example.docx");
using IronWord;
using IronWord.Models;
using IronWord.Models.Abstract;

WordDocument doc = new WordDocument();

TextContent title = new TextContent("Example Report.");
TextContent text = new TextContent("Report created using IronWord, you can use this to create dynamic text and tables.");
title.Style = new TextStyle()
{
    TextFont = new Font()
    {
        FontSize = 72
    },
    IsBold = true,
};

Paragraph paragraph = new Paragraph();
paragraph.AddText(title);
paragraph.AddText(text);

doc.AddParagraph(paragraph);
doc.Save("example.docx");
Imports IronWord
Imports IronWord.Models
Imports IronWord.Models.Abstract

Private doc As New WordDocument()

Private title As New TextContent("Example Report.")
Private text As New TextContent("Report created using IronWord, you can use this to create dynamic text and tables.")
title.Style = New TextStyle() With {
	.TextFont = New Font() With {.FontSize = 72},
	.IsBold = True
}

Dim paragraph As New Paragraph()
paragraph.AddText(title)
paragraph.AddText(text)

doc.AddParagraph(paragraph)
doc.Save("example.docx")
$vbLabelText   $csharpLabel

Output

![Documento de Word de salida

Uso de IronPDF para la conversión de Word a PDF en C

En solo 3 líneas de código, seremos capaces de convertir fácilmente nuestro documento de Word a PDF.

using IronPdf;

var renderer = new DocxToPdfRenderer();

var pdf = renderer.RenderDocxAsPdf("example.docx");

pdf.SaveAs("output.pdf");
using IronPdf;

var renderer = new DocxToPdfRenderer();

var pdf = renderer.RenderDocxAsPdf("example.docx");

pdf.SaveAs("output.pdf");
Imports IronPdf

Private renderer = New DocxToPdfRenderer()

Private pdf = renderer.RenderDocxAsPdf("example.docx")

pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

Output

![PDF de Salida

Así de simple, pudimos crear un documento de Word personalizado con IronWord, antes de implementar IronPDF para convertirlo a formato PDF en solo unas pocas líneas de código.

Listo para implementar: funciona en todas partes

Tanto IronPDF e IronWord funcionan en:

  • ASP.NET Core y Blazor
  • Servicios de Aplicaciones Azure y Funciones Azure
  • Compatible con el marco .NET, .NET 6, 7, 8, 9 y .NET Core
  • Fácilmente integrado en ambientes Linux, Docker y de servidor
  • Escritorio (WPF/WinForms) y aplicaciones de consola

No se requiere instalación de Office. No hay interop COM. Solo bibliotecas .NET limpias y modernas.

Casos de uso comunes

Use Case IronWord IronPDF
Carga/edita archivos .docx No
Reemplaza texto/tokens en Word No
Guarda documentos .docx No
Convierte HTML a PDF No Yes
Genera salida PDF final No Yes
Renderizado del lado del servidor

Consejo profesional: Cómo usar Razor Views para generar documentos PDF con formato Word

Incluso si no estás usando IronWord, IronPDF admite plantillas Razor directamente. Puedes usar Páginas Razor para crear diseños estilizados como Word con CSS, luego renderizar a PDF:

@model InvoiceModel

<html>
  <body>
    <h1>Invoice for @Model.CustomerName</h1>
    <p>Amount Due: @Model.TotalAmount</p>
  </body>
</html>
@model InvoiceModel

<html>
  <body>
    <h1>Invoice for @Model.CustomerName</h1>
    <p>Amount Due: @Model.TotalAmount</p>
  </body>
</html>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'@model InvoiceModel <html> <body> <h1> Invoice for @Model.CustomerName</h1> <p> Amount Due: @Model.TotalAmount</p> </body> </html>
$vbLabelText   $csharpLabel

IronPDF puede renderizar eso en un PDF pulido, listo para imprimir.

Resumen: Descubra todo el poder de Word a PDF en .NET

Incluyendo IronPDF y IronWord en tus proyectos .NET, obtienes un flujo de trabajo poderoso y libre de Office para manejar documentos en .NET. Crea documentos de Word dinámicos con estilo y tablas personalizados, o convierte tus documentos en archivos PDF de calidad impecable. No importa la tarea, con estas bibliotecas siempre tendrás herramientas poderosas para manejar tareas de Word y PDF a tu alcance.

Esta combinación es perfecta para generar facturas, reportes, contratos y cualquier documento que comience en Word pero necesite terminar en un formato PDF seguro y consistente.

Ya sea que estés construyendo software de escritorio o desplegando en Azure, IronWord e IronPDF te dan un control total sobre la automatización de documentos - rápido, fiable y listo para producción. Si quieres ver más de estas bibliotecas en acción, asegúrate de revisar su documentación, donde puedes encontrar muchos ejemplos de código para ambos IronPDF y IronWord para aprender más sobre sus características y cómo funcionan.

Empieza hoy

Instala ambas bibliotecas a través del Administrador de Paquetes NuGet para implementarlas rápidamente dentro de tus proyectos en Visual Studio. ¿Quiere probar antes de comprar? Descarga la prueba gratuita de IronPDF y IronWord hoy y comienza a crear documentos poderosos de inmediato.

Preguntas Frecuentes

¿Cómo puedo convertir un documento de Word a PDF usando C#?

Puedes usar el paquete Microsoft.Office.Interop.Word para convertir documentos de Word a PDF en C#. Esto involucra crear una instancia de la aplicación Word, cargar el documento y usar el método ExportAsFixedFormat para guardarlo como un PDF.

¿Cuál es el papel del método ExportAsFixedFormat en la conversión de Word a PDF?

El método ExportAsFixedFormat en Microsoft.Office.Interop.Word se usa para exportar un documento de Word como un archivo PDF, proporcionando un formato fijo que es adecuado para compartir e imprimir.

¿Cuáles son los requisitos previos para convertir documentos de Word a PDF en C#?

Para convertir documentos de Word a PDF en C#, necesitas tener Microsoft Word instalado, Visual Studio y el paquete Microsoft.Office.Interop.Word disponible a través del Administrador de Paquetes NuGet.

¿Por qué es importante cerrar la aplicación de Word después de la conversión?

Cerrar la aplicación de Word después de la conversión es esencial para liberar recursos del sistema y evitar fugas de memoria. Asegura que la aplicación no permanezca abierta en segundo plano, consumiendo recursos innecesarios.

¿Cuál es una alternativa más eficiente para manejar archivos Excel que Microsoft Interop?

IronXL es una alternativa más eficiente para manejar archivos Excel en C#. No requiere que Microsoft Office esté instalado y proporciona un rendimiento más rápido con una amplia gama de formatos de archivo soportados.

¿Cómo instalo la biblioteca IronXL para usarla en mi aplicación C#?

Para instalar IronXL en tu aplicación C#, usa la consola del Administrador de Paquetes NuGet y ejecuta el comando Install-Package IronXL.Excel.

¿Qué formatos de archivo puede manejar IronXL al trabajar con archivos Excel?

IronXL puede convertir y manejar archivos Excel en varios formatos, incluidos XLS, XLSX, XLSM, CSV, TSV, JSON, XML, HTML, así como matrices binarias y de bytes.

¿Cuáles son las ventajas de usar IronXL sobre los servicios Microsoft Interop?

IronXL ofrece ventajas tales como no requerir la instalación de Microsoft Office, velocidades de procesamiento más rápidas, facilidad de uso y soporte para una gama más amplia de formatos de archivo en comparación con los servicios Microsoft Interop.

Jordi Bardia
Ingeniero de Software
Jordi es más competente en Python, C# y C++. Cuando no está aprovechando sus habilidades en Iron Software, está programando juegos. Compartiendo responsabilidades para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más