Saltar al pie de página
USANDO IRONPDF
Cómo crear un PDF en C#

Generando Archivos PDF en C#

Los documentos y reportes de oficina a menudo necesitan ser convertidos en documentos PDF desde una amplia variedad de formatos, incluyendo HTML. También puede que necesitemos generar archivos PDF desde páginas web o URLs. Para este propósito, necesitamos un generador versátil que pueda generar archivos PDF que contengan el mismo contenido exacto que los archivos HTML originales. En este tutorial, aprenderemos cómo generar archivos PDF en C#.

¿Qué es IronPDF?

La biblioteca PDF de IronPDF para .NET es reconocida por muchos diseñadores, en particular los programadores de computadoras que usan C#. Sin duda, puedes crear una biblioteca PDF central para .NET con esta herramienta excepcional.

IronPDF utiliza un motor Chromium de .NET para convertir páginas HTML en documentos PDF. Con HTML a PDF, no hay razón para usar APIs complejas para posicionar o planificar PDFs. IronPDF soporta documentos web estándar: HTML, ASPX, JS, CSS e imágenes.

Además, te permite crear una biblioteca PDF para .NET utilizando HTML5, CSS, JavaScript e imágenes. Puedes editar fácilmente, estampar y agregar encabezados y pies de página a un PDF. Además, hace extremadamente simple leer contenido PDF eficientemente con IronPDF y extraer las imágenes.

IronPDF proporciona una solución singular a todos los problemas relacionados con PDF. Cuando compras IronPDF, obtienes todas las conversiones en una sola biblioteca, además de tareas conectadas con documentos PDF, sin requerir condiciones adicionales. IronPDF es un paquete completo y una gran herramienta tanto para diseñadores como para programadores de C# por igual.

IronPDF nos ayuda a generar archivos PDF a partir de lo siguiente:

  • Cadenas y plantillas HTML
  • ASPX WebForms
  • Vistas MVC
  • Documentos HTML
  • cualquier URL

Características de IronPDF

IronPDF te ayuda a crear documentos PDF a partir de HTML 4 y 5, CSS y JavaScript, y crea archivos PDF desde URLs. Asimismo, ayuda a cargar URLs con credenciales de inicio de sesión de red personalizadas, Agentes de Usuario, Proxies, Cookies, encabezados HTTP y variables de formularios que permiten el inicio de sesión detrás de formularios de inicio de sesión en HTML. Puedes, sin mucho esfuerzo, extraer imágenes y textos de PDF y estampar nuevo contenido HTML sobre cualquier página PDF existente, también permitiéndote agregar encabezados y pies de página lógicos o HTML. Puede cargar y extraer fácilmente archivos PDF existentes y fusionar y dividir contenido en documentos PDF. Tiene una URL de base personalizada para permitir que los archivos de recursos sean accesibles en la web y acepta HTML codificado en cualquier codificación de documento significativa (por defecto a UTF-8). Puedes simplemente guardar y cargar desde documentos, datos binarios o MemoryStreams y transformar documentos PDF en un objeto PrintDocument para imprimir sin Adobe (con código mínimo) y exportar documentos de registro oficiales con detalles sobre el éxito de la API y errores de depuración en el código fuente.

Compatibilidad

Soporta lenguajes .NET como C#, VB.NET y F#. Es compatible con plataformas .NET como .NET 6, 5, Core 2x y 3x, Standard 2, y Framework 4x. Funciona en aplicaciones como Consola, Web y Escritorio, y es compatible con Microsoft Windows, Linux, macOS, Docker y Azure OS. IDE de IronPDF incluyen Microsoft Visual Studio, JetBrains ReSharper y Rider.

Pasos para generar documentos PDF

Primero, necesitamos crear un nuevo Proyecto de Visual Studio. Usaré la plantilla de Aplicación de Consola para esta demostración. Puedes usar cualquiera según tus requisitos y elección.

También puedes utilizar tu proyecto existente en el que desees agregar una herramienta para generar archivos PDF.

Crear un proyecto de Visual Studio

Abre Microsoft Visual Studio 2019, o cualquier otra versión. Se recomienda la última versión. Haz clic en "Crear Nuevo Proyecto". Selecciona la Aplicación de Consola C# para la plantilla de la aplicación. Haz clic en el botón "Siguiente".

Asigna un nombre a tu proyecto. Lo he nombrado "C Sharp Generar PDF". Puedes nombrarlo como desees. Haz clic en el botón "Siguiente", y configura el Framework .NET de destino. He configurado mi framework .NET de destino a ".NET 5.0", la última versión estable. Haz clic en el botón "Crear". Se creará un nuevo proyecto para ti.

Instalar el paquete NuGet en Visual Studio

Antes de empezar, necesitamos instalar la Biblioteca IronPDF. Puedes instalarla usando uno de los siguientes tres métodos:

Consola del gestor de paquetes

Escribe el siguiente comando en la consola del Administrador de Paquetes. Descargará e instalará el paquete por ti.

Install-Package IronPdf

Image 1

La solución del gestor de paquetes NuGet

También puedes instalar la Biblioteca de Código de Barras usando la Solución de Paquetes NuGet. Simplemente, sigue estos pasos:

Haz clic en Herramientas > Administrador de Paquetes NuGet > Administrar la Solución de Paquetes NuGet.

Image 2

Esto abrirá el Administrador de Paquetes NuGet para ti. Haz clic en "Examinar" y busca IronPDF como se muestra abajo.

Image 3

Haz clic en IronPDF y luego en el botón "Instalar". Esto instalará IronPDF en tu proyecto. Ahora eres libre de usar cualquiera de sus funciones en tu proyecto.

Descargar directamente IronPDF ZIP

Alternativamente, puedes descargar el paquete ZIP de IronPDF para integración.

Recuerda agregar esta declaración al inicio de cualquier archivo de clase .cs que utilice IronPDF:

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

Consulta IronPDF en NuGet para instalación y actualizaciones para más sobre actualizaciones de versión e instalación.

Existen otros Paquetes NuGet de IronPDF disponibles para despliegues específicos a objetivos en Linux, Mac, Azure y AWS que están documentados en la guía de instalación avanzada de NuGet de IronPDF.

La biblioteca de IronPDF ha sido instalada, así que pasemos al siguiente paso.

Generar archivos PDF a partir de una cadena HTML

IronPDF puede generar archivos PDF desde texto HTML con bastante facilidad. El siguiente ejemplo ilustra esta capacidad. Usa esta opción cuando solo necesites añadir texto simple a tu archivo PDF.

Añade el siguiente espacio de nombres:

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

Usando el siguiente ejemplo de código:

var Renderer = new ChromePdfRenderer();
// Render HTML as PDF and save the result
Renderer.RenderHtmlAsPdf("<h1>This is the Tutorial for C# Generate PDF<h1>")
        .SaveAs("GeneratePDF.pdf");
var Renderer = new ChromePdfRenderer();
// Render HTML as PDF and save the result
Renderer.RenderHtmlAsPdf("<h1>This is the Tutorial for C# Generate PDF<h1>")
        .SaveAs("GeneratePDF.pdf");
Dim Renderer = New ChromePdfRenderer()
' Render HTML as PDF and save the result
Renderer.RenderHtmlAsPdf("<h1>This is the Tutorial for C# Generate PDF<h1>").SaveAs("GeneratePDF.pdf")
$vbLabelText   $csharpLabel

En el código anterior, he creado un nuevo ChromePdfRenderer. Luego he llamado RenderHtmlAsPdf y SaveAs para el resultado.

Resultado

Ejecuta el programa. Generará un documento PDF en la carpeta bin del proyecto, ya que no hemos especificado la ruta.

Image 4

Genere sus primeros archivos PDF

Después de que la biblioteca de IronPDF está instalada, podemos crear fácilmente un archivo PDF y una Página PDF usando solo unas pocas líneas de código. Ahora te ayudaremos a crear tu primer documento PDF en C#. Copia el código a continuación, pégalo en tu Visual Studio y ejecuta el programa.

var pdf = new ChromePdfRenderer();
PdfDocument doc = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>");
doc.SaveAs("FirstPDFDocument.pdf");
var pdf = new ChromePdfRenderer();
PdfDocument doc = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>");
doc.SaveAs("FirstPDFDocument.pdf");
Dim pdf = New ChromePdfRenderer()
Dim doc As PdfDocument = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>")
doc.SaveAs("FirstPDFDocument.pdf")
$vbLabelText   $csharpLabel

Después de la ejecución de tu proyecto en C#, habrá un archivo llamado "FirstPDFDocument.pdf" en la carpeta bin de tu proyecto. Haz doble clic en dicho archivo, y el archivo PDF se abrirá en la pestaña del navegador.

Image 9

Crear archivos PDF en C# o convertir HTML a PDF es solo unas pocas líneas de código utilizando IronPDF.

Generar documento PDF a partir de URL

Crear un archivo PDF en C# usando una URL es tan fácil como el ejemplo anterior con solo estas tres líneas de código. El siguiente código demostrará cómo crear PDF desde una URL con IronPDF.

using IronPdf;

var Renderer = new ChromePdfRenderer();
// Create a PDF from a URL or local file path
using var pdf = Renderer.RenderUrlAsPdf("https://www.amazon.com/?tag=hp2-brobookmark-us-20");
// Export to a file or Stream
pdf.SaveAs("url.pdf");
using IronPdf;

var Renderer = new ChromePdfRenderer();
// Create a PDF from a URL or local file path
using var pdf = Renderer.RenderUrlAsPdf("https://www.amazon.com/?tag=hp2-brobookmark-us-20");
// Export to a file or Stream
pdf.SaveAs("url.pdf");
Imports IronPdf

Private Renderer = New ChromePdfRenderer()
' Create a PDF from a URL or local file path
Private pdf = Renderer.RenderUrlAsPdf("https://www.amazon.com/?tag=hp2-brobookmark-us-20")
' Export to a file or Stream
pdf.SaveAs("url.pdf")
$vbLabelText   $csharpLabel

Aquí está la salida del código anterior.

Image 10

Otros ejemplos de convertir sitios complejos populares a PDF.

Image 11

Generación de archivos PDF a partir de un archivo HTML

Podemos generar un documento PDF desde archivos HTML con imágenes, CSS, formularios, hipervínculos y JavaScript. Usa este método para escenarios donde tienes acceso local al documento fuente.

Este ejemplo utiliza RenderHtmlFileAsPdf y devuelve una variable llamada PDF.

Llama a SaveAs para guardar la salida en un archivo PDF.

El siguiente ejemplo de código asume que hay un archivo HTML en la carpeta bin del proyecto.

var Renderer = new ChromePdfRenderer();
var pdf = Renderer.RenderHtmlFileAsPdf("AccountPage.html");
pdf.SaveAs("AccountPdf.pdf");
var Renderer = new ChromePdfRenderer();
var pdf = Renderer.RenderHtmlFileAsPdf("AccountPage.html");
pdf.SaveAs("AccountPdf.pdf");
Dim Renderer = New ChromePdfRenderer()
Dim pdf = Renderer.RenderHtmlFileAsPdf("AccountPage.html")
pdf.SaveAs("AccountPdf.pdf")
$vbLabelText   $csharpLabel

HTML de entrada:

Image 5

Salida de archivo PDF generado:

Image 6

Generar archivos PDF a partir de URL

Podemos generar archivos PDF desde páginas web existentes con unas pocas líneas de código C# o VB.NET. Usa esta opción cuando necesites generar un documento PDF desde un sitio web que ya tiene un documento bien formateado.

Llama a RenderUrlAsPdf para descargar el contenido de la página web para que puedas llamar a SaveAs para guardar el archivo PDF localmente.

var Renderer = new ChromePdfRenderer();
var pdf = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format");
pdf.SaveAs("wikipedia.pdf");
var Renderer = new ChromePdfRenderer();
var pdf = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format");
pdf.SaveAs("wikipedia.pdf");
Dim Renderer = New ChromePdfRenderer()
Dim pdf = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format")
pdf.SaveAs("wikipedia.pdf")
$vbLabelText   $csharpLabel

Salida de archivo PDF:

Image 7

Generar un documento PDF a partir de formularios web ASP.NET

Podemos generar un documento PDF desde formularios web ASP.NET en lugar de HTML con una sola línea de código. Coloca la línea de código en el método Page_Load del código detrás de la página.

  • Crea una nueva aplicación de formularios web ASP.NET o abre una existente.
  • Instala el paquete NuGet para la Biblioteca IronPDF.
  • Importa el espacio de nombres IronPDF usando la palabra clave apropiada.
  • Abre el código detrás de la página que deseas renderizar a PDF. Por ejemplo, Default.aspx.cs
  • Escribe el siguiente código dentro de la Función Page Load.
AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.InBrowser);
AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.InBrowser);
AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.InBrowser)
$vbLabelText   $csharpLabel

Salida de archivo PDF:

Image 8

Generar archivos PDF desde una vista ASP MVC

Podemos generar documentos PDF desde el marco ASP MVC.

Inicia el asistente de nuevo proyecto en Visual Studio, y elige Aplicación Web ASP.NET (.NET Framework) > MVC. Alternativamente, abre un proyecto MVC existente. Abre el archivo HomeController en la carpeta Controllers y reemplaza el método Index, o añade un nuevo controlador.

Este es un ejemplo de cómo debería verse el código:

public ActionResult Index()
{
    var pdf = IronPdf.ChromePdfRenderer.StaticRenderUrlAsPdf(new Uri("https://en.wikipedia.org"));
    return File(pdf.BinaryData, "application/pdf", "Wiki.Pdf");
}

public ActionResult About()
{
    ViewBag.Message = "Your application description page.";
    return View();
}

public ActionResult Contact()
{
    ViewBag.Message = "Your contact page.";
    return View();
}
public ActionResult Index()
{
    var pdf = IronPdf.ChromePdfRenderer.StaticRenderUrlAsPdf(new Uri("https://en.wikipedia.org"));
    return File(pdf.BinaryData, "application/pdf", "Wiki.Pdf");
}

public ActionResult About()
{
    ViewBag.Message = "Your application description page.";
    return View();
}

public ActionResult Contact()
{
    ViewBag.Message = "Your contact page.";
    return View();
}
Public Function Index() As ActionResult
	Dim pdf = IronPdf.ChromePdfRenderer.StaticRenderUrlAsPdf(New Uri("https://en.wikipedia.org"))
	Return File(pdf.BinaryData, "application/pdf", "Wiki.Pdf")
End Function

Public Function About() As ActionResult
	ViewBag.Message = "Your application description page."
	Return View()
End Function

Public Function Contact() As ActionResult
	ViewBag.Message = "Your contact page."
	Return View()
End Function
$vbLabelText   $csharpLabel

Salida de archivo PDF:

Image 9

Añadir encabezados y pies de página

La propiedad de Opciones de Impresión te permite crear encabezados y pies de página para cada página del archivo PDF. Accede a estas opciones en el objeto ChromePdfRenderer. Este ejemplo funciona dentro de una aplicación de consola .NET Core.

  • Usa estas propiedades de plantilla para construir el contenido.
  • {page} {total-pages} {url} {date} {time} {html-title} & {pdf-title}

Escribe el siguiente código:

var ChromePdfRenderer = new ChromePdfRenderer();
ChromePdfRenderer.RenderingOptions.FirstPageNumber = 1;
// Header options
ChromePdfRenderer.RenderingOptions.TextHeader.DrawDividerLine = true;
ChromePdfRenderer.RenderingOptions.TextHeader.CenterText = "This is Header {date} {time}";
ChromePdfRenderer.RenderingOptions.TextHeader.FontFamily = "Helvetica,Arial";
ChromePdfRenderer.RenderingOptions.TextHeader.FontSize = 12;
// Footer options
ChromePdfRenderer.RenderingOptions.TextFooter.DrawDividerLine = true;
ChromePdfRenderer.RenderingOptions.TextFooter.FontFamily = "Arial";
ChromePdfRenderer.RenderingOptions.TextFooter.FontSize = 10;
ChromePdfRenderer.RenderingOptions.TextFooter.LeftText = "{date} {time}";
ChromePdfRenderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}";

ChromePdfRenderer.RenderHtmlAsPdf("<h1>This is my Sample Page for Generate PDF Tutorial<h1>")
                 .SaveAs("GeneratePDF.pdf");
var ChromePdfRenderer = new ChromePdfRenderer();
ChromePdfRenderer.RenderingOptions.FirstPageNumber = 1;
// Header options
ChromePdfRenderer.RenderingOptions.TextHeader.DrawDividerLine = true;
ChromePdfRenderer.RenderingOptions.TextHeader.CenterText = "This is Header {date} {time}";
ChromePdfRenderer.RenderingOptions.TextHeader.FontFamily = "Helvetica,Arial";
ChromePdfRenderer.RenderingOptions.TextHeader.FontSize = 12;
// Footer options
ChromePdfRenderer.RenderingOptions.TextFooter.DrawDividerLine = true;
ChromePdfRenderer.RenderingOptions.TextFooter.FontFamily = "Arial";
ChromePdfRenderer.RenderingOptions.TextFooter.FontSize = 10;
ChromePdfRenderer.RenderingOptions.TextFooter.LeftText = "{date} {time}";
ChromePdfRenderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}";

ChromePdfRenderer.RenderHtmlAsPdf("<h1>This is my Sample Page for Generate PDF Tutorial<h1>")
                 .SaveAs("GeneratePDF.pdf");
Dim ChromePdfRenderer As New ChromePdfRenderer()
ChromePdfRenderer.RenderingOptions.FirstPageNumber = 1
' Header options
ChromePdfRenderer.RenderingOptions.TextHeader.DrawDividerLine = True
ChromePdfRenderer.RenderingOptions.TextHeader.CenterText = "This is Header {date} {time}"
ChromePdfRenderer.RenderingOptions.TextHeader.FontFamily = "Helvetica,Arial"
ChromePdfRenderer.RenderingOptions.TextHeader.FontSize = 12
' Footer options
ChromePdfRenderer.RenderingOptions.TextFooter.DrawDividerLine = True
ChromePdfRenderer.RenderingOptions.TextFooter.FontFamily = "Arial"
ChromePdfRenderer.RenderingOptions.TextFooter.FontSize = 10
ChromePdfRenderer.RenderingOptions.TextFooter.LeftText = "{date} {time}"
ChromePdfRenderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}"

ChromePdfRenderer.RenderHtmlAsPdf("<h1>This is my Sample Page for Generate PDF Tutorial<h1>").SaveAs("GeneratePDF.pdf")
$vbLabelText   $csharpLabel

Fichero PDF con encabezado y pie de página

Image 10

Añadir encabezados y pies de página con HTML

Podemos añadir texto, fecha, hora y números de página en los encabezados y pies de página de nuestro documento PDF.

var ChromePdfRenderer = new ChromePdfRenderer();
ChromePdfRenderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    Height = 15,
    HtmlFragment = "<center><i>{page} of {total-pages}<i></center>",
    DrawDividerLine = true
};
ChromePdfRenderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    Height = 20,
    HtmlFragment = "This is Footer {date}",
};

ChromePdfRenderer.RenderHtmlAsPdf("<h1>This is sample page for Tutorial.<h1>")
                 .SaveAs("GeneratePDF.pdf");
var ChromePdfRenderer = new ChromePdfRenderer();
ChromePdfRenderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    Height = 15,
    HtmlFragment = "<center><i>{page} of {total-pages}<i></center>",
    DrawDividerLine = true
};
ChromePdfRenderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    Height = 20,
    HtmlFragment = "This is Footer {date}",
};

ChromePdfRenderer.RenderHtmlAsPdf("<h1>This is sample page for Tutorial.<h1>")
                 .SaveAs("GeneratePDF.pdf");
Dim ChromePdfRenderer As New ChromePdfRenderer()
ChromePdfRenderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
	.Height = 15,
	.HtmlFragment = "<center><i>{page} of {total-pages}<i></center>",
	.DrawDividerLine = True
}
ChromePdfRenderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
	.Height = 20,
	.HtmlFragment = "This is Footer {date}"
}

ChromePdfRenderer.RenderHtmlAsPdf("<h1>This is sample page for Tutorial.<h1>").SaveAs("GeneratePDF.pdf")
$vbLabelText   $csharpLabel

Como se muestra arriba, esta muestra funciona en una aplicación de consola de .NET Core. Especifica HTML con la propiedad HtmlFragment.

Image 11

Encriptar documentos PDF con contraseña

Podemos generar documentos PDF con contraseñas. Establece la propiedad "Password" de un documento PDF para encriptarlo y obligar al usuario a introducir la contraseña correcta para ver el documento. Esta muestra funciona en una aplicación de consola de .NET Core.

var ChromePdfRenderer = new ChromePdfRenderer();
var pdfDocument = ChromePdfRenderer.RenderHtmlAsPdf("<h1>Hello world<h1>");
pdfDocument.Password = "Password@1234";
pdfDocument.SaveAs("secured.pdf");
var ChromePdfRenderer = new ChromePdfRenderer();
var pdfDocument = ChromePdfRenderer.RenderHtmlAsPdf("<h1>Hello world<h1>");
pdfDocument.Password = "Password@1234";
pdfDocument.SaveAs("secured.pdf");
Dim ChromePdfRenderer As New ChromePdfRenderer()
Dim pdfDocument = ChromePdfRenderer.RenderHtmlAsPdf("<h1>Hello world<h1>")
pdfDocument.Password = "Password@1234"
pdfDocument.SaveAs("secured.pdf")
$vbLabelText   $csharpLabel

Salida de archivo PDF:

Image 12

Fusionar y dividir documentos PDF

Podemos fusionar múltiples documentos PDF en un solo documento PDF nuevo. Usa el siguiente código para fusionar y dividir.

var ChromePdfRenderer = new ChromePdfRenderer();
// Join Multiple Existing PDFs into a single document
var pdfDocuments = new List<PdfDocument>
{
    PdfDocument.FromFile("AccountPdf.pdf"),
    PdfDocument.FromFile("GeneratePDF.pdf"),
    PdfDocument.FromFile("wikipedia.pdf")
};

var mergedPdfDocument = PdfDocument.Merge(pdfDocuments);
mergedPdfDocument.SaveAs("merged.pdf");
// Add a cover page
mergedPdfDocument.PrependPdf(ChromePdfRenderer.RenderHtmlAsPdf("<h1>Cover Page</h1><hr>"));
// Remove the last page from the PDF and save again
mergedPdfDocument.RemovePage(mergedPdfDocument.PageCount - 1);
mergedPdfDocument.SaveAs("merged.pdf");
// Copy pages 1,2 and save them as a new document
mergedPdfDocument.CopyPages(1, 2).SaveAs("excerpt.pdf");
var ChromePdfRenderer = new ChromePdfRenderer();
// Join Multiple Existing PDFs into a single document
var pdfDocuments = new List<PdfDocument>
{
    PdfDocument.FromFile("AccountPdf.pdf"),
    PdfDocument.FromFile("GeneratePDF.pdf"),
    PdfDocument.FromFile("wikipedia.pdf")
};

var mergedPdfDocument = PdfDocument.Merge(pdfDocuments);
mergedPdfDocument.SaveAs("merged.pdf");
// Add a cover page
mergedPdfDocument.PrependPdf(ChromePdfRenderer.RenderHtmlAsPdf("<h1>Cover Page</h1><hr>"));
// Remove the last page from the PDF and save again
mergedPdfDocument.RemovePage(mergedPdfDocument.PageCount - 1);
mergedPdfDocument.SaveAs("merged.pdf");
// Copy pages 1,2 and save them as a new document
mergedPdfDocument.CopyPages(1, 2).SaveAs("excerpt.pdf");
Dim ChromePdfRenderer As New ChromePdfRenderer()
' Join Multiple Existing PDFs into a single document
Dim pdfDocuments = New List(Of PdfDocument) From {PdfDocument.FromFile("AccountPdf.pdf"), PdfDocument.FromFile("GeneratePDF.pdf"), PdfDocument.FromFile("wikipedia.pdf")}

Dim mergedPdfDocument = PdfDocument.Merge(pdfDocuments)
mergedPdfDocument.SaveAs("merged.pdf")
' Add a cover page
mergedPdfDocument.PrependPdf(ChromePdfRenderer.RenderHtmlAsPdf("<h1>Cover Page</h1><hr>"))
' Remove the last page from the PDF and save again
mergedPdfDocument.RemovePage(mergedPdfDocument.PageCount - 1)
mergedPdfDocument.SaveAs("merged.pdf")
' Copy pages 1,2 and save them as a new document
mergedPdfDocument.CopyPages(1, 2).SaveAs("excerpt.pdf")
$vbLabelText   $csharpLabel

Usa la función "Merge" para fusionar múltiples archivos PDF juntos, o "CopyPages" para dividir un número de páginas de un documento existente. Incluye PDFs en tu proyecto como "Contenido" para acceder a ellos por nombre de archivo.

Image 13

Extraer imágenes de documentos PDF

Esta función requiere un paquete NuGet adicional. Instala System.Drawing.Common. Utiliza el ExtractAllText para obtener texto y el ExtractAllImages para obtener imágenes.

var ChromePdfRenderer = new ChromePdfRenderer();
var pdfDocument = PdfDocument.FromFile("wikipedia.pdf");
// Get all text
var allText = pdfDocument.ExtractAllText();
// Get all Images
var allImages = pdfDocument.ExtractAllImages();

// Or even find the images and text by page
for (var index = 0; index < pdfDocument.PageCount; index++)
{
    var pageNumber = index + 1;
    var pageText = pdfDocument.ExtractTextFromPage(index);
    var pageImages = pdfDocument.ExtractImagesFromPage(index);
}
var ChromePdfRenderer = new ChromePdfRenderer();
var pdfDocument = PdfDocument.FromFile("wikipedia.pdf");
// Get all text
var allText = pdfDocument.ExtractAllText();
// Get all Images
var allImages = pdfDocument.ExtractAllImages();

// Or even find the images and text by page
for (var index = 0; index < pdfDocument.PageCount; index++)
{
    var pageNumber = index + 1;
    var pageText = pdfDocument.ExtractTextFromPage(index);
    var pageImages = pdfDocument.ExtractImagesFromPage(index);
}
Dim ChromePdfRenderer As New ChromePdfRenderer()
Dim pdfDocument = PdfDocument.FromFile("wikipedia.pdf")
' Get all text
Dim allText = pdfDocument.ExtractAllText()
' Get all Images
Dim allImages = pdfDocument.ExtractAllImages()

' Or even find the images and text by page
For index = 0 To pdfDocument.PageCount - 1
	Dim pageNumber = index + 1
	Dim pageText = pdfDocument.ExtractTextFromPage(index)
	Dim pageImages = pdfDocument.ExtractImagesFromPage(index)
Next index
$vbLabelText   $csharpLabel

Necesitas añadir System.Drawing para guardar imágenes como mapas de bits.

Activar JavaScript

Podemos habilitar JavaScript en nuestro navegador usando IronPDF. El ejemplo de código a continuación muestra cómo habilitar JavaScript en nuestro navegador web.

var ChromePdfRenderer = new ChromePdfRenderer();
ChromePdfRenderer.RenderingOptions = new ChromePdfRenderer()
{
    EnableJavaScript = true,
    RenderDelay = 100
};
var ChromePdfRenderer = new ChromePdfRenderer();
ChromePdfRenderer.RenderingOptions = new ChromePdfRenderer()
{
    EnableJavaScript = true,
    RenderDelay = 100
};
Dim ChromePdfRenderer As New ChromePdfRenderer()
ChromePdfRenderer.RenderingOptions = New ChromePdfRenderer() With {
	.EnableJavaScript = True,
	.RenderDelay = 100
}
$vbLabelText   $csharpLabel

OCR de PDF y extracción de texto

En muchos casos, puedes extraer texto incrustado directamente de documentos PDF. Escribe el siguiente código:

PdfDocument PDF = PdfDocument.FromFile("GeneratePDF.pdf");
// Get all text 
string Text = PDF.ExtractAllText();
PdfDocument PDF = PdfDocument.FromFile("GeneratePDF.pdf");
// Get all text 
string Text = PDF.ExtractAllText();
Dim PDF As PdfDocument = PdfDocument.FromFile("GeneratePDF.pdf")
' Get all text 
Dim Text As String = PDF.ExtractAllText()
$vbLabelText   $csharpLabel

Si esto no funciona, probablemente sea porque tu texto está realmente incrustado en una imagen.

Usa la biblioteca IronOCR para escanear documentos en busca de texto visual que no sea texto plano.

Resumen

Puedes generar documentos PDF, manipularlos y formatearlos de cualquier forma que desees con solo unas pocas líneas de código. Simplemente especifica las operaciones, y IronPDF las manejará. También hay una versión gratuita para el desarrollo y una prueba gratuita antes de la compra. Existen otras bibliotecas de generación de PDF en el mercado, pero muchas son lentas en términos de rendimiento o requieren que pagues para el desarrollo.

La biblioteca .NET de IronPDF está ahora disponible con Iron Suite for .NET. Iron Suite contiene otras bibliotecas .NET como IronXL, IronOCR, IronBarcode, etc. Estas otras bibliotecas son muy útiles para los desarrolladores, por lo que se recomienda probarlas. Si compras el Iron Suite completo, puedes obtener los cinco productos por el precio de solo dos. Para más detalles, haz clic Información del IronPDF Suite.

Puedes descargar un archivo de proyecto desde este Tutorial de Creación de PDF en C# con IronPDF.

Preguntas Frecuentes

¿Cómo puedo generar un PDF a partir de una cadena HTML en C#?

Puedes generar un PDF a partir de una cadena HTML usando el método RenderHtmlAsPdf en ChromePdfRenderer de IronPDF. Este método convierte contenido HTML en formato PDF, que luego se puede guardar usando el método SaveAs.

¿Puedo crear documentos PDF a partir de URLs de páginas web?

Sí, puedes crear PDFs a partir de URLs de páginas web con IronPDF. Utiliza el método RenderUrlAsPdf de ChromePdfRenderer para convertir el contenido de la página web en un documento PDF.

¿Cómo añado encabezados y pies de página a un PDF en C#?

Para añadir encabezados y pies de página a un PDF en C#, usa ChromePdfRenderer de IronPDF configurando las propiedades TextHeader y TextFooter en RenderingOptions. Puedes incluir elementos dinámicos como números de página y fechas.

¿Es posible cifrar documentos PDF en C#?

Sí, puedes cifrar documentos PDF en C# usando IronPDF configurando la propiedad Password del objeto PdfDocument a la contraseña deseada.

¿Cómo puedo unir o dividir archivos PDF usando C#?

Con IronPDF, puedes unir múltiples PDFs en un solo documento usando el método Merge. Para dividir documentos, puedes usar el método CopyPages para extraer páginas específicas.

¿Cuáles son los requisitos del sistema para usar IronPDF?

IronPDF soporta lenguajes .NET como C#, VB.NET y F#. Es compatible con .NET 6, 5, Core 2.x y 3.x, Standard 2 y Framework 4.x. Opera en Windows, Linux, macOS, Docker y Azure OS.

¿Puedo extraer imágenes de archivos PDF en C#?

Sí, puedes extraer imágenes de archivos PDF usando el método ExtractAllImages de IronPDF. Asegúrate de que el paquete NuGet System.Drawing.Common esté incluido para manejar imágenes.

¿Cómo instalo IronPDF en mi proyecto C#?

Instala IronPDF en tu proyecto a través del Gestor de Paquetes NuGet en Visual Studio buscando IronPDF o usando la Consola del Administrador de Paquetes con el comando Install-Package IronPdf.

¿Qué características adicionales ofrece IronPDF?

IronPDF ofrece características como crear PDFs desde múltiples fuentes, añadir encabezados y pies de página, cifrar documentos, extraer texto e imágenes y convertir contenido HTML. También soporta ejecución de JavaScript y capacidades OCR para extraer texto de PDFs con incrustaciones de imágenes.

¿IronPDF es compatible con .NET 10 y qué beneficios aporta?

Sí, IronPDF es totalmente compatible con .NET 10. Funciona de inmediato en proyectos .NET 10, igual que en versiones anteriores de .NET, en Windows, Linux, contenedores y macOS. Entre sus ventajas se incluyen un mejor rendimiento en tiempo de ejecución, soluciones alternativas sin necesidad de configuración y acceso a nuevas funciones del lenguaje C#, además de API compatibles con la ejecución asíncrona.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más