Saltar al pie de página
USANDO IRONPDF

Conversión de HTML a PDF en .NET con IronPDF

IronPDF es un convertidor de HTML a PDF .NET que utiliza el motor de renderizado de Chrome para transformar cadenas HTML, archivos y páginas web en documentos PDF de alta calidad con renderizado CSS preciso y soporte de ejecución de JavaScript.

Convertir HTML a PDF es un desafío complejo en el desarrollo .NET. Necesita un convertidor de PDF que maneje diseños CSS modernos, ejecute JavaScript correctamente y produzca documentos de calidad, todo ello siendo fácil de implementar. IronPDF aborda estos desafíos con la representación basada en Chrome, lo que le permite convertir archivos HTML, cadenas y páginas web con fidelidad de calidad de navegador.

Este artículo explora cómo implementar la generación de PDF profesional en su aplicación .NET, desde conversiones básicas hasta funciones avanzadas como firmas digitales y manipulación de PDF en Windows, Linux y Azure . Aprenderá a utilizar operaciones asincrónicas para el rendimiento y el registro personalizado para la depuración.

Banner de la página de inicio de la biblioteca IronPDF C# PDF que muestra características clave, como la conversión de HTML a PDF, la edición de PDF, opciones de implementación flexibles y una prueba gratuita.

¿Por qué elegir IronPDF para la conversión de HTML a PDF en .NET?

¿Qué hace que Chrome Rendering sea superior para la generación de PDF?

El motor de renderizado Chrome de IronPDF ofrece resultados excepcionales. A diferencia de las bibliotecas que utilizan instantáneas WebKit obsoletas, IronPDF utiliza la misma tecnología Blink que impulsa Google Chrome. Sus archivos PDF se muestran exactamente como aparecen en la vista previa de impresión de Chrome: sin estilos faltantes ni diseños dañados. Obtenga información sobre las capacidades de renderizado de Chrome y comparaciones con soluciones de la competencia .

¿Cómo maneja IronPDF las tecnologías web modernas?

Las aplicaciones web modernas utilizan CSS y JavaScript sofisticados. IronPDF proporciona soporte nativo para CSS3, incluidos flexbox, sistemas de cuadrícula, transformaciones y animaciones. El motor procesa JavaScript antes de renderizarlo, lo que garantiza que el contenido generado dinámicamente aparezca correctamente. Ya sea convirtiendo archivos o renderizando páginas, IronPDF captura el estado final. La biblioteca admite diseños Bootstrap , diseños responsivos y contenido WebGL .

¿Por qué el diseño de API es amigable para los desarrolladores?

La biblioteca prioriza la experiencia del desarrollador a través de un diseño de API sencillo. Trabaja con HTML y CSS familiares mientras IronPDF se encarga de la complejidad. La clase ChromePdfRenderer proporciona valores predeterminados inteligentes y al mismo tiempo ofrece un control detallado cuando es necesario. IronPDF ofrece una facilidad superior en comparación con QuestPDF o Syncfusion .

Panel de descripción general de funciones que muestra cuatro capacidades principales de PDF: crear PDF, convertir PDF, editar PDF y firmar y proteger PDF, con listas detalladas de funciones en cada categoría.

¿Cómo instalar IronPDF en su proyecto .NET 8?

¿Cuál es la forma más rápida de instalar a través del administrador de paquetes?

La configuración de IronPDF lleva unos minutos. Utilice la consola del Administrador de paquetes en Visual Studio:

Install-Package IronPdf

Consola del administrador de paquetes que muestra el proceso de instalación del paquete NuGet de IronPDF con múltiples dependencias en proceso de descarga.

Esto descarga el paquete y las dependencias, configurando automáticamente las referencias del proyecto. El paquete incluye binarios específicos de la plataforma que se resuelven en tiempo de ejecución. Para escenarios avanzados, explore la implementación de Docker o los contenedores remotos .

¿Cómo realizo la instalación utilizando la CLI .NET?

Para la instalación mediante línea de comandos:

dotnet add package IronPdf

Esto funciona bien para VS Code, Rider o pipelines automatizadas. Consulte la documentación para obtener instrucciones específicas de la plataforma, incluida la compatibilidad con F# .

¿Qué pasa con los métodos de instalación basados en GUI?

El Administrador de paquetes NuGet de Visual Studio proporciona una interfaz de búsqueda. Haga clic derecho en su proyecto, seleccione "Administrar paquetes NuGet", busque "IronPdf" e instálelo. Obtenga información sobre la configuración avanzada para implementaciones empresariales.

¿Cómo configuro IronPDF después de la instalación?

Añade el espacio de nombres:

using IronPdf;
using IronPdf.Rendering; // For rendering options
using IronPdf.Editing; // For PDF editing features
using IronPdf;
using IronPdf.Rendering; // For rendering options
using IronPdf.Editing; // For PDF editing features
Imports IronPdf
Imports IronPdf.Rendering ' For rendering options
Imports IronPdf.Editing ' For PDF editing features
$vbLabelText   $csharpLabel

Activa tu licencia para producción:

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

// Optional: Configure global settings
IronPdf.Installation.TempFolderPath = @"C:\Temp\IronPdf";
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

// Optional: Configure global settings
IronPdf.Installation.TempFolderPath = @"C:\Temp\IronPdf";
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"

' Optional: Configure global settings
IronPdf.Installation.TempFolderPath = "C:\Temp\IronPdf"
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = True
$vbLabelText   $csharpLabel

La prueba gratuita de 30 días proporciona una funcionalidad completa para realizar pruebas. Consulte la documentación de la licencia para conocer las opciones de configuración.

¿Cómo convertir cadenas HTML a PDF con IronPDF?

¿Cuál es el enfoque básico para la conversión de cadenas HTML?

La conversión de cadenas HTML representa el caso de uso más común. Comience con la conversión básica usando RenderHtmlAsPdf :

using IronPdf;

// Create the renderer
var renderer = new ChromePdfRenderer();

// Configure options
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;

// Convert HTML to PDF
var pdf = renderer.RenderHtmlAsPdf("<h1>Invoice #12345</h1><p>Total: $99.99</p>");

// Save the PDF
pdf.SaveAs("invoice.pdf");

// Get bytes for web response
byte[] pdfBytes = pdf.BinaryData;
using IronPdf;

// Create the renderer
var renderer = new ChromePdfRenderer();

// Configure options
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;

// Convert HTML to PDF
var pdf = renderer.RenderHtmlAsPdf("<h1>Invoice #12345</h1><p>Total: $99.99</p>");

// Save the PDF
pdf.SaveAs("invoice.pdf");

// Get bytes for web response
byte[] pdfBytes = pdf.BinaryData;
Imports IronPdf

' Create the renderer
Dim renderer As New ChromePdfRenderer()

' Configure options
renderer.RenderingOptions.MarginTop = 50
renderer.RenderingOptions.MarginBottom = 50
renderer.RenderingOptions.MarginLeft = 20
renderer.RenderingOptions.MarginRight = 20

' Convert HTML to PDF
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Invoice #12345</h1><p>Total: $99.99</p>")

' Save the PDF
pdf.SaveAs("invoice.pdf")

' Get bytes for web response
Dim pdfBytes As Byte() = pdf.BinaryData
$vbLabelText   $csharpLabel

Esto crea un PDF con la selección de texto adecuada para cumplir con las normas de accesibilidad. Explore márgenes personalizados y opciones de tamaño de papel .

Resultado

Visor de PDF que muestra una factura simple con el número 12345 y un importe total de $99.99 con un zoom del 100%.

¿Cómo puedo darle estilo a archivos PDF con CSS?

Incluya CSS directamente en su HTML:

var styledHtml = @"
    <style>
        @import url('___PROTECTED_URL_73___

        body { 
            font-family: 'Roboto', Arial, sans-serif; 
            margin: 40px;
            line-height: 1.6;
        }
        .header { 
            color: #2563eb; 
            border-bottom: 2px solid #e5e7eb; 
            padding-bottom: 10px;
        }
        .amount { 
            font-size: 24px; 
            font-weight: bold; 
            color: #059669;
        }
    </style>
    <div class='header'>
        <h1>Professional Invoice</h1>
        <p>Invoice Date: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
    </div>
    <p class='amount'>$1,234.56</p>";

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(500); // Wait for fonts

var pdf = renderer.RenderHtmlAsPdf(styledHtml);
pdf.SaveAs("styled-invoice.pdf");
var styledHtml = @"
    <style>
        @import url('___PROTECTED_URL_73___

        body { 
            font-family: 'Roboto', Arial, sans-serif; 
            margin: 40px;
            line-height: 1.6;
        }
        .header { 
            color: #2563eb; 
            border-bottom: 2px solid #e5e7eb; 
            padding-bottom: 10px;
        }
        .amount { 
            font-size: 24px; 
            font-weight: bold; 
            color: #059669;
        }
    </style>
    <div class='header'>
        <h1>Professional Invoice</h1>
        <p>Invoice Date: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
    </div>
    <p class='amount'>$1,234.56</p>";

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(500); // Wait for fonts

var pdf = renderer.RenderHtmlAsPdf(styledHtml);
pdf.SaveAs("styled-invoice.pdf");
Imports System
Imports IronPdf

Dim styledHtml As String = "
    <style>
        @import url('___PROTECTED_URL_73___

        body { 
            font-family: 'Roboto', Arial, sans-serif; 
            margin: 40px;
            line-height: 1.6;
        }
        .header { 
            color: #2563eb; 
            border-bottom: 2px solid #e5e7eb; 
            padding-bottom: 10px;
        }
        .amount { 
            font-size: 24px; 
            font-weight: bold; 
            color: #059669;
        }
    </style>
    <div class='header'>
        <h1>Professional Invoice</h1>
        <p>Invoice Date: " & DateTime.Now.ToString("MMMM dd, yyyy") & "</p>
    </div>
    <p class='amount'>$1,234.56</p>"

Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.WaitFor.RenderDelay(500) ' Wait for fonts

Dim pdf = renderer.RenderHtmlAsPdf(styledHtml)
pdf.SaveAs("styled-invoice.pdf")
$vbLabelText   $csharpLabel

CSS se representa exactamente igual que en Chrome. Explora las opciones de renderizado y fuentes web .

¿Cómo manejo recursos externos como imágenes?

Los recursos externos requieren una ruta base:

var htmlWithImage = @"
    <html>
    <head>
        <link rel='stylesheet' href='styles.css' />
    </head>
    <body>
        <img src='logo.png' alt='Company Logo' />
        <h1>Document Title</h1>
    </body>
    </html>";

var renderer = new ChromePdfRenderer();

// Set base path for relative URLs
var pdf = renderer.RenderHtmlAsPdf(htmlWithImage, @"C:\assets\");

// Alternative: Use web resources
var webHtml = "<img src='/images/logo.png' />";
var pdfFromWeb = renderer.RenderHtmlAsPdf(webHtml, new Uri("___PROTECTED_URL_74___"));

pdf.SaveAs("document-with-assets.pdf");
var htmlWithImage = @"
    <html>
    <head>
        <link rel='stylesheet' href='styles.css' />
    </head>
    <body>
        <img src='logo.png' alt='Company Logo' />
        <h1>Document Title</h1>
    </body>
    </html>";

var renderer = new ChromePdfRenderer();

// Set base path for relative URLs
var pdf = renderer.RenderHtmlAsPdf(htmlWithImage, @"C:\assets\");

// Alternative: Use web resources
var webHtml = "<img src='/images/logo.png' />";
var pdfFromWeb = renderer.RenderHtmlAsPdf(webHtml, new Uri("___PROTECTED_URL_74___"));

pdf.SaveAs("document-with-assets.pdf");
Dim htmlWithImage As String = "
    <html>
    <head>
        <link rel='stylesheet' href='styles.css' />
    </head>
    <body>
        <img src='logo.png' alt='Company Logo' />
        <h1>Document Title</h1>
    </body>
    </html>"

Dim renderer As New ChromePdfRenderer()

' Set base path for relative URLs
Dim pdf = renderer.RenderHtmlAsPdf(htmlWithImage, "C:\assets\")

' Alternative: Use web resources
Dim webHtml As String = "<img src='/images/logo.png' />"
Dim pdfFromWeb = renderer.RenderHtmlAsPdf(webHtml, New Uri("___PROTECTED_URL_74___"))

pdf.SaveAs("document-with-assets.pdf")
$vbLabelText   $csharpLabel

Obtenga información sobre el manejo de activos y Azure Blob Storage .

Resultado

Visor de PDF con el logotipo de IronPDF for .NET sobre fondo blanco, mostrando la página 1 de 1 con un zoom del 100 %.

¿Cómo convertir archivos HTML y URL a PDF?

¿Cómo convierto archivos HTML locales?

La conversión de archivos HTML locales utiliza RenderHtmlFileAsPdf :

// Simple conversion
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlFileAsPdf("report-template.html");
pdf.SaveAs("report-output.pdf");

// Advanced conversion
var advancedRenderer = new ChromePdfRenderer();
advancedRenderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
advancedRenderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Environment;
advancedRenderer.RenderingOptions.PrintHtmlBackgrounds = true;

var advancedPdf = advancedRenderer.RenderHtmlFileAsPdf("complex-report.html");
advancedPdf.MetaData.Title = "Monthly Sales Report";
advancedPdf.SaveAs("advanced-report.pdf");
// Simple conversion
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlFileAsPdf("report-template.html");
pdf.SaveAs("report-output.pdf");

// Advanced conversion
var advancedRenderer = new ChromePdfRenderer();
advancedRenderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
advancedRenderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Environment;
advancedRenderer.RenderingOptions.PrintHtmlBackgrounds = true;

var advancedPdf = advancedRenderer.RenderHtmlFileAsPdf("complex-report.html");
advancedPdf.MetaData.Title = "Monthly Sales Report";
advancedPdf.SaveAs("advanced-report.pdf");
' Simple conversion
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlFileAsPdf("report-template.html")
pdf.SaveAs("report-output.pdf")

' Advanced conversion
Dim advancedRenderer = New ChromePdfRenderer()
advancedRenderer.RenderingOptions.PaperSize = PdfPaperSize.A4
advancedRenderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Environment
advancedRenderer.RenderingOptions.PrintHtmlBackgrounds = True

Dim advancedPdf = advancedRenderer.RenderHtmlFileAsPdf("complex-report.html")
advancedPdf.MetaData.Title = "Monthly Sales Report"
advancedPdf.SaveAs("advanced-report.pdf")
$vbLabelText   $csharpLabel

El método maneja la lectura de archivos internamente y procesa los recursos vinculados. Para archivos ZIP, consulte HTML de los archivos .

¿Cuál es el proceso para convertir páginas web en vivo?

Utilice RenderUrlAsPdf para páginas web:

// Basic URL conversion
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_75___");
pdf.SaveAs("website-snapshot.pdf");

// Advanced conversion with authentication
var secureRenderer = new ChromePdfRenderer();
secureRenderer.LoginCredentials = new ChromeHttpLoginCredentials
{
    Username = "user@example.com",
    Password = "secure-password"
};

secureRenderer.RenderingOptions.WaitFor.NetworkIdle(500);
var securePdf = secureRenderer.RenderUrlAsPdf("___PROTECTED_URL_76___");
securePdf.SaveAs("secure-dashboard.pdf");
// Basic URL conversion
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_75___");
pdf.SaveAs("website-snapshot.pdf");

// Advanced conversion with authentication
var secureRenderer = new ChromePdfRenderer();
secureRenderer.LoginCredentials = new ChromeHttpLoginCredentials
{
    Username = "user@example.com",
    Password = "secure-password"
};

secureRenderer.RenderingOptions.WaitFor.NetworkIdle(500);
var securePdf = secureRenderer.RenderUrlAsPdf("___PROTECTED_URL_76___");
securePdf.SaveAs("secure-dashboard.pdf");
' Basic URL conversion
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_75___")
pdf.SaveAs("website-snapshot.pdf")

' Advanced conversion with authentication
Dim secureRenderer As New ChromePdfRenderer()
secureRenderer.LoginCredentials = New ChromeHttpLoginCredentials With {
    .Username = "user@example.com",
    .Password = "secure-password"
}

secureRenderer.RenderingOptions.WaitFor.NetworkIdle(500)
Dim securePdf = secureRenderer.RenderUrlAsPdf("___PROTECTED_URL_76___")
securePdf.SaveAs("secure-dashboard.pdf")
$vbLabelText   $csharpLabel

IronPDF ejecuta JavaScript y espera el contenido antes de generar archivos PDF. Obtenga más información sobre la autenticación y las cookies .

¿Cómo manejo diseños responsivos en archivos PDF?

Configurar la ventana gráfica para sitios responsivos:

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperFit.UseResponsiveCssRendering(1280);
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen;
renderer.RenderingOptions.ViewPortWidth = 1920;

var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_77___");
pdf.SaveAs("responsive-output.pdf");
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperFit.UseResponsiveCssRendering(1280);
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen;
renderer.RenderingOptions.ViewPortWidth = 1920;

var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_77___");
pdf.SaveAs("responsive-output.pdf");
Dim renderer = New ChromePdfRenderer()
renderer.RenderingOptions.PaperFit.UseResponsiveCssRendering(1280)
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen
renderer.RenderingOptions.ViewPortWidth = 1920

Dim pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_77___")
pdf.SaveAs("responsive-output.pdf")
$vbLabelText   $csharpLabel

Consulte la documentación de la ventana gráfica y la guía de CSS adaptable .

¿Qué funciones avanzadas de PDF ofrece IronPDF?

¿Cómo agrego encabezados y pies de página profesionales?

Los encabezados y pies de página mejoran los documentos de varias páginas:

var renderer = new ChromePdfRenderer();

// Configure header
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    MaxHeight = 50,
    HtmlFragment = @"
        <div style='text-align: center; font-size: 12px;'>
            Annual Report 2024 - Confidential
        </div>",
    BaseUrl = new Uri(@"file:///C:/assets/")
};

// Configure footer with page numbers
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    MaxHeight = 30,
    HtmlFragment = @"
        <div style='text-align: center; font-size: 10px;'>
            Page {page} of {total-pages}
        </div>",
    DrawDividerLine = true
};

renderer.RenderingOptions.MarginTop = 60;
renderer.RenderingOptions.MarginBottom = 40;

var pdf = renderer.RenderHtmlAsPdf("<h1>Report Content</h1>");
pdf.SaveAs("report-with-headers.pdf");
var renderer = new ChromePdfRenderer();

// Configure header
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    MaxHeight = 50,
    HtmlFragment = @"
        <div style='text-align: center; font-size: 12px;'>
            Annual Report 2024 - Confidential
        </div>",
    BaseUrl = new Uri(@"file:///C:/assets/")
};

// Configure footer with page numbers
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    MaxHeight = 30,
    HtmlFragment = @"
        <div style='text-align: center; font-size: 10px;'>
            Page {page} of {total-pages}
        </div>",
    DrawDividerLine = true
};

renderer.RenderingOptions.MarginTop = 60;
renderer.RenderingOptions.MarginBottom = 40;

var pdf = renderer.RenderHtmlAsPdf("<h1>Report Content</h1>");
pdf.SaveAs("report-with-headers.pdf");
Dim renderer = New ChromePdfRenderer()

' Configure header
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter With {
    .MaxHeight = 50,
    .HtmlFragment = "
        <div style='text-align: center; font-size: 12px;'>
            Annual Report 2024 - Confidential
        </div>",
    .BaseUrl = New Uri("file:///C:/assets/")
}

' Configure footer with page numbers
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter With {
    .MaxHeight = 30,
    .HtmlFragment = "
        <div style='text-align: center; font-size: 10px;'>
            Page {page} of {total-pages}
        </div>",
    .DrawDividerLine = True
}

renderer.RenderingOptions.MarginTop = 60
renderer.RenderingOptions.MarginBottom = 40

Dim pdf = renderer.RenderHtmlAsPdf("<h1>Report Content</h1>")
pdf.SaveAs("report-with-headers.pdf")
$vbLabelText   $csharpLabel

Los marcadores de posición especiales como {page} y {total-pages} se reemplazan automáticamente. Revisa el tutorial de encabezados .

¿Cómo puedo aplicar marcas de agua a los archivos PDF?

Proteger documentos con marcas de agua:

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Document</h1>");

// Apply text watermark
pdf.ApplyWatermark(
    "<div style='font-size: 72px; color: red; opacity: 0.3;'>DRAFT</div>",
    rotation: 45,
    opacity: 30
);

pdf.SaveAs("watermarked-document.pdf");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Document</h1>");

// Apply text watermark
pdf.ApplyWatermark(
    "<div style='font-size: 72px; color: red; opacity: 0.3;'>DRAFT</div>",
    rotation: 45,
    opacity: 30
);

pdf.SaveAs("watermarked-document.pdf");
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Document</h1>")

' Apply text watermark
pdf.ApplyWatermark(
    "<div style='font-size: 72px; color: red; opacity: 0.3;'>DRAFT</div>",
    rotation:=45,
    opacity:=30
)

pdf.SaveAs("watermarked-document.pdf")
$vbLabelText   $csharpLabel

Aprenda sobre las técnicas de marca de agua y las opciones de estampado .

¿Qué se requiere para las firmas digitales?

Añadir firmas para mayor autenticidad:

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1>");

// Load certificate
var cert = X509CertificateLoader.LoadPkcs12FromFile("certificate.pfx", "password");

// Create signature
var signature = new PdfSignature(cert)
{
    SigningContact = "John Smith",
    SigningLocation = "New York, NY",
    SigningReason = "Contract Approval"
};

// Sign the PDF
pdf.Sign(signature);
pdf.SaveAsRevision("signed-contract.pdf");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1>");

// Load certificate
var cert = X509CertificateLoader.LoadPkcs12FromFile("certificate.pfx", "password");

// Create signature
var signature = new PdfSignature(cert)
{
    SigningContact = "John Smith",
    SigningLocation = "New York, NY",
    SigningReason = "Contract Approval"
};

// Sign the PDF
pdf.Sign(signature);
pdf.SaveAsRevision("signed-contract.pdf");
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1>")

' Load certificate
Dim cert = X509CertificateLoader.LoadPkcs12FromFile("certificate.pfx", "password")

' Create signature
Dim signature = New PdfSignature(cert) With {
    .SigningContact = "John Smith",
    .SigningLocation = "New York, NY",
    .SigningReason = "Contract Approval"
}

' Sign the PDF
pdf.Sign(signature)
pdf.SaveAsRevision("signed-contract.pdf")
$vbLabelText   $csharpLabel

Explore la firma basada en certificados y la integración de HSM .

¿Cómo implemento funciones de seguridad PDF?

Proteja la información confidencial:

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);

// Set metadata
pdf.MetaData.Author = "Corporate Security";
pdf.MetaData.Title = "Confidential Report";

// Apply encryption
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;

pdf.SaveAs("secure-document.pdf");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);

// Set metadata
pdf.MetaData.Author = "Corporate Security";
pdf.MetaData.Title = "Confidential Report";

// Apply encryption
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;

pdf.SaveAs("secure-document.pdf");
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)

' Set metadata
pdf.MetaData.Author = "Corporate Security"
pdf.MetaData.Title = "Confidential Report"

' Apply encryption
pdf.SecuritySettings.UserPassword = "user123"
pdf.SecuritySettings.OwnerPassword = "owner456"
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint
pdf.SecuritySettings.AllowUserCopyPasteContent = False

pdf.SaveAs("secure-document.pdf")
$vbLabelText   $csharpLabel

Revisar documentación de seguridad y saneamiento en PDF.

¿Cómo implementar IronPDF en producción?

¿Qué se necesita para implementar Windows Server?

Configurar IronPDF al inicio:

var builder = WebApplication.CreateBuilder(args);

// Configure license
IronPdf.License.LicenseKey = builder.Configuration["IronPdf:LicenseKey"];

// Configure for Windows Server
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
IronPdf.Installation.TempFolderPath = @"D:\IronPdfTemp";

// Configure logging
IronPdf.Logging.LoggingMode = IronPdf.Logging.PdfLoggingModes.All;
IronPdf.Logging.LogFilePath = @"D:\Logs\IronPdf.log";

var app = builder.Build();
var builder = WebApplication.CreateBuilder(args);

// Configure license
IronPdf.License.LicenseKey = builder.Configuration["IronPdf:LicenseKey"];

// Configure for Windows Server
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
IronPdf.Installation.TempFolderPath = @"D:\IronPdfTemp";

// Configure logging
IronPdf.Logging.LoggingMode = IronPdf.Logging.PdfLoggingModes.All;
IronPdf.Logging.LogFilePath = @"D:\Logs\IronPdf.log";

var app = builder.Build();
Dim builder = WebApplication.CreateBuilder(args)

' Configure license
IronPdf.License.LicenseKey = builder.Configuration("IronPdf:LicenseKey")

' Configure for Windows Server
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
IronPdf.Installation.TempFolderPath = "D:\IronPdfTemp"

' Configure logging
IronPdf.Logging.LoggingMode = IronPdf.Logging.PdfLoggingModes.All
IronPdf.Logging.LogFilePath = "D:\Logs\IronPdf.log"

Dim app = builder.Build()
$vbLabelText   $csharpLabel

Consulte Instalación de Windows e implementación de IIS .

¿Cómo realizar implementaciones en entornos Linux?

Linux requiere dependencias adicionales:

FROM mcr.microsoft.com/dotnet/aspnet:8.0
RUN apt-get update && apt-get install -y \
    libgdiplus \
    libnss3 \
    libatk1.0-0 \
    libatk-bridge2.0-0 \
    libcups2 \
    && apt-get clean

WORKDIR /app
COPY . .
ENTRYPOINT ["dotnet", "MyApp.dll"]

Consulte la implementación de Linux y la integración de Docker .

¿Qué configuración de Azure App Service se necesita?

Configurar para Azure:

{
  "IronPdf": {
    "LicenseKey": "your-license-key",
    "TempFolderPath": "D:\\home\\IronPdfTemp",
    "ChromeGpuMode": "Disabled"
  }
}

Obtenga información sobre la implementación de Azure y Azure Functions .

¿Cómo se destaca IronPDF en el entorno de biblioteca PDF .NET?

¿Por qué la renderización basada en Chrome supone un avance significativo?

El motor Chrome ofrece ventajas fundamentales. Mientras que otros utilizan motores más antiguos, IronPDF utiliza la tecnología que impulsa Chrome. Cuando Chrome agrega propiedades CSS o API de JavaScript, IronPDF obtiene inherentemente esas capacidades. Esto proporciona una representación con píxeles perfectos, superior a las soluciones tradicionales .

¿Cómo funciona realmente el soporte multiplataforma?

IronPDF proporciona una representación consistente en Windows, Linux y macOS utilizando binarios mejorados por la plataforma. Independientemente de si se desarrolla en Windows o se implementa en contenedores Linux, el resultado sigue siendo idéntico. Obtenga información sobre las consideraciones de la plataforma y las opciones de motor .

¿Qué características avanzadas diferencian a IronPDF?

Más allá de la conversión básica, IronPDF admite:

¿Cuáles son los próximos pasos para empezar?

IronPDF transforma la conversión de HTML a PDF en una implementación sencilla. Su motor Chrome garantiza la precisión mientras que el diseño de API hace que la integración sea sencilla. Desde conversiones básicas hasta funciones avanzadas, IronPDF maneja todo el espectro de requisitos de PDF.

Para comenzar, se requieren tres pasos: instalar el paquete NuGet , escribir su primer código e implementarlo con confianza. La prueba gratuita de 30 días proporciona acceso completo para la evaluación.

Página de licencias de IronPDF que muestra cuatro niveles de licencia perpetua (Lite, Plus, Professional e Unlimited) con precios y funciones para equipos de distintos tamaños.

Explore ejemplos de código , tutoriales y documentación de API . Las licencias flexibles de IronPDF se adaptan desde desarrolladores individuales hasta equipos empresariales. Consulte el registro de cambios para obtener actualizaciones.

Preguntas Frecuentes

¿Para qué se utiliza IronPDF?

IronPDF se utiliza para convertir HTML a PDF en aplicaciones .NET. Maneja CSS y JavaScript modernos, y produce documentos PDF de alta calidad.

¿Cómo gestiona IronPDF los diseños HTML complejos?

IronPDF utiliza un motor de renderizado basado en Chrome para procesar con precisión diseños HTML complejos, garantizando que el resultado PDF coincida con lo que se ve en el navegador.

¿Puede IronPDF ejecutar JavaScript durante la conversión de PDF?

Sí, IronPDF puede ejecutar JavaScript, lo que es crucial para renderizar contenido dinámico con precisión en la salida PDF.

¿Es IronPDF fácil de implementar en aplicaciones .NET?

IronPDF está diseñado para ser fácil de implementar y desplegar, por lo que es accesible para los desarrolladores que trabajan con .NET.

¿Qué tipos de fuentes HTML puede convertir IronPDF a PDF?

IronPDF puede convertir archivos HTML, cadenas HTML y páginas web completas a formato PDF.

¿Mantiene IronPDF la calidad del HTML original en el PDF?

Sí, IronPDF produce documentos PDF de alta calidad con la misma fidelidad que el contenido HTML original.

¿Qué diferencia a IronPDF de otros conversores de PDF?

IronPDF ofrece una experiencia de conversión perfecta con su motor de renderizado basado en Chrome, lo que garantiza la compatibilidad con los estándares web modernos.

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