using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
// Load external html assets: Images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Imports IronPdf
' Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True
' Instantiate Renderer
Dim renderer = New ChromePdfRenderer()
' Create a PDF from a HTML string using C#
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
' Export to a file or Stream
pdf.SaveAs("output.pdf")
' Advanced Example with HTML Assets
' Load external html assets: Images, CSS and JavaScript.
' An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
Dim myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
Con IronPDF, puedes crear nuevos documentos PDF a partir de cadenas HTML simples dentro de tu proyecto .NET, y IronPDF puede ser utilizado en C#, F# y VB.NET. Gracias al uso de la clase ChromePdfRenderer, puedes estar seguro de que cualquier documento PDF que generes a partir de una cadena HTML se verápixel-perfect. Con las potentes capacidades de IronPDFConversión de HTML a PDFfunciones, creas archivos PDF de alta calidad adaptados a tus necesidades personales.
Los 4 pasos para convertir una cadena HTML a PDF
Importa la biblioteca IronPDF.
Inicializar un nuevo ChromePdfRenderer Objeto.
Utiliza el ChromePdfRenderer.RenderHtmlAsPdf método.
Guardar el PDF usando PdfDocument.SaveAs.
Vea el ejemplo de código a continuación para más detalles:
using IronPdf;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
pdf.SaveAs("output.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
pdf.SaveAs("output.pdf");
Imports IronPdf
Private renderer = New ChromePdfRenderer()
Private pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
Private myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
pdf.SaveAs("output.pdf")
El primer paso para convertir una cadena HTML a PDF en C# es asegurarse de que tienes la biblioteca de IronPDF configurada correctamente y funcionando dentro de tu proyecto. Al incluir el uso de IronPdf, nos aseguramos de poder acceder a las clases necesarias de la biblioteca IronPDF para realizar la conversión de HTML a PDF. Una vez hecho esto, la siguiente línea, Installation.EnableWebSecurity = true, se utiliza para deshabilitar el acceso a disco local o solicitudes de origen cruzado, asegurando operaciones seguras.
La siguiente línea crea una nueva instancia de ChromePdfRenderer, que se encargará de la conversión de HTML a PDF. En el ejemplo básico, se utiliza el método RenderHtmlAsPdf para convertir una cadena HTML simple.("
Hola Mundo
")en un documento PDF, que se guarda en el disco utilizando el métodoSaveAs`.
En el método avanzado, demostramos cómo IronPDF puede manejar contenido HTML que contiene activos externos como imágenes, CSS y JavaScript. Para cargar estos recursos, se utiliza el parámetro opcional BasePath, que especifica el directorio que contiene los archivos necesarios. El PDF resultante, que incluye los recursos externos, se guarda usando el mismo método SaveAs como se ve en el ejemplo básico. Este ejemplo de código destaca la capacidad de IronPDF para manejar contenido HTML tanto básico como complejo, lo que lo convierte en una herramienta eficiente para generar PDFs de forma programática. Para obtener más ejemplos, consulte la Guía de uso de IronPDF con C#.
Convertir una URL en un PDF
using IronPdf;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from a URL or local file path
var pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/");
// Export to a file or Stream
pdf.SaveAs("url.pdf");
Imports IronPdf
' Instantiate Renderer
Private renderer = New ChromePdfRenderer()
' Create a PDF from a URL or local file path
Private pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/")
' Export to a file or Stream
pdf.SaveAs("url.pdf")
IronPDF hace que sea muy sencillo convertir HTML de URL existentes en documentos PDF. Hay un nivel muy alto de soporte para JavaScript, imágenes, formularios y CSS.
La renderización de PDF a partir de URL ASP.NET que acepten variables de cadena de consulta puede facilitar el desarrollo de PDF sin problemas como un esfuerzo de colaboración entre diseñadores y programadores.
Install the library with NuGet to test its features
Render PDFs from ASP.NET URLs that accept query string variables using IronPDF
Create a PDF document directly from a URL with IronPDF
View and validate your PDF output document easily.
Configuración de generación de PDF
using IronPdf;
using IronPdf.Engines.Chrome;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Many rendering options to use to customize!
renderer.RenderingOptions.SetCustomPaperSizeInInches(12.5, 20);
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape;
renderer.RenderingOptions.Title = "My PDF Document Name";
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(50); // in milliseconds
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
renderer.RenderingOptions.FitToPaperMode = FitToPaperModes.Zoom;
renderer.RenderingOptions.Zoom = 100;
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
// Supports margin customization!
renderer.RenderingOptions.MarginTop = 40; //millimeters
renderer.RenderingOptions.MarginLeft = 20; //millimeters
renderer.RenderingOptions.MarginRight = 20; //millimeters
renderer.RenderingOptions.MarginBottom = 40; //millimeters
// Can set FirstPageNumber if you have a cover page
renderer.RenderingOptions.FirstPageNumber = 1; // use 2 if a cover page will be appended
// Settings have been set, we can render:
renderer.RenderHtmlFileAsPdf("assets/wikipedia.html").SaveAs("output/my-content.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
IronPDF pretende ser lo más flexible posible para el desarrollador.
En esteEjemplo de tutorial de generación de PDF en C#, mostramos el equilibrio entre proporcionar una API que automatice la funcionalidad interna y proporcionar una que le dé el control.
IronPDF admite muchas personalizaciones para los archivos PDF generados, entre ellas: tamaño de página, márgenes de página, contenido de encabezado/pie de página, escalado de contenido, conjuntos de reglas CSS y ejecución de JavaScript.
Ejemplos de configuraciones disponibles en la clase ChromePDFRenderOptions incluyen configuraciones para márgenes, encabezados, pies de página, tamaño de papel y creación de formularios.
Convertir páginas ASPX en PDF
using IronPdf;
private void Form1_Load(object sender, EventArgs e)
{
//Changes the ASPX output into a pdf instead of HTML
IronPdf.AspxToPdf.RenderThisPageAsPdf();
}
Imports IronPdf
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
'Changes the ASPX output into a pdf instead of HTML
IronPdf.AspxToPdf.RenderThisPageAsPdf()
End Sub
Con la biblioteca IronPDF, las páginas web ASP.NET pueden convertirse a PDF en lugar de HTML añadiendo una sola línea de código al evento Form_Load.
Este ejemplo muestra cómo IronPDF puede producir PDF complejos y basados en datos que se diseñan y prueban primero como HTML para mayor simplicidad.
IronPDFConversión de ASPX a PDF le permite llamar a un único método dentro de una página ASPX y hacer que devuelva un PDF en lugar de HTML.
Puede codificar el PDF para que se muestre "en el navegador" o para que se comporte como una descarga de archivos.
Archivo HTML o de imagen a PDF
using IronPdf;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from an existing HTML file using C#
var pdf = renderer.RenderHtmlFileAsPdf("example.html");
// Export to a file or Stream
pdf.SaveAs("output.pdf");
Imports IronPdf
' Instantiate Renderer
Private renderer = New ChromePdfRenderer()
' Create a PDF from an existing HTML file using C#
Private pdf = renderer.RenderHtmlFileAsPdf("example.html")
' Export to a file or Stream
pdf.SaveAs("output.pdf")
Configuración de ASPX a PDF
using IronPdf;
var PdfOptions = new IronPdf.ChromePdfRenderOptions()
{
CreatePdfFormsFromHtml = true,
EnableJavaScript = false,
Title = "My ASPX Page Rendered as a PDF"
//.. many more options available
};
AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.Attachment, "MyPdfFile.pdf", PdfOptions);
Imports IronPdf
Private PdfOptions = New IronPdf.ChromePdfRenderOptions() With {
.CreatePdfFormsFromHtml = True,
.EnableJavaScript = False,
.Title = "My ASPX Page Rendered as a PDF"
}
AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.Attachment, "MyPdfFile.pdf", PdfOptions)
Este ejemplo demuestra cómo el usuario puede cambiar las opciones de impresión del PDF para convertir el formulario en HTML.
IronPDFGuía de conversión de ASPX a PDF dispone de muchas opciones para convertir HTML en PDF a partir de una cadena o un archivo.
Dos opciones de especial importancia son:
Permitir a los desarrolladores especificar si los formularios HTML deben convertirse en formularios PDF interactivos durante la conversión.
Permitir a los desarrolladores especificar si el PDF debe mostrarse "en el navegador" o como un archivo descargable.
Imagen a PDF
using IronPdf;
using System.IO;
using System.Linq;
// One or more images as IEnumerable. This example selects all JPEG images in a specific 'assets' folder.
var imageFiles = Directory.EnumerateFiles("assets").Where(f => f.EndsWith(".jpg") || f.EndsWith(".jpeg"));
// Converts the images to a PDF and save it.
ImageToPdfConverter.ImageToPdf(imageFiles).SaveAs("composite.pdf");
// Also see PdfDocument.RasterizeToImageFiles() method to flatten a PDF to images or thumbnails
Imports IronPdf
Imports System.IO
Imports System.Linq
' One or more images as IEnumerable. This example selects all JPEG images in a specific 'assets' folder.
Private imageFiles = Directory.EnumerateFiles("assets").Where(Function(f) f.EndsWith(".jpg") OrElse f.EndsWith(".jpeg"))
' Converts the images to a PDF and save it.
ImageToPdfConverter.ImageToPdf(imageFiles).SaveAs("composite.pdf")
' Also see PdfDocument.RasterizeToImageFiles() method to flatten a PDF to images or thumbnails
Construye un PDF a partir de uno o más archivos de imagen utilizando la clase IronPdf.ImageToPdfConverter.
Cómo convertir una imagen en un PDF en C#
Dada una única imagen ubicada en un ordenador en C:\images\example.png, podemos convertirla rápidamente en un documento PDF llamando al método IronPdf.ImageToPdfConverter.ImageToPdf con su ruta de archivo:
También podemos convertir imágenes a PDF por lotes en un único documento PDF utilizando System.IO.Directory.EnumerateFiles junto con ImageToPdfConverter.ImageToPdf:
Dim sourceDirectory As String = "D:\web" & ChrW(7) & "ssets"
Dim destinationFile As String = "JpgToPDF.pdf"
Dim imageFiles = Directory.EnumerateFiles(sourceDirectory, "*.jpg")
ImageToPdfConverter.ImageToPdf(imageFiles).SaveAs(destinationFile)
Más información sobreconversión de imágenes a PDF con IronPDF para mejorar sus aplicaciones, o visite la páginaSitio web de Iron Software para descubrir todo el conjunto de herramientas para desarrolladores que ofrece Iron Software, incluidos IronBarcode, IronOCR, etc.
Encabezados y pies de página HTML
using IronPdf;
using System;
// Instantiate Renderer
var renderer = new IronPdf.ChromePdfRenderer();
// Build a footer using html to style the text
// mergeable fields are:
// {page} {total-pages} {url} {date} {time} {html-title} & {pdf-title}
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
MaxHeight = 15, //millimeters
HtmlFragment = "<center><i>{page} of {total-pages}<i></center>",
DrawDividerLine = true
};
// Use sufficient MarginBottom to ensure that the HtmlFooter does not overlap with the main PDF page content.
renderer.RenderingOptions.MarginBottom = 25; //mm
// Build a header using an image asset
// Note the use of BaseUrl to set a relative path to the assets
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
MaxHeight = 20, //millimeters
HtmlFragment = "<img src='logo.png'>",
BaseUrl = new Uri(@"C:\assets\images\").AbsoluteUri
};
// Use sufficient MarginTop to ensure that the HtmlHeader does not overlap with the main PDF page content.
renderer.RenderingOptions.MarginTop = 25; //mm
Imports IronPdf
Imports System
' Instantiate Renderer
Private renderer = New IronPdf.ChromePdfRenderer()
' Build a footer using html to style the text
' mergeable fields are:
' {page} {total-pages} {url} {date} {time} {html-title} & {pdf-title}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
.MaxHeight = 15,
.HtmlFragment = "<center><i>{page} of {total-pages}<i></center>",
.DrawDividerLine = True
}
' Use sufficient MarginBottom to ensure that the HtmlFooter does not overlap with the main PDF page content.
renderer.RenderingOptions.MarginBottom = 25 'mm
' Build a header using an image asset
' Note the use of BaseUrl to set a relative path to the assets
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
.MaxHeight = 20,
.HtmlFragment = "<img src='logo.png'>",
.BaseUrl = (New Uri("C:\assets\images\")).AbsoluteUri
}
' Use sufficient MarginTop to ensure that the HtmlHeader does not overlap with the main PDF page content.
renderer.RenderingOptions.MarginTop = 25 'mm
Los encabezados y pies de página HTML se renderizan como documentos HTML independientes que pueden tener sus propios activos y hojas de estilo. Ofrece a los desarrolladores un control total sobre el aspecto de sus encabezados y pies de página. La altura de los encabezados o pies de página renderizados puede controlarse para que coincidan exactamente con su contenido.
En este ejemplo, mostramos cómo añadir encabezados y pies de página HTML a sus documentos PDF en IronPDF.
Cuando se utiliza HtmlHeaderFooter, es importante establecer HtmlFragment, que se utilizará para renderizar los encabezados o pies de página. Debería ser un fragmento HTML en lugar de un documento completo. También puede contener estilos e imágenes.
También puede combinar metadatos en su HTML utilizando cualquiera de estas cadenas de marcadores de posición como {página} {total-páginas} {url} {fecha} {tiempo} {html-title} {título pdf}.
Encabezados y pies de página sencillos
using IronPdf;
// Initiate PDF Renderer
var renderer = new ChromePdfRenderer();
// Add a header to every page easily
renderer.RenderingOptions.FirstPageNumber = 1; // use 2 if a cover page will be appended
renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
renderer.RenderingOptions.TextHeader.CenterText = "{url}";
renderer.RenderingOptions.TextHeader.Font = IronSoftware.Drawing.FontTypes.Helvetica;
renderer.RenderingOptions.TextHeader.FontSize = 12;
renderer.RenderingOptions.MarginTop = 25; //create 25mm space for header
// Add a footer too
renderer.RenderingOptions.TextFooter.DrawDividerLine = true;
renderer.RenderingOptions.TextFooter.Font = IronSoftware.Drawing.FontTypes.Arial;
renderer.RenderingOptions.TextFooter.FontSize = 10;
renderer.RenderingOptions.TextFooter.LeftText = "{date} {time}";
renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}";
renderer.RenderingOptions.MarginTop = 25; //create 25mm space for footer
// Mergeable fields are:
// {page} {total-pages} {url} {date} {time} {html-title} & {pdf-title}
Imports IronPdf
' Initiate PDF Renderer
Private renderer = New ChromePdfRenderer()
' Add a header to every page easily
renderer.RenderingOptions.FirstPageNumber = 1 ' use 2 if a cover page will be appended
renderer.RenderingOptions.TextHeader.DrawDividerLine = True
renderer.RenderingOptions.TextHeader.CenterText = "{url}"
renderer.RenderingOptions.TextHeader.Font = IronSoftware.Drawing.FontTypes.Helvetica
renderer.RenderingOptions.TextHeader.FontSize = 12
renderer.RenderingOptions.MarginTop = 25 'create 25mm space for header
' Add a footer too
renderer.RenderingOptions.TextFooter.DrawDividerLine = True
renderer.RenderingOptions.TextFooter.Font = IronSoftware.Drawing.FontTypes.Arial
renderer.RenderingOptions.TextFooter.FontSize = 10
renderer.RenderingOptions.TextFooter.LeftText = "{date} {time}"
renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}"
renderer.RenderingOptions.MarginTop = 25 'create 25mm space for footer
' Mergeable fields are:
' {page} {total-pages} {url} {date} {time} {html-title} & {pdf-title}
Los encabezados y pies de página pueden añadirse a los documentos PDF de dos formas distintas.
Encabezados y pies de página de texto clásicos, que permiten añadir encabezados basados en texto, con la opción de fusionar datos dinámicos.
-Encabezados y pies de página HTML con IronPDFel objetivo de la traducción es explicar las características y ventajas de estas herramientas para desarrolladores, que permiten al desarrollador convertir encabezados y pies de página HTML en archivos PDF, además de facilitar la creación de plantillas con datos dinámicos. Este método es más flexible, aunque más difícil de utilizar.
La clase TextHeaderFooter de IronPDF define las opciones de visualización de los encabezados y pies de página PDF. Utiliza un enfoque lógico para la representación de encabezados y pies de página para los casos de uso más comunes.
En este ejemplo, le mostramos cómo añadir encabezados y pies de página de texto clásico a sus documentos PDF en IronPDF.
Cuando añada encabezados y pies de página a su documento, tiene la opción de establecer que el texto de los encabezados esté centrado en el documento PDF. También puede combinar metadatos en su cabecera utilizando cadenas de marcadores de posición. Puede encontrar estos marcadores de posición en la secciónDocumentación de la API TextHeaderFooter. También puede añadir un separador de línea horizontal entre los encabezados o pies de página y el contenido de la página en cada página del documento PDF, influir en la fuente y los tamaños de fuente, etc. Es una función muy útil que cumple todos los requisitos.
Edición de PDF
using IronPdf;
using System.Collections.Generic;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Join Multiple Existing PDFs into a single document
var pdfs = new List<PdfDocument>();
pdfs.Add(PdfDocument.FromFile("A.pdf"));
pdfs.Add(PdfDocument.FromFile("B.pdf"));
pdfs.Add(PdfDocument.FromFile("C.pdf"));
var pdf = PdfDocument.Merge(pdfs);
pdf.SaveAs("merged.pdf");
// Add a cover page
pdf.PrependPdf(renderer.RenderHtmlAsPdf("<h1>Cover Page</h1><hr>"));
// Remove the last page from the PDF and save again
pdf.RemovePage(pdf.PageCount - 1);
pdf.SaveAs("merged.pdf");
// Copy pages 5-7 and save them as a new document.
pdf.CopyPages(4, 6).SaveAs("excerpt.pdf");
foreach (var eachPdf in pdfs)
{
eachPdf.Dispose();
}
Imports IronPdf
Imports System.Collections.Generic
' Instantiate Renderer
Private renderer = New ChromePdfRenderer()
' Join Multiple Existing PDFs into a single document
Private pdfs = New List(Of PdfDocument)()
pdfs.Add(PdfDocument.FromFile("A.pdf"))
pdfs.Add(PdfDocument.FromFile("B.pdf"))
pdfs.Add(PdfDocument.FromFile("C.pdf"))
Dim pdf = PdfDocument.Merge(pdfs)
pdf.SaveAs("merged.pdf")
' Add a cover page
pdf.PrependPdf(renderer.RenderHtmlAsPdf("<h1>Cover Page</h1><hr>"))
' Remove the last page from the PDF and save again
pdf.RemovePage(pdf.PageCount - 1)
pdf.SaveAs("merged.pdf")
' Copy pages 5-7 and save them as a new document.
pdf.CopyPages(4, 6).SaveAs("excerpt.pdf")
For Each eachPdf In pdfs
eachPdf.Dispose()
Next eachPdf
IronPDF también permite a sus usuarios añadir marcas de agua, rotar páginas, añadir anotaciones, firmar digitalmente páginas PDF, crear nuevos documentos PDF, adjuntar portadas, personalizar tamaños PDF y mucho más al generar y formatear archivos PDF. Además, admite la conversión de PDF en todos los tipos de archivos de imagen convencionales, incluidos JPG, BMP, JPEG, GIF, PNG, TIFF, etc.
Leerel tutorial de edición de PDF en C# para aprender a utilizar IronPDF para modificar documentos PDF y adaptarlos a los requisitos del proyecto.
Utilice el método `FromFile` para importar varios archivos PDF
Acceso y modificación de archivos PDF mediante API intuitivas en C#
Guardar la versión actualizada como un nuevo PDF utilizando C#
Ver el documento PDF recién editado
Contraseñas, seguridad y metadatos
using IronPdf;
// Open an Encrypted File, alternatively create a new PDF from Html
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");
// Get file metadata
System.Collections.Generic.List<string> metadatakeys = pdf.MetaData.Keys(); // returns {"Title", "Creator", ...}
// Remove file metadata
pdf.MetaData.RemoveMetaDataKey("Title");
metadatakeys = pdf.MetaData.Keys(); // return {"Creator", ...} // title was deleted
// Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = System.DateTime.Now;
// The following code makes a PDF read only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
// Change or set the document encryption password
pdf.SecuritySettings.OwnerPassword = "top-secret"; // password to edit the pdf
pdf.SecuritySettings.UserPassword = "sharable"; // password to open the pdf
pdf.SaveAs("secured.pdf");
Imports System
Imports IronPdf
' Open an Encrypted File, alternatively create a new PDF from Html
Private pdf = PdfDocument.FromFile("encrypted.pdf", "password")
' Get file metadata
Private metadatakeys As System.Collections.Generic.List(Of String) = pdf.MetaData.Keys() ' returns {"Title", "Creator", ...}
' Remove file metadata
pdf.MetaData.RemoveMetaDataKey("Title")
metadatakeys = pdf.MetaData.Keys() ' return {"Creator", ...} // title was deleted
' Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto"
pdf.MetaData.Keywords = "SEO, Friendly"
pdf.MetaData.ModifiedDate = DateTime.Now
' The following code makes a PDF read only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption()
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key")
pdf.SecuritySettings.AllowUserAnnotations = False
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserFormData = False
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights
' Change or set the document encryption password
pdf.SecuritySettings.OwnerPassword = "top-secret" ' password to edit the pdf
pdf.SecuritySettings.UserPassword = "sharable" ' password to open the pdf
pdf.SaveAs("secured.pdf")
IronPDF ofrece a los desarrolladores opciones sólidas de seguridad para PDF, permitiendo la personalización y configuración de metadatos, contraseñas, permisos de PDF y más. Con las opciones de contraseñas, seguridad y metadatos de IronPDF, puedes crear permisos personalizados y niveles de seguridad que se ajusten a las necesidades de tu documento PDF. Esto se realiza gracias al uso de clases como las clases SecuritySettings y MetaData. Algunas opciones incluyen limitar los documentos PDF para que no se puedan imprimir, configurarlos como solo lectura, cifrado de 128 bits y protección con contraseña de sus documentos PDF.
Configurar metadatos personalizados funciona implementando la clase MetaData para acceder a las diversas opciones de metadatos de PDF y establecerlos con tus valores personalizados. Esto incluye cambiar el autor, las palabras clave, los datos modificados y más. Configurar ajustes de seguridad personalizados incluye la capacidad de establecer contraseñas personalizadas de usuario y propietario, permisos de impresión, modo de solo lectura y más.
pasos para configurar contraseñas, metadatos y seguridad en PDF
var pdf = PdfDocument.FromFile("encrypted.pdf", "contraseña");
Para comenzar a personalizar la seguridad de sus documentos PDF, primero debe cargar un PDF existente o crear uno nuevo. Aquí, hemos cargado un documento PDF existente protegido con contraseña, donde hemos ingresado la contraseña necesaria para abrir el documento PDF. Una vez que el PDF está cargado, luego usamos pdf.MetaData.Keys(); para obtener los metadatos actuales del PDF. Para eliminar los valores de metadatos PDF existentes, use el método RemoveMetaDataKey. Para comenzar a establecer un nuevo valor de metadatos, use pdf.MetaData.metadatafield(por ejemplo, pdf.MetaData.Keywords)y luego simplemente asigna el nuevo valor a él. Los campos de metadatos como Título y Palabras clave utilizan valores de cadena, mientras que el campo de Fecha de modificación utiliza valores de fecha y hora.
A continuación, hemos configurado nuevos ajustes de seguridad utilizando la clase SecuritySettings. Como puedes ver, hay una variedad de configuraciones que puedes ajustar aquí. Esto le brinda el control total sobre los permisos y niveles de seguridad de cada documento PDF con el que trabaja. Para acceder a estas configuraciones, solo necesitas asegurarte de usar pdf.SecuritySettings, seguido de la configuración que deseas ajustar. Por ejemplo, la propiedad MakePdfDocumentReadOnly establece el documento PDF como de solo lectura, encriptando el contenido con 128 bits. Otras opciones para SecuritySettings incluyen:
AllowUserAnnotations: Controla si los usuarios pueden anotar el PDF.
AllowUserPrinting: Controla los permisos de impresión para el documento.
AllowUserFormData: Establece los permisos para que los usuarios puedan completar formularios.
OwnerPassword: Establece la contraseña del propietario para el PDF, que se utiliza para deshabilitar o habilitar las demás configuraciones de seguridad.
UserPassword: Establece la contraseña del usuario para el PDF, que debe ingresarse para abrir o imprimir el documento.
using IronPdf;
// Stamps a Watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
pdf.SaveAs("watermarked.pdf");
Imports IronPdf
' Stamps a Watermark onto a new or existing PDF
Private renderer = New ChromePdfRenderer()
Private pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center)
pdf.SaveAs("watermarked.pdf")
IronPDF proporciona métodos para 'marcar con agua' documentos PDF con HTML.
Mediante el método ApplyStamp, los desarrolladores pueden añadir una marca de agua basada en HTML a un archivo PDF. Como se muestra en el ejemplo anterior, el código HTML de la marca de agua es el primer argumento del método. Los argumentos adicionales de ApplyStamp controlan la rotación, opacidad y posición de la marca de agua.
Utilice el método ApplyStamp en lugar del método ApplyWatermark para un control más granular sobre la colocación de la marca de agua. Por ejemplo, utilice ApplyStamp para:
Añade marcas de agua de texto, imagen o HTML a los PDF
Aplicar la misma marca de agua a todas las páginas del PDF
Aplica diferentes marcas de agua a páginas PDF específicas
Ajuste la colocación de las marcas de agua delante o detrás de la copia de página
Ajusta la opacidad, la rotación y la alineación de las marcas de agua con más precisión
Crear un nuevo DocumentoPdf o utilizar un DocumentoPdf archivo.
Llame al Aplicar marca de agua para añadir marcas de agua al PDF.
Exporte el archivo PDF llamando a Guardar como.
Fondos y primeros planos
using IronPdf;
// With IronPDF, we can easily merge 2 PDF files using one as a background or foreground
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
pdf.AddBackgroundPdf(@"MyBackground.pdf");
pdf.AddForegroundOverlayPdfToPage(0, @"MyForeground.pdf", 0);
pdf.SaveAs("complete.pdf");
Imports IronPdf
' With IronPDF, we can easily merge 2 PDF files using one as a background or foreground
Private renderer = New ChromePdfRenderer()
Private pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")
pdf.AddBackgroundPdf("MyBackground.pdf")
pdf.AddForegroundOverlayPdfToPage(0, "MyForeground.pdf", 0)
pdf.SaveAs("complete.pdf")
Es posible que desee utilizar un fondo y un primer plano específicos al crear y renderizar sus documentos PDF en IronPDF. En tal caso, puede utilizar un PDF existente o renderizado como fondo o primer plano de otro documento PDF. Esto es especialmente útil para la coherencia del diseño y las plantillas.
Este ejemplo muestra cómo utilizar un documento PDF como fondo o primer plano de otro documento PDF.
Puede hacerlo en C# cargando o creando un PDF de varias páginas como un objeto IronPdf.PdfDocument.
Puede añadir fondos utilizando PdfDocument.AddBackgroundPdf. Para obtener más información sobre los métodos de inserción en segundo plano, consulte la páginaIronPDF.PdfDocument documentación de referencia; describe varios métodos de inserción en segundo plano y sus anulaciones. Esto añade un fondo a cada página de su PDF de trabajo. El fondo se copia de una página de otro documento PDF.
Puedes añadir fondos, también conocidos como "Overlays", utilizando PdfDocument.AddForegroundOverlayPdfToPage. Para obtener información detallada sobre los métodos de inserción en primer plano, consulte la páginaRecubrimiento de documentación IronPDF.PdfDocument.
Datos del formulario
using IronPdf;
using System;
// Step 1. Creating a PDF with editable forms from HTML using form and input tags
// Radio Button and Checkbox can also be implemented with input type 'radio' and 'checkbox'
const string formHtml = @"
<html>
<body>
<h2>Editable PDF Form</h2>
<form>
First name: <br> <input type='text' name='firstname' value=''> <br>
Last name: <br> <input type='text' name='lastname' value=''> <br>
<br>
<p>Please specify your gender:</p>
<input type='radio' id='female' name='gender' value= 'Female'>
<label for='female'>Female</label> <br>
<br>
<input type='radio' id='male' name='gender' value='Male'>
<label for='male'>Male</label> <br>
<br>
<input type='radio' id='non-binary/other' name='gender' value='Non-Binary / Other'>
<label for='non-binary/other'>Non-Binary / Other</label>
<br>
<p>Please select all medical conditions that apply:</p>
<input type='checkbox' id='condition1' name='Hypertension' value='Hypertension'>
<label for='condition1'> Hypertension</label><br>
<input type='checkbox' id='condition2' name='Heart Disease' value='Heart Disease'>
<label for='condition2'> Heart Disease</label><br>
<input type='checkbox' id='condition3' name='Stoke' value='Stoke'>
<label for='condition3'> Stoke</label><br>
<input type='checkbox' id='condition4' name='Diabetes' value='Diabetes'>
<label for='condition4'> Diabetes</label><br>
<input type='checkbox' id='condition5' name='Kidney Disease' value='Kidney Disease'>
<label for='condition5'> Kidney Disease</label><br>
</form>
</body>
</html>";
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
renderer.RenderHtmlAsPdf(formHtml).SaveAs("BasicForm.pdf");
// Step 2. Reading and Writing PDF form values.
var FormDocument = PdfDocument.FromFile("BasicForm.pdf");
// Set and Read the value of the "firstname" field
var FirstNameField = FormDocument.Form.FindFormField("firstname");
FirstNameField.Value = "Minnie";
Console.WriteLine("FirstNameField value: {0}", FirstNameField.Value);
// Set and Read the value of the "lastname" field
var LastNameField = FormDocument.Form.FindFormField("lastname");
LastNameField.Value = "Mouse";
Console.WriteLine("LastNameField value: {0}", LastNameField.Value);
FormDocument.SaveAs("FilledForm.pdf");
Imports IronPdf
Imports System
' Step 1. Creating a PDF with editable forms from HTML using form and input tags
' Radio Button and Checkbox can also be implemented with input type 'radio' and 'checkbox'
Private Const formHtml As String = "
<html>
<body>
<h2>Editable PDF Form</h2>
<form>
First name: <br> <input type='text' name='firstname' value=''> <br>
Last name: <br> <input type='text' name='lastname' value=''> <br>
<br>
<p>Please specify your gender:</p>
<input type='radio' id='female' name='gender' value= 'Female'>
<label for='female'>Female</label> <br>
<br>
<input type='radio' id='male' name='gender' value='Male'>
<label for='male'>Male</label> <br>
<br>
<input type='radio' id='non-binary/other' name='gender' value='Non-Binary / Other'>
<label for='non-binary/other'>Non-Binary / Other</label>
<br>
<p>Please select all medical conditions that apply:</p>
<input type='checkbox' id='condition1' name='Hypertension' value='Hypertension'>
<label for='condition1'> Hypertension</label><br>
<input type='checkbox' id='condition2' name='Heart Disease' value='Heart Disease'>
<label for='condition2'> Heart Disease</label><br>
<input type='checkbox' id='condition3' name='Stoke' value='Stoke'>
<label for='condition3'> Stoke</label><br>
<input type='checkbox' id='condition4' name='Diabetes' value='Diabetes'>
<label for='condition4'> Diabetes</label><br>
<input type='checkbox' id='condition5' name='Kidney Disease' value='Kidney Disease'>
<label for='condition5'> Kidney Disease</label><br>
</form>
</body>
</html>"
' Instantiate Renderer
Private renderer = New ChromePdfRenderer()
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
renderer.RenderHtmlAsPdf(formHtml).SaveAs("BasicForm.pdf")
' Step 2. Reading and Writing PDF form values.
Dim FormDocument = PdfDocument.FromFile("BasicForm.pdf")
' Set and Read the value of the "firstname" field
Dim FirstNameField = FormDocument.Form.FindFormField("firstname")
FirstNameField.Value = "Minnie"
Console.WriteLine("FirstNameField value: {0}", FirstNameField.Value)
' Set and Read the value of the "lastname" field
Dim LastNameField = FormDocument.Form.FindFormField("lastname")
LastNameField.Value = "Mouse"
Console.WriteLine("LastNameField value: {0}", LastNameField.Value)
FormDocument.SaveAs("FilledForm.pdf")
Con IronPDF puede crear documentos PDF editables con la misma facilidad que un documento normal. La clase PdfForm es una colección de campos de formulario editables por el usuario dentro de un documento PDF. Puede implementarse en su PDF renderizado para convertirlo en un formulario o en un documento editable.
Este ejemplo muestra cómo crear formularios PDF editables en IronPDF.
Los PDF con formularios editables pueden crearse a partir de HTML simplemente añadiendo <form>, <input>, y <textarea> etiquetas a las partes del documento.
El PdfDocument.Form.FindFormField se puede usar para leer y escribir el valor de cualquier campo de formulario. El nombre del campo será el mismo que el atributo 'name' dado a ese campo en su HTML.
El objeto PdfDocument.Form puede utilizarse de dos maneras.
La primera es rellenar el valor por defecto de los campos de formulario, que deben enfocarse en Adobe Reader para mostrar este valor.
La segunda es leer datos de formularios PDF rellenados por el usuario en cualquier idioma.
Rasterizar un PDF en imágenes
using IronPdf;
using IronSoftware.Drawing;
var pdf = PdfDocument.FromFile("Example.pdf");
// Extract all pages to a folder as image files
pdf.RasterizeToImageFiles(@"C:\image\folder\*.png");
// Dimensions and page ranges may be specified
pdf.RasterizeToImageFiles(@"C:\image\folder\example_pdf_image_*.jpg", 100, 80);
// Extract all pages as AnyBitmap objects
AnyBitmap[] pdfBitmaps = pdf.ToBitmap();
Imports IronPdf
Imports IronSoftware.Drawing
Private pdf = PdfDocument.FromFile("Example.pdf")
' Extract all pages to a folder as image files
pdf.RasterizeToImageFiles("C:\image\folder\*.png")
' Dimensions and page ranges may be specified
pdf.RasterizeToImageFiles("C:\image\folder\example_pdf_image_*.jpg", 100, 80)
' Extract all pages as AnyBitmap objects
Dim pdfBitmaps() As AnyBitmap = pdf.ToBitmap()
Utilice IronPDF para convertir un PDF en imágenes con el tipo de archivo, las dimensiones de imagen y la calidad de PPP que prefiera.
Para convertir un documento PDF en imágenes, llame al método RasterizeToImageFiles de IronPDF sobre un objeto PdfDocument. Un documento PDF puede cargarse utilizando el método PdfDocument.FromFile o uno de los métodos disponiblesMétodos de generación de PDF para .NET Core.
rasterizeToImageFiles" convierte cada página del PDF en una imagen rasterizada. El primer argumento especifica el patrón de nomenclatura que se utilizará para cada imagen. Se pueden utilizar argumentos opcionales para personalizar la calidad y las dimensiones de cada imagen. Otra opción permite convertir en imágenes las páginas seleccionadas del PDF.
La línea 24 del código de ejemplo muestra el método ToBitMap. Llame a este método en cualquier objeto PdfDocument para convertir rápidamente el PDF en objetos AnyBitmap que se pueden guardar en archivos o manipular según sea necesario.
Importar archivo PDF existente con FromFile método
Convierte PDF a imagen con RasterizeToImageFiles método
Especifique el directorio de almacenamiento y el tamaño de la imagen
Compruebe las imágenes de salida
Firmar digitalmente un PDF
using IronPdf;
using IronPdf.Signing;
// Cryptographically sign an existing PDF in 1 line of code!
new IronPdf.Signing.PdfSignature("Iron.p12", "123456").SignPdfFile("any.pdf");
/***** Advanced example for more control *****/
// Step 1. Create a PDF
var renderer = new ChromePdfRenderer();
var doc = renderer.RenderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");
// Step 2. Create a Signature.
// You may create a .pfx or .p12 PDF signing certificate using Adobe Acrobat Reader.
// Read: https://helpx.adobe.com/acrobat/using/digital-ids.html
var signature = new IronPdf.Signing.PdfSignature("Iron.pfx", "123456")
{
// Step 3. Optional signing options and a handwritten signature graphic
SigningContact = "support@ironsoftware.com",
SigningLocation = "Chicago, USA",
SigningReason = "To show how to sign a PDF"
};
//Step 3. Sign the PDF with the PdfSignature. Multiple signing certificates may be used
doc.Sign(signature);
//Step 4. The PDF is not signed until saved to file, steam or byte array.
doc.SaveAs("signed.pdf");
Imports IronPdf
Imports IronPdf.Signing
' Cryptographically sign an existing PDF in 1 line of code!
Call (New IronPdf.Signing.PdfSignature("Iron.p12", "123456")).SignPdfFile("any.pdf")
'''*** Advanced example for more control ****
' Step 1. Create a PDF
Dim renderer = New ChromePdfRenderer()
Dim doc = renderer.RenderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>")
' Step 2. Create a Signature.
' You may create a .pfx or .p12 PDF signing certificate using Adobe Acrobat Reader.
' Read: https://helpx.adobe.com/acrobat/using/digital-ids.html
Dim signature = New IronPdf.Signing.PdfSignature("Iron.pfx", "123456") With {
.SigningContact = "support@ironsoftware.com",
.SigningLocation = "Chicago, USA",
.SigningReason = "To show how to sign a PDF"
}
'Step 3. Sign the PDF with the PdfSignature. Multiple signing certificates may be used
doc.Sign(signature)
'Step 4. The PDF is not signed until saved to file, steam or byte array.
doc.SaveAs("signed.pdf")
Su empresa gasta demasiado en suscripciones anuales para la seguridad y el cumplimiento de PDF. Considere IronSecureDocque ofrece soluciones para gestionar servicios SaaS como la firma digital, la redacción, el cifrado y la protección, todo por un único pago. Explorar la documentación de IronSecureDoc.
Firmar digitalmente un documento PDF ayuda a asegurar la integridad del documento al proporcionar un método de autenticación del propio PDF. Con IronPDF, tienes varias opciones cuando se trata de firmar un archivo PDF nuevo o existente. Estas opciones son firmar digitalmente el documento PDF con un certificado, añadir una versión gráfica de tu firma manuscrita al PDF, estampar una imagen del certificado en el PDF, o simplemente crear un campo de formulario de firma en el PDF para solicitar la firma del usuario.
Pasos para firmar digitalmente un PDF con IronPDF
var renderer = new ChromePdfRenderer();
var doc = renderer.RenderHtmlAsPdf(<h1>Prueba de seguridad digital de 2048 bits</h1>);
var signature = new IronPdf.Signing.PdfSignature("Iron.pfx", "123456")
{
SigningContact = "support@ironsoftware.com",
SigningLocation = "Chicago, EE. UU.",
SigningReason = "Para mostrar cómo firmar un PDF"
};
doc.Sign(firma);
doc.SaveAs("signed.pdf");
El primer paso en este proceso es cargar o crear el PDF que queremos firmar. Para este ejemplo, crearemos un nuevo documento PDF a partir de contenido HTML. Para hacer esto, primero necesitarás crear una nueva instancia de ChromePdfRenderer. Este es el potente motor de renderizado de IronPDF, utilizado para renderizar HTML, CSS y JavaScript a PDF sin perder calidad. A continuación, utilizamos el método RenderHtmlAsPdf para renderizar nuestra cadena HTML en un documento PDF de alta calidad listo para ser firmado. El PDF resultante se almacena en la variable doc.
A continuación, necesitamos crear nuestra firma. En el ejemplo de hoy, firmaremos nuestro documento PDF con un certificado. PdfSignature representa el objeto de firma digital para firmar el PDF y requiere la ruta al archivo ".pfx" que queremos usar para la firma y la contraseña para acceder a este archivo. Luego hemos incluido tres propiedades opcionales. SigningContact añade un correo electrónico o información de contacto a los metadatos de la firma, SigningLocation representa el lugar donde se firma el documento, y SigningReason proporciona la razón por la cual se firma el documento.
A continuación, necesitamos firmar el documento PDF con el objeto PdfSignature que creamos. Al llamar al método Sign, podemos aplicar la firma al documento PDF en una sola línea. Se pueden aplicar múltiples certificados de firma al documento PDF utilizando este método.
Finalmente, guardaremos el documento PDF firmado utilizando el método SaveAs, que guarda el PDF en la ubicación de archivo especificada.
Nuestra solución de biblioteca PDF para .NET es un sueño para los desarrolladores, especialmente para los ingenieros de software que utilizan C#. Puedes crear fácilmente una biblioteca PDF central para .NET.
IronPDF utiliza un motor Chromium .NET para renderizar páginas HTML en archivos PDF. No hay necesidad de usar APIs complejas para posicionar o diseñar PDFs. IronPDF admite documentos web estándar HTML, ASPX, JS, CSS e imágenes.
Te permite crear una biblioteca PDF para .NET utilizando HTML5, CSS, JavaScript y también imágenes. Puedes editar, estampar y agregar encabezados y pies de página a un PDF sin esfuerzo. ¡También facilita la lectura del texto de PDF y la extracción de imágenes!
Características de la biblioteca PDF .NET con IronPDF
We’ve never seen a more accurate HTML to PDF converter! Our industry-leading PDF library has so many features and a rendering engine that enables heedlessness and embeddability in the Chrome / Webkit. No installation is required.
Create
Create PDF documents from HTML 4 and 5, CSS, and JavaScript
Generate PDF documents from URL
Load URL with custom network login credentials, UserAgents, Proxies, Cookies, HTTP headers, form variables allowing login behind HTML login forms
Crear, combinar, dividir, editar y manipular archivos PDF cuando quieras, de la manera que quieras, es muy fácil. Utiliza tus habilidades de desarrollo en C# para aprovechar la lista de funciones en expansión de IronPDF.
Para comenzar a trabajar en un proyecto con IronPDF, descarga el Instalador del Paquete NuGet gratuito o descarga directamente el DLL. A continuación, puedes proceder a crear documentos PDF, editar y manipular formatos de archivo existentes, o exportar a cualquier formato sin Adobe Acrobat.
Nuestro soporte abarca desde un rango gratuito y exhaustivo de tutoriales hasta soporte en vivo 24/7.
IronPDF te permite trabajar con formatos de documentos HTML convencionales y convertirlos en PDF en aplicaciones web ASP.NET. Aplica múltiples configuraciones, incluidas la configuración del comportamiento y nombres de archivos, agregar encabezados y pies de página, cambiar opciones de impresión, agregar saltos de página, combinar asincronía y multitarea, y más.
De manera similar, puedes convertir HTML de C# MVC a PDF para aplicaciones ASP .NET, imprimir la vista MVC para devolver el formato de archivo PDF, compatible con HTML, CSS, JavaScript e imágenes.
Además, crea documentos PDF y convierte una página HTML existente a PDF en aplicaciones y sitios web ASP .NET C# (C# html-to-pdf converter). El HTML enriquecido se utiliza como contenido PDF con la capacidad de editar y manipular con la función de generación de IronPDF.
Con IronPDF, preocuparse por las resoluciones es un problema del pasado. Los documentos PDF de salida de IronPdf son idénticos en píxeles a la funcionalidad PDF en el navegador web Google Chrome.
¡Los beneficios son claros! Con IronPDF, puedes hacer mucho más, de manera mucho más fácil. Nuestro producto es perfecto para cualquiera que necesite crear, gestionar y editar una biblioteca de PDFs, incluyendo negocios en bienes raíces, publicación, finanzas y empresas. Los precios de nuestra solución también son muy competitivos.
¿Listo para ver qué puede hacer IronPDF por tus proyectos y tu negocio? Pruébalo ahora