Cómo Guardar un Archivo PDF en C# (Tutorial para Principiantes)
Este artículo explorará cómo usar IronPDF para guardar archivos PDF desde una aplicación de Windows Forms o cualquier aplicación .NET.
La biblioteca IronPDF es una biblioteca .NET que ofrece clases y métodos fáciles de usar para generar y trabajar con archivos PDF en aplicaciones C#. Permite a los desarrolladores crear, modificar y guardar archivos PDF con solo unas pocas líneas de código, siendo una excelente opción para aplicaciones Windows Forms.
Paso 1: Crear una nueva aplicación Windows Forms
Primero, crea un nuevo proyecto de Visual Studio. Aquí están los pasos para crear una nueva aplicación de Windows Forms en C# en Visual Studio 2022
- Abre Visual Studio 2022 como se muestra a continuación.
Visual Studio 2022
- Haz clic en "Crear un nuevo proyecto" en la página de inicio o ve a "Archivo" > "Nuevo" > "Proyecto".
- En el cuadro de diálogo "Crear un nuevo proyecto", selecciona "Windows Forms App" o "Windows Forms App (.NET Framework)" bajo "Crear un nuevo proyecto" como se muestra a continuación.
Nueva aplicación de Forms
- Introduce un nombre para tu proyecto y elige una ubicación para guardarlo.
Ubicación del proyecto
- Elige .NET Framework. Selecciona .NET 7.0 del menú desplegable.
- Haz clic en el botón Crear.
Información adicional
- Visual Studio creará un nuevo proyecto de aplicación Windows Forms en C# para ti, con un formulario por defecto llamado "Form1" agregado al proyecto como se muestra a continuación.
Proyecto Form1
using IronPdf; Ahora comenzaremos a construir la aplicación Windows Forms usando el diseñador, añadiendo controles y funcionalidades para crear y guardar un archivo de documento PDF.
Paso 2: Diseñar el formulario
Puedes diseñar el formulario según tus preferencias. Este tutorial hará un diseño minimalista añadiendo dos etiquetas, un cuadro de texto enriquecido y dos botones.
Añadiendo botones al formulario
Paso 3: Instalar IronPDF
El siguiente paso es instalar IronPDF en este proyecto para usar sus ricas funcionalidades.
IronPDF se puede instalar utilizando el Administrador de Paquetes NuGet en Visual Studio. Puedes navegar a la Consola del Administrador de Paquetes NuGet yendo a Herramientas > Administrador de paquetes NuGet > Consola del Administrador de Paquetes.
Escribe el siguiente comando y presiona Enter:
Install-Package IronPdf
Este comando descargará e instalará el paquete IronPDF en tu proyecto. Una vez instalado, podemos empezar a usar IronPDF.
Escribir código para crear y guardar archivos PDF
Para comenzar con el flujo, escribe dos métodos: Save_Click y getFilePath en la clase Form1.cs. Estos métodos se utilizan juntos para guardar el contenido de un cuadro de texto como un archivo PDF usando la biblioteca de la Clase ChromePdfRenderer. Vamos a recorrer cada método para entender cómo funciona.
Método Save_Click (Crear documento PDF)
El siguiente método es un controlador de eventos para un evento de clic en un botón. El propósito de este método es guardar el contenido de un cuadro de texto como un archivo PDF.
private void Save_Click(object sender, EventArgs e)
{
// Get the file path to save the PDF file.
string filename = getFilePath();
// If the file path is not empty or null, proceed with saving the PDF file.
if (!String.IsNullOrEmpty(filename))
{
// Create a new instance of the ChromePdfRenderer class.
var renderer = new ChromePdfRenderer();
// Render the file contents of the text box as a PDF document using the ChromePdfRenderer.
var pdfDocument = renderer.RenderHtmlAsPdf(pdfContent.Text);
// Save the PDF document to the specified file path using the SaveAs method.
pdfDocument.SaveAs(filename);
// Show a message box to indicate that the PDF file has been saved successfully.
MessageBox.Show("PDF has been saved Successfully!");
}
}private void Save_Click(object sender, EventArgs e)
{
// Get the file path to save the PDF file.
string filename = getFilePath();
// If the file path is not empty or null, proceed with saving the PDF file.
if (!String.IsNullOrEmpty(filename))
{
// Create a new instance of the ChromePdfRenderer class.
var renderer = new ChromePdfRenderer();
// Render the file contents of the text box as a PDF document using the ChromePdfRenderer.
var pdfDocument = renderer.RenderHtmlAsPdf(pdfContent.Text);
// Save the PDF document to the specified file path using the SaveAs method.
pdfDocument.SaveAs(filename);
// Show a message box to indicate that the PDF file has been saved successfully.
MessageBox.Show("PDF has been saved Successfully!");
}
}Private Sub Save_Click(ByVal sender As Object, ByVal e As EventArgs)
' Get the file path to save the PDF file.
Dim filename As String = getFilePath()
' If the file path is not empty or null, proceed with saving the PDF file.
If Not String.IsNullOrEmpty(filename) Then
' Create a new instance of the ChromePdfRenderer class.
Dim renderer = New ChromePdfRenderer()
' Render the file contents of the text box as a PDF document using the ChromePdfRenderer.
Dim pdfDocument = renderer.RenderHtmlAsPdf(pdfContent.Text)
' Save the PDF document to the specified file path using the SaveAs method.
pdfDocument.SaveAs(filename)
' Show a message box to indicate that the PDF file has been saved successfully.
MessageBox.Show("PDF has been saved Successfully!")
End If
End SubAquí hay un desglose paso a paso de lo que hace este método:
- El método llama al método
getFilePathpara obtener la ruta del archivo donde se guardará el archivo PDF. - Si la ruta del archivo no está vacía o es nula, el método procede a guardar el archivo PDF.
- El método crea una nueva instancia de la clase
ChromePdfRenderer. Esta es una biblioteca que proporciona una forma de convertir contenido HTML en documentos PDF utilizando el motor del navegador Google Chrome. - El método luego usa el Método RenderHtmlAsPdf de la clase
ChromePdfRendererpara convertir el contenido HTML del cuadro de textopdfContenten un documento PDF. Este documento PDF se asigna a la Variable PdfDocument. - El método guarda el documento PDF en la ruta de archivo especificada utilizando el Método SaveAs de la clase
PdfDocument. - Finalmente, el método muestra un cuadro de mensaje para indicar que el archivo PDF se ha guardado exitosamente.
MétodogetFilePath (Guardar archivos PDF)
Este método se utiliza para mostrar un SaveFileDialog al usuario para seleccionar una ruta de archivo donde se guardará el archivo PDF.
public string getFilePath()
{
// Create a new instance of the SaveFileDialog class.
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
// Set the initial directory where the SaveFileDialog will open.
saveFileDialog1.InitialDirectory = @"D:\";
// Set the title of the SaveFileDialog.
saveFileDialog1.Title = "Save the PDF Files";
// Set the SaveFileDialog to check if the specified path exists.
saveFileDialog1.CheckPathExists = true;
// Set the default extension for the file type.
saveFileDialog1.DefaultExt = ".pdf";
// Set the filter to display only PDF files or all files.
saveFileDialog1.Filter = "PDF files (*.pdf)|*.pdf|All files (*.*)|*.*";
// Set the filter index to display the PDF filter as the default.
saveFileDialog1.FilterIndex = 2;
// Set the RestoreDirectory property to true so that the SaveFileDialog
// restores the current directory before closing.
saveFileDialog1.RestoreDirectory = true;
// Show the SaveFileDialog and get the result.
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
// If the user clicked the OK button in the SaveFileDialog, return the selected file path.
return saveFileDialog1.FileName;
}
// If the user did not click the OK button, return an empty string.
return String.Empty;
}public string getFilePath()
{
// Create a new instance of the SaveFileDialog class.
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
// Set the initial directory where the SaveFileDialog will open.
saveFileDialog1.InitialDirectory = @"D:\";
// Set the title of the SaveFileDialog.
saveFileDialog1.Title = "Save the PDF Files";
// Set the SaveFileDialog to check if the specified path exists.
saveFileDialog1.CheckPathExists = true;
// Set the default extension for the file type.
saveFileDialog1.DefaultExt = ".pdf";
// Set the filter to display only PDF files or all files.
saveFileDialog1.Filter = "PDF files (*.pdf)|*.pdf|All files (*.*)|*.*";
// Set the filter index to display the PDF filter as the default.
saveFileDialog1.FilterIndex = 2;
// Set the RestoreDirectory property to true so that the SaveFileDialog
// restores the current directory before closing.
saveFileDialog1.RestoreDirectory = true;
// Show the SaveFileDialog and get the result.
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
// If the user clicked the OK button in the SaveFileDialog, return the selected file path.
return saveFileDialog1.FileName;
}
// If the user did not click the OK button, return an empty string.
return String.Empty;
}Public Function getFilePath() As String
' Create a new instance of the SaveFileDialog class.
Dim saveFileDialog1 As New SaveFileDialog()
' Set the initial directory where the SaveFileDialog will open.
saveFileDialog1.InitialDirectory = "D:\"
' Set the title of the SaveFileDialog.
saveFileDialog1.Title = "Save the PDF Files"
' Set the SaveFileDialog to check if the specified path exists.
saveFileDialog1.CheckPathExists = True
' Set the default extension for the file type.
saveFileDialog1.DefaultExt = ".pdf"
' Set the filter to display only PDF files or all files.
saveFileDialog1.Filter = "PDF files (*.pdf)|*.pdf|All files (*.*)|*.*"
' Set the filter index to display the PDF filter as the default.
saveFileDialog1.FilterIndex = 2
' Set the RestoreDirectory property to true so that the SaveFileDialog
' restores the current directory before closing.
saveFileDialog1.RestoreDirectory = True
' Show the SaveFileDialog and get the result.
If saveFileDialog1.ShowDialog() = DialogResult.OK Then
' If the user clicked the OK button in the SaveFileDialog, return the selected file path.
Return saveFileDialog1.FileName
End If
' If the user did not click the OK button, return an empty string.
Return String.Empty
End FunctionAquí hay un desglose paso a paso de lo que hace este método:
- El método crea una nueva instancia de la clase
SaveFileDialog. Esta clase es parte de la biblioteca de Windows Forms y proporciona un cuadro de diálogo que permite al usuario seleccionar una ruta de archivo donde se guardará el archivo PDF. - El método establece varias propiedades del objeto
SaveFileDialogpara personalizar su comportamiento. La propiedadInitialDirectoryestablece el directorio donde primero se abrirá el cuadro de diálogo. La propiedadTitleestablece el título del cuadro de diálogo. La propiedadCheckPathExistsespecifica si el cuadro de diálogo debe verificar si la ruta especificada existe. La propiedadDefaultExtestablece la extensión de archivo predeterminada para el tipo de archivo. La propiedadFilterestablece los filtros de tipo de archivo que se muestran en el cuadro de diálogo. La propiedadFilterIndexestablece el filtro predeterminado para mostrar. Finalmente, la propiedadRestoreDirectoryespecifica si el cuadro de diálogo debe restaurar el directorio actual antes de cerrar. - El método muestra el
SaveFileDialogllamando a su métodoShowDialog. Este método muestra el cuadro de diálogo y devuelve un valorDialogResultque indica si el usuario hizo clic en el botón "OK" o en el botón Cancelar. - Si el usuario hace clic en el botón "OK", el método devuelve la ruta de archivo que el usuario seleccionó al acceder a la propiedad
FileNamedelSaveFileDialog. - Si el usuario hace clic en el botón "Cancelar" o cierra el cuadro de diálogo, el método devuelve una cadena vacía.
Vamos a ejecutar el proyecto y ver el resultado. Ejecuta el proyecto, y se abrirá el siguiente formulario.
Ejecutando proyecto de Windows Forms
Introduce tu contenido PDF y haz clic en el botón "Guardar" como se muestra a continuación.
Cuadro de diálogo Guardar
Se crea el siguiente PDF.
Archivo PDF creado
IronPDF proporciona una forma sencilla de convertir contenido HTML en documentos PDF y guardarlos en una ruta de archivo seleccionada por el usuario utilizando la clase ChromePdfRenderer y el cuadro de diálogo SaveFileDialog.
Conclusión
Guardar archivos PDF desde una aplicación de Windows Forms es un requisito común, y IronPDF proporciona un método fácil de usar y flexible para realizar esta tarea. Este artículo demostró cómo usar IronPDF para crear, agregar contenido y guardar archivos en una aplicación Windows Forms en C#. Con IronPDF, los desarrolladores pueden generar archivos PDF de alta calidad desde sus aplicaciones con solo unas pocas líneas de código.
IronPDF ofrece una gama de funciones tales como Tutorial de conversión de HTML a PDF, Ejemplo de código de fusión de PDF, Guía de división de páginas PDF y Cómo extraer texto e imágenes, entre otras. IronPDF es gratuito para el desarrollo y está disponible bajo una Licencia Comercial con una prueba gratuita, lo que permite a los desarrolladores usarlo en proyectos comerciales e incluye soporte dedicado y actualizaciones.
Además, IronPDF es parte de la Iron Suite, que es un conjunto de componentes de software .NET que incluye bibliotecas para:
- Generación de código de barras (IronBarcode),
- Gestión de Excel (IronXL),
- Extracción de texto (IronOCR)
[Comprar el Iron Suite completo](Iron Suite) es una solución rentable ya que puedes obtener los cinco productos por el precio de dos.
Preguntas Frecuentes
¿Cómo puedo guardar un archivo PDF en una aplicación Windows Forms de C#?
Puedes guardar un archivo PDF en una aplicación Windows Forms de C# usando IronPDF configurando un formulario con controles como cuadros de texto y botones, e implementando el método Save_Click para renderizar y guardar el contenido como un PDF usando la clase ChromePdfRenderer.
¿Qué pasos están involucrados en la configuración de una aplicación Windows Forms para guardar PDFs usando C#?
Para configurar una aplicación Windows Forms para guardar PDFs, crea un nuevo proyecto en Visual Studio, añade los controles necesarios como etiquetas y un cuadro de texto enriquecido, e instala IronPDF a través del Administrador de Paquetes NuGet para utilizar sus capacidades de renderización de PDF.
¿Cómo puedo convertir contenido HTML a un PDF en C#?
Puedes convertir contenido HTML a un PDF en C# usando el método RenderHtmlAsPdf de IronPDF, que te permite tomar cadenas HTML y renderizarlas directamente en documentos PDF.
¿Cuál es el papel del método Save_Click en el contexto de la generación de PDFs?
El método Save_Click actúa como un controlador de eventos dentro de la aplicación, siendo responsable de capturar el evento de clic de un botón para iniciar el proceso de renderizado del contenido del cuadro de texto en un archivo PDF usando las clases de renderización de IronPDF.
¿Cómo hago para que los usuarios seleccionen una ruta para guardar un PDF en una aplicación C#?
En una aplicación C#, puedes hacer que los usuarios seleccionen una ruta para guardar un PDF utilizando la clase SaveFileDialog, que te permite configurar una interfaz para la selección de archivos y devolver la ruta elegida para guardar el PDF renderizado.
¿Qué características avanzadas ofrece IronPDF para la manipulación de PDFs?
IronPDF ofrece características avanzadas como la conversión de HTML a PDF, fusión de PDFs, separación de páginas de PDF y extracción de texto e imágenes, proporcionando un conjunto de herramientas integral para la manipulación de PDFs en aplicaciones .NET.
¿Existe algún costo asociado con el uso de IronPDF para la generación de PDFs en proyectos comerciales?
IronPDF es gratuito para propósitos de desarrollo con una licencia de prueba. Sin embargo, para proyectos comerciales, se requiere una licencia comercial, que incluye beneficios como soporte dedicado y actualizaciones regulares.
¿Qué es el Iron Suite y cómo beneficia a los desarrolladores?
El Iron Suite es una colección de bibliotecas .NET, incluyendo herramientas para la generación de códigos de barras, manipulación de documentos Excel y manejo de PDFs. Ofrece una solución rentable para desarrolladores que necesitan múltiples funcionalidades dentro de sus aplicaciones.
¿IronPDF es compatible con .NET 10 y qué beneficios aporta eso al guardar PDF en C#?
Sí — IronPDF es totalmente compatible con .NET 10, incluyendo proyectos de escritorio, web y multiplataforma. Desarrollar con .NET 10 ofrece mejoras como un rendimiento de ejecución más rápido, acceso a mejoras modernas de C# y una integración más estrecha con las funciones de la plataforma, lo que facilita la creación y el guardado de PDF mediante los métodos RenderHtmlAsPdf y SaveAs de IronPDF.






