USO DE IRONPDF

Guía Completa del Generador de PDF en C#: Uso de IronPDF para la Creación y Manipulación de PDF sin Esfuerzo

Generar documentos PDF es un requisito común y a menudo esencial para los desarrolladores de C#. Ya sea que te encargues de crear facturas, informes de negocios detallados, convertir contenido web o gestionar diversos documentos empresariales, un generador de PDF en C# confiable es crucial. Muchos desarrolladores buscan bibliotecas .NET que no solo simplifiquen estas tareas, sino que también ofrezcan características robustas como convertir HTML a PDF con alta fidelidad, editar PDFs existentes o crear nuevos programáticamente desde cero.

Si buscas una solución tan potente y fácil de usar, has llegado al lugar correcto. Esta guía se centra en IronPDF, una biblioteca .NET líder meticulosamente diseñada para optimizar la generación y manipulación de PDF en C#. Te guiaremos a través de cómo IronPDF aborda las necesidades comunes de generación de PDF, te proporcionaremos un tutorial práctico para que comiences rápidamente y discutiremos por qué IronPDF se destaca como un fuerte competidor para tu conjunto de herramientas de desarrollo.

Cubriremos:

  • Entendiendo el panorama de la generación de PDF en C#.
  • Por qué IronPDF es una excelente opción para tus tareas de PDF en C#.
  • Configuración de IronPDF en su proyecto C# (ejemplo de Windows Forms).
  • Generar PDFs a partir de contenido HTML y URLs en vivo.
  • Características clave que hacen de IronPDF una biblioteca PDF de C# eficiente y potente.

¿Por qué elegir IronPDF como tu generador de PDF en C#?

Al evaluar bibliotecas de PDF para C#, los desarrolladores a menudo priorizan la facilidad de uso, la precisión de renderizado (especialmente para la conversión de HTML a PDF), un conjunto de características completo y el rendimiento general. IronPDF está diseñado para sobresalir en estas áreas:

  • Simplicidad y Productividad del Desarrollador: Como verás en este tutorial, IronPDF te permite generar y manipular documentos PDF con un número notablemente reducido de líneas de código C#. Abstrae las complejidades subyacentes que a menudo se encuentran con otros métodos de manipulación de PDF o bibliotecas más verbosas.
  • Renderizado de HTML a PDF con precisión pixel-perfect: Una característica destacada es el uso de IronPDF de un motor de renderizado de Chrome integrado. Esto garantiza que HTML, CSS y JavaScript se rendericen con la misma precisión y fidelidad que en un navegador web moderno. Esto es crucial para generar documentos de apariencia profesional a partir del contenido web, un desafío común donde algunas bibliotecas PDF gratuitas para C# podrían quedarse cortas.
  • Funcionalidad integral de PDF: IronPDF es más que solo un creador de PDF. Es una herramienta C# para PDF completa que admite una amplia gama de operaciones:

    • Editar documentos PDF existentes

    • Fusión y división de PDF

    • Agregar encabezados, pies de página, marcas de agua y números de página

    • Rellenar y leer formularios PDF

    • Asegurar documentos con contraseñas y permisos
  • Firmar digitalmente PDFs
  • Excelente soporte y documentación actualizada: Como una biblioteca con soporte comercial, IronPDF ofrece soporte técnico profesional y mantiene una documentación extensa y clara, lo que permite a los desarrolladores implementar soluciones de manera rápida y eficiente.
  • Compatibilidad multiplataforma: Desarrolle y despliegue aplicaciones con IronPDF en Windows, Linux, macOS, Docker y Azure, apuntando a .NET (Core, Standard, Framework).

    Ahora, profundicemos en cómo puedes usar IronPDF para generar PDFs en una aplicación de Windows Forms con C#.

Paso 1: Configuración de tu proyecto de Visual Studio para la generación de PDF en C

El primer paso es crear un proyecto de Visual Studio. Para este tutorial, usaremos la plantilla de aplicación Windows Forms, pero IronPDF funciona perfectamente con aplicaciones web (ASP.NET), aplicaciones de consola, WPF y más.

Abre Visual Studio.

Abriendo Visual Studio para el proyecto C#

Haga clic en "Crear nuevo proyecto".

Crear nuevo proyecto en Visual Studio para generador de PDF en C#

Seleccione "Aplicación de Windows Forms (.NET Framework o .NET Core)" de las plantillas y luego haga clic en 'Siguiente'. Aparecerá la siguiente ventana. Nombre su proyecto (p. ej., MyCSharpPdfGenerator).

Nombrar el proyecto C# para la generación de PDF

Nombrar el proyecto

Después de eso, haz clic en 'Siguiente'. En el menú desplegable, elija su .NET Framework deseado (IronPDF admite una amplia gama).

Seleccionando .NET Framework para el Proyecto IronPDF en C#

Seleccionar .NET Framework

Haga clic en el botón "Crear". El proyecto será creado y estará listo para el siguiente paso.

Proyecto de Visual Studio Creado para Generación de PDF en C#

Paso 2: Instalación de la biblioteca de IronPDF C# - Su clave para la generación de PDF

IronPDF se añade fácilmente a tu proyecto usando NuGet. Esta es la forma recomendada para asegurarse de tener la última versión y todas las dependencias necesarias.

Opción 1: Consola del Administrador de Paquetes (Más rápida)

En Visual Studio, vaya a Herramientas > Gestor de paquetes NuGet > Consola del gestor de paquetes. A continuación, escribe el siguiente comando y presiona Enter:

Install-Package IronPdf
Install-Package IronPdf
SHELL

Opción 2: Interfaz de Usuario del Administrador de Paquetes NuGet

  1. Haga clic derecho en su proyecto en el Explorador de Soluciones y seleccione "Administrar paquetes de NuGet..."

  2. Haz clic en la pestaña "Explorar" y busca "IronPdf".

  3. Selecciona el paquete IronPdf de los resultados de búsqueda y haz clic en "Instalar".

    Instalación de la biblioteca IronPDF C# a través del administrador de paquetes NuGet GUI

Opción 3: Instalación Manual (Descargar DLL)

Alternativamente, puedes descargar el DLL de IronPDF directamente desde el sitio web de IronPDF.

  1. Descargue y descomprima el DLL en una ubicación adecuada (por ejemplo, una carpeta 'Libs' dentro del directorio de su solución).

  2. En el Explorador de soluciones de Visual Studio, haz clic derecho sobre "Referencias" (para proyectos .NET Framework) o "Dependencias" (para proyectos .NET Core/5+) y selecciona "Agregar referencia..." o "Agregar referencia de proyecto..." luego "Examinar".

  3. Navegue y seleccione el IronPdf.dll.

Paso 3: Diseñar una interfaz simple de formulario de Windows (Opcional)

Para este tutorial, crearemos una interfaz de usuario básica para activar la generación de PDF. Si está desarrollando una aplicación web o de consola, integrará la lógica de IronPDF directamente en sus controladores, servicios o clases.

Vaya al ToolBox en Visual Studio (Ver > ToolBox). Arrastra y suelta los siguientes controles en la superficie de diseño de tu Formulario1:

  • Un Label (por ejemplo, para titular su aplicación "Demo Generador de PDF en C#").
  • Un RichTextBox (llámalo PdfText) para ingresar HTML/texto.
  • Un TextBox (nombrarlo URL) para ingresar una URL.
  • Dos controles Button.

    • Establece el texto del primer botón en "Generar PDF desde Texto" (nómbralo GeneratePDFFromTextButton).

    • Establezca el texto del segundo botón a "Generate PDF From URL" (nómbrelo GeneratePDFFromURLButton).

    Diseñando un formulario de Windows para la aplicación de generador de PDF en C#

Paso 4: Escribir código C# para generar PDF a partir de texto/HTML

Ahora, añadamos la lógica en C#. Haga doble clic en el botón "Generate PDF From Text" (GeneratePDFFromTextButton) en el diseñador de formularios. Esto creará un método controlador de eventos en su archivo Form1.cs.

Primero, añade el espacio de nombres de IronPDF en la parte superior de tu archivo Form1.cs:

using IronPdf;
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

Luego, implemente el controlador de eventos click del botón. Este código tomará texto (que puede ser texto plano o HTML) del RichTextBox y lo convertirá en un documento PDF.

private void GeneratePDFFromTextButton_Click(object sender, EventArgs e)
{
    // It's recommended to set your license key once at application startup.
    // IronPdf.License.LicenseKey = "YourLicenseKey-GetYourKeyFromIronPdf.com"; 
    // If no key is set, IronPDF will watermark PDFs after a trial period.

    // Use SaveFileDialog to let the user choose where to save the PDF
    SaveFileDialog saveFileDialog1 = new SaveFileDialog();
    saveFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); // Default to My Documents
    saveFileDialog1.Title = "Save PDF File As";
    saveFileDialog1.DefaultExt = "pdf";
    saveFileDialog1.Filter = "PDF files (*.pdf)
*.pdf
All files (*.*)
*.*";
    saveFileDialog1.FilterIndex = 1; // Start with PDF files selected
    saveFileDialog1.RestoreDirectory = true;

    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
    {
        string filename = saveFileDialog1.FileName;

        // The core of PDF generation from HTML/Text using IronPDF
        // IronPDF's ChromePdfRenderer accurately renders HTML, CSS, and JavaScript.
        var renderer = new ChromePdfRenderer();

        // The RenderHtmlAsPdf method converts an HTML string to a PDF document.
        // This is incredibly powerful for generating dynamic reports, invoices, tickets, etc.
        // from HTML templates.
        using (var pdfDocument = renderer.RenderHtmlAsPdf(PdfText.Text))
        {
            pdfDocument.SaveAs(filename);
        }

        MessageBox.Show("PDF Generated Successfully at: " + filename, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
}
private void GeneratePDFFromTextButton_Click(object sender, EventArgs e)
{
    // It's recommended to set your license key once at application startup.
    // IronPdf.License.LicenseKey = "YourLicenseKey-GetYourKeyFromIronPdf.com"; 
    // If no key is set, IronPDF will watermark PDFs after a trial period.

    // Use SaveFileDialog to let the user choose where to save the PDF
    SaveFileDialog saveFileDialog1 = new SaveFileDialog();
    saveFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); // Default to My Documents
    saveFileDialog1.Title = "Save PDF File As";
    saveFileDialog1.DefaultExt = "pdf";
    saveFileDialog1.Filter = "PDF files (*.pdf)
*.pdf
All files (*.*)
*.*";
    saveFileDialog1.FilterIndex = 1; // Start with PDF files selected
    saveFileDialog1.RestoreDirectory = true;

    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
    {
        string filename = saveFileDialog1.FileName;

        // The core of PDF generation from HTML/Text using IronPDF
        // IronPDF's ChromePdfRenderer accurately renders HTML, CSS, and JavaScript.
        var renderer = new ChromePdfRenderer();

        // The RenderHtmlAsPdf method converts an HTML string to a PDF document.
        // This is incredibly powerful for generating dynamic reports, invoices, tickets, etc.
        // from HTML templates.
        using (var pdfDocument = renderer.RenderHtmlAsPdf(PdfText.Text))
        {
            pdfDocument.SaveAs(filename);
        }

        MessageBox.Show("PDF Generated Successfully at: " + filename, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
}
Private Sub GeneratePDFFromTextButton_Click(ByVal sender As Object, ByVal e As EventArgs)
	' It's recommended to set your license key once at application startup.
	' IronPdf.License.LicenseKey = "YourLicenseKey-GetYourKeyFromIronPdf.com"; 
	' If no key is set, IronPDF will watermark PDFs after a trial period.

	' Use SaveFileDialog to let the user choose where to save the PDF
	Dim saveFileDialog1 As New SaveFileDialog()
	saveFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) ' Default to My Documents
	saveFileDialog1.Title = "Save PDF File As"
	saveFileDialog1.DefaultExt = "pdf"
	saveFileDialog1.Filter = "PDF files (*.pdf) *.pdf All files (*.*) *.*"
	saveFileDialog1.FilterIndex = 1 ' Start with PDF files selected
	saveFileDialog1.RestoreDirectory = True

	If saveFileDialog1.ShowDialog() = DialogResult.OK Then
		Dim filename As String = saveFileDialog1.FileName

		' The core of PDF generation from HTML/Text using IronPDF
		' IronPDF's ChromePdfRenderer accurately renders HTML, CSS, and JavaScript.
		Dim renderer = New ChromePdfRenderer()

		' The RenderHtmlAsPdf method converts an HTML string to a PDF document.
		' This is incredibly powerful for generating dynamic reports, invoices, tickets, etc.
		' from HTML templates.
		Using pdfDocument = renderer.RenderHtmlAsPdf(PdfText.Text)
			pdfDocument.SaveAs(filename)
		End Using

		MessageBox.Show("PDF Generated Successfully at: " & filename, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information)
	End If
End Sub
$vbLabelText   $csharpLabel

Explicación del Código de Generación de PDF en C#:

  • IronPdf.License.LicenseKey: Es una buena práctica establecer tu clave de licencia de IronPDF. Si tiene uno, descomente la línea y reemplace "YourLicenseKey..." con su clave real. IronPDF funciona sin una clave de licencia, pero los documentos tendrán una marca de agua después del período de prueba.
  • SaveFileDialog: Esto proporciona un cuadro de diálogo estándar de Windows para que el usuario elija la ubicación de guardado y el nombre de archivo para su PDF.
  • ChromePdfRenderer: Este es el núcleo de la capacidad de HTML a PDF de IronPDF. Utiliza un motor Chromium integrado para lograr la máxima fidelidad.
  • RenderHtmlAsPdf(PdfText.Text): Esta única llamada de método toma el contenido de cadena de tu RichTextBox (que puede ser HTML enriquecido) y lo convierte en un objeto de documento PDF.
  • SaveAs(filename): Este método guarda el documento PDF generado en la ruta especificada por el usuario.
  • Usar la instrucción using para pdfDocument asegura que los recursos se gestionen correctamente.

    Observe cómo IronPDF simplifica una tarea potencialmente compleja como la conversión de HTML a PDF en solo un par de líneas clave de código. Esto es una ventaja significativa para los desarrolladores que necesitan generar PDF C# de manera rápida y confiable.

Ejecutar el proyecto y generar tu primer PDF a partir de texto/HTML

Presiona Ctrl + F5 (o haz clic en el botón de Inicio) para ejecutar tu proyecto. La aplicación de Windows Form aparecerá.

Ejecutando la aplicación C\# PDF Generator

Introduce contenido HTML en el cuadro de texto enriquecido. Por ejemplo:

<h1>My First C# PDF Document</h1>
<p>This PDF was generated using <strong>IronPDF</strong> in a C# application.</p>
<p>IronPDF makes it very easy to convert HTML content, including styles and images, into professional PDF files.</p>
<ul>
    <li>Easy to use</li>
    <li>Accurate rendering</li>
    <li>Feature-rich</li>
</ul>
<h1>My First C# PDF Document</h1>
<p>This PDF was generated using <strong>IronPDF</strong> in a C# application.</p>
<p>IronPDF makes it very easy to convert HTML content, including styles and images, into professional PDF files.</p>
<ul>
    <li>Easy to use</li>
    <li>Accurate rendering</li>
    <li>Feature-rich</li>
</ul>
HTML

Ingresando HTML en la aplicación C# PDF Generator

Haga clic en el botón "Generar PDF desde Texto". El cuadro de diálogo Guardar como aparecerá. Elija una ubicación y un nombre de archivo, luego haga clic en 'Guardar'.

Verificación del resultado PDF (de Texto/HTML)

Navega a la ubicación donde guardaste el PDF y ábrelo. Debería ver su contenido HTML renderizado con precisión dentro del documento PDF.

Archivo PDF de salida generado a partir de una cadena HTML usando IronPDF C#

Paso 5: Escribir código en C\# para generar PDFs desde una URL

Generar un PDF desde una página web en vivo es otro requisito común. IronPDF lo hace igual de sencillo. Haz doble clic en el botón "Generar PDF DESDE URL" (GeneratePDFFromURLButton) en el diseñador de formularios para crear su controlador de evento de clic.

Agrega el siguiente código C#:

private void GeneratePDFFromURLButton_Click(object sender, EventArgs e)
{
    // IronPdf.License.LicenseKey = "YourLicenseKey-GetYourKeyFromIronPdf.com"; 

    if (string.IsNullOrWhiteSpace(URL.Text))
    {
        MessageBox.Show("Please enter a valid URL.", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        return;
    }

    SaveFileDialog saveFileDialog1 = new SaveFileDialog();
    saveFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
    saveFileDialog1.Title = "Save PDF From URL As";
    saveFileDialog1.DefaultExt = "pdf";
    saveFileDialog1.Filter = "PDF files (*.pdf)
*.pdf
All files (*.*)
*.*";
    saveFileDialog1.FilterIndex = 1;
    saveFileDialog1.RestoreDirectory = true;

    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
    {
        string filename = saveFileDialog1.FileName;
        try
        {
            var renderer = new ChromePdfRenderer();
            // RenderUrlAsPdf fetches the content from the URL and converts it to PDF.
            // This is excellent for archiving web pages or creating PDFs from online reports.
            using (var pdfDocument = renderer.RenderUrlAsPdf(URL.Text))
            {
                pdfDocument.SaveAs(filename);
            }
            MessageBox.Show("PDF from URL Generated Successfully at: " + filename, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error generating PDF from URL: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }
}
private void GeneratePDFFromURLButton_Click(object sender, EventArgs e)
{
    // IronPdf.License.LicenseKey = "YourLicenseKey-GetYourKeyFromIronPdf.com"; 

    if (string.IsNullOrWhiteSpace(URL.Text))
    {
        MessageBox.Show("Please enter a valid URL.", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        return;
    }

    SaveFileDialog saveFileDialog1 = new SaveFileDialog();
    saveFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
    saveFileDialog1.Title = "Save PDF From URL As";
    saveFileDialog1.DefaultExt = "pdf";
    saveFileDialog1.Filter = "PDF files (*.pdf)
*.pdf
All files (*.*)
*.*";
    saveFileDialog1.FilterIndex = 1;
    saveFileDialog1.RestoreDirectory = true;

    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
    {
        string filename = saveFileDialog1.FileName;
        try
        {
            var renderer = new ChromePdfRenderer();
            // RenderUrlAsPdf fetches the content from the URL and converts it to PDF.
            // This is excellent for archiving web pages or creating PDFs from online reports.
            using (var pdfDocument = renderer.RenderUrlAsPdf(URL.Text))
            {
                pdfDocument.SaveAs(filename);
            }
            MessageBox.Show("PDF from URL Generated Successfully at: " + filename, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error generating PDF from URL: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }
}
Private Sub GeneratePDFFromURLButton_Click(ByVal sender As Object, ByVal e As EventArgs)
	' IronPdf.License.LicenseKey = "YourLicenseKey-GetYourKeyFromIronPdf.com"; 

	If String.IsNullOrWhiteSpace(URL.Text) Then
		MessageBox.Show("Please enter a valid URL.", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Warning)
		Return
	End If

	Dim saveFileDialog1 As New SaveFileDialog()
	saveFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
	saveFileDialog1.Title = "Save PDF From URL As"
	saveFileDialog1.DefaultExt = "pdf"
	saveFileDialog1.Filter = "PDF files (*.pdf) *.pdf All files (*.*) *.*"
	saveFileDialog1.FilterIndex = 1
	saveFileDialog1.RestoreDirectory = True

	If saveFileDialog1.ShowDialog() = DialogResult.OK Then
		Dim filename As String = saveFileDialog1.FileName
		Try
			Dim renderer = New ChromePdfRenderer()
			' RenderUrlAsPdf fetches the content from the URL and converts it to PDF.
			' This is excellent for archiving web pages or creating PDFs from online reports.
			Using pdfDocument = renderer.RenderUrlAsPdf(URL.Text)
				pdfDocument.SaveAs(filename)
			End Using
			MessageBox.Show("PDF from URL Generated Successfully at: " & filename, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information)
		Catch ex As Exception
			MessageBox.Show("Error generating PDF from URL: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
		End Try
	End If
End Sub
$vbLabelText   $csharpLabel

Explicación:

  • URL.Text: Esto toma la cadena URL del control TextBox en tu formulario.
  • RenderUrlAsPdf(URL.Text): Este potente método de IronPDF navega a la URL proporcionada, representa su contenido (incluyendo HTML, CSS, JavaScript e imágenes) y lo convierte en un documento PDF.
  • El manejo de errores (try-catch) se incluye para garantizar la robustez, ya que pueden ocurrir problemas de red o URLs no válidas.

Ejecutar el proyecto y generar un PDF desde una URL

Ejecute su proyecto nuevamente (Ctrl + F5). Esta vez, ingrese una URL completa (por ejemplo, https://ironpdf.com) en el cuadro de texto URL.

Ingresando URL en la aplicación C# PDF Generator

Haga clic en el botón "Generar PDF DESDE URL". Seleccione una ubicación de guardado y un nombre de archivo.

Verificando la salida del PDF (desde URL)

Abrir el PDF generado. Verás que la página web ha sido convertida fielmente en un documento PDF, preservando su diseño y contenido.

Documento PDF de salida generado desde URL usando IronPDF en C#

Conclusión: Simplifique la generación de PDF en C# con IronPDF

Como demuestra este tutorial, IronPDF ofrece una solución notablemente poderosa pero sencilla para todas sus necesidades de generación de PDF en C#. Ya sea que esté convirtiendo páginas HTML complejas con CSS y JavaScript intrincados, generando informes dinámicos a partir de datos, creando PDFs desde URLs en vivo, o necesite capacidades robustas de edición de PDF dentro de sus aplicaciones .NET, IronPDF ofrece las herramientas y el rendimiento necesarios para realizar el trabajo de manera eficiente.

Cuando generas proyectos PDF C#, a menudo te enfrentas a elecciones entre bibliotecas gratuitas que podrían tener limitaciones en la fidelidad de renderizado o en los conjuntos de características, o soluciones más complejas que requieren un código boilerplate significativo. IronPDF se distingue como una biblioteca .NET PDF integral y comercialmente respaldada que agiliza el desarrollo, garantiza una salida de alta calidad, y ofrece un conjunto rico de características más allá de la creación básica de PDF.

¿Listo para experimentar la mejor manera de generar y manipular PDFs en C#?

Chipego
Ingeniero de software
Chipego tiene una habilidad natural para escuchar que le ayuda a comprender los problemas de los clientes y a ofrecer soluciones inteligentes. Se unió al equipo de Iron Software en 2023, después de estudiar una licenciatura en Tecnología de la Información. IronPDF e IronOCR son los dos productos en los que Chipego se ha centrado, pero su conocimiento de todos los productos crece día a día, a medida que encuentra nuevas formas de ayudar a los clientes. Disfruta de lo colaborativa que es la vida en Iron Software, con miembros del equipo de toda la empresa que aportan su variada experiencia para contribuir a soluciones eficaces e innovadoras. Cuando Chipego está lejos de su escritorio, a menudo se le puede encontrar disfrutando de un buen libro o jugando al fútbol.
< ANTERIOR
Cómo eliminar una contraseña de un archivo PDF
SIGUIENTE >
C# Crear archivo PDF mediante programación