Como gerar arquivos PDF no .NET Core

How to Convert HTML to PDF in C# .NET Core

This article was translated from English: Does it need improvement?
Translated
View the article in English

Converter arquivos de diversos formatos para PDF pode ser um desafio devido aos padrões rigorosos do formato PDF. A conversão pode não resultar em uma correspondência exata em muitos casos, especialmente quando se trata de estilos HTML e CSS. No entanto, no cenário digital atual, a capacidade de converter URLs e formulários — incluindo aqueles com HTML e CSS — é essencial. É aqui que o IronPDF se destaca, oferecendo recursos intuitivos que permitem aos desenvolvedores converter uma ampla variedade de formatos para PDF com alta fidelidade, muitas vezes com apenas algumas linhas de código.

Com o IronPDF, você pode converter facilmente HTML, DOCX, RTF, Markdown e até mesmo imagens para PDF, garantindo a integridade dos seus documentos. Ele também oferece suporte à conversão de páginas da web dinâmicas de estruturas populares como Razor, CSHTML, ASPX e XAML, eliminando preocupações com compatibilidade e tornando o IronPDF sua solução completa para todas as necessidades de conversão de PDF.

Além da conversão direta, o IronPDF oferece opções de personalização avançadas. Você pode personalizar a saída do seu PDF com margens, cabeçalhos e rodapés personalizados, incluir números de página e ajustar as configurações de escala de cinza para reduzir o tamanho do arquivo. Aprimore seus documentos incorporando recursos adicionais, como sumário, quebras de página automáticas e conteúdo que se adapta perfeitamente ao tamanho de documento desejado.

Neste tutorial, exploraremos essas funcionalidades e muito mais, fornecendo exemplos de código e destacando os principais recursos do IronPDF. Prepare-se para transformar seu processo de conversão de PDF, permitindo que você converta, personalize e otimize seus documentos PDF sem esforço com o IronPDF.

Início rápido: Converter HTML para PDF com o IronPDF

Comece a usar o IronPDF para converter HTML em PDF sem esforço no .NET Core. Com apenas uma linha de código, você pode gerar PDFs com qualidade de imagem perfeita a partir de strings HTML usando a poderosa API do IronPDF. Este guia mostrará como integrar rapidamente o IronPDF ao seu projeto, permitindo a geração perfeita de PDFs com configuração mínima. Seja para converter HTML, URLs ou views Razor , o IronPDF simplifica o processo, tornando-o acessível a desenvolvedores de todos os níveis. Comece a converter hoje mesmo e explore os recursos avançados quando estiver pronto.

  1. Instale IronPDF com o Gerenciador de Pacotes NuGet

    PM > Install-Package IronPdf
  2. Copie e execute este trecho de código.

    var pdf = new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello, PDF!</h1>");
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronPDF em seu projeto hoje com uma avaliação gratuita

    arrow pointer

Índice

Conversão versátil de PDF

PDF a partir de string HTML

Para converter um PDF a partir de uma string HTML, podemos usar o método RenderHtmlAsPdf para transformar a string HTML em um PDF com precisão de pixel rapidamente.

:path=/static-assets/pdf/content-code-examples/how-to/html-string-to-pdf.cs
using IronPdf;

// 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");
Imports IronPdf

' Instantiate Renderer
Private renderer = New ChromePdfRenderer()

' Create a PDF from a HTML string using C#
Private pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")

' Export to a file or Stream
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

PDF a partir de HTML

Converta facilmente um arquivo HTML para PDF com nosso método RenderHtmlAsPdf e salve rapidamente seu PDF com precisão de pixel.

:path=/static-assets/pdf/content-code-examples/how-to/html-file-to-pdf.cs
using IronPdf;
using IronPdf.Engines.Chrome;
using IronPdf.Rendering;


var renderer = new ChromePdfRenderer
{
    RenderingOptions = new ChromePdfRenderOptions
    {
        CssMediaType = PdfCssMediaType.Print,
        MarginBottom = 0,
        MarginLeft = 0,
        MarginRight = 0,
        MarginTop = 0,
        Timeout = 120,
    },
};
renderer.RenderingOptions.WaitFor.RenderDelay(50);

// 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
Imports IronPdf.Engines.Chrome
Imports IronPdf.Rendering


Private renderer = New ChromePdfRenderer With {
	.RenderingOptions = New ChromePdfRenderOptions With {
		.CssMediaType = PdfCssMediaType.Print,
		.MarginBottom = 0,
		.MarginLeft = 0,
		.MarginRight = 0,
		.MarginTop = 0,
		.Timeout = 120
	}
}
renderer.RenderingOptions.WaitFor.RenderDelay(50)

' Create a PDF from an existing HTML file using C#
Dim pdf = renderer.RenderHtmlFileAsPdf("example.html")

' Export to a file or Stream
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

PDF a partir de URL

Converta rapidamente a URL para PDF com RenderUrlAsPdf em apenas algumas linhas. Insira a URL como parâmetro e salve-a com facilidade.

:path=/static-assets/pdf/content-code-examples/how-to/url-to-pdf.cs
using IronPdf;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create a PDF from a URL or local file path
var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");

// 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://en.wikipedia.org/wiki/Main_Page")

' Export to a file or Stream
pdf.SaveAs("url.pdf")
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

Converter imagem em PDF

Você tem uma imagem que deseja exibir como um PDF? Converta rapidamente com nossa classe ImageToPdfConverter e chame o método ImageToPdf.

:path=/static-assets/pdf/content-code-examples/how-to/image-to-pdf-convert-one-image.cs
using IronPdf;

string imagePath = "meetOurTeam.jpg";

// Convert an image to a PDF
PdfDocument pdf = ImageToPdfConverter.ImageToPdf(imagePath);

// Export the PDF
pdf.SaveAs("imageToPdf.pdf");
Imports IronPdf

Private imagePath As String = "meetOurTeam.jpg"

' Convert an image to a PDF
Private pdf As PdfDocument = ImageToPdfConverter.ImageToPdf(imagePath)

' Export the PDF
pdf.SaveAs("imageToPdf.pdf")
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

Imagem extraída de um PDF

Para o oposto do exemplo acima, podemos primeiro converter a entrada em PDF e então usar o método RasterizeToImageFiles para converter o PDF em imagens.

:path=/static-assets/pdf/content-code-examples/how-to/rasterize-pdf-to-images-rasterize.cs
using IronPdf;

// Instantiate Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Render PDF from web URL
PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");

// Export images from PDF
pdf.RasterizeToImageFiles("wikipage_*.png");
Imports IronPdf

' Instantiate Renderer
Dim renderer As New ChromePdfRenderer()

' Render PDF from web URL
Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page")

' Export images from PDF
pdf.RasterizeToImageFiles("wikipage_*.png")
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

Converter DOCX para PDF

Você já precisou converter um arquivo DOCX, como um currículo, para PDF de forma fácil? O IronPDF te dá toda a solução. Simplesmente chame o método RenderDocxAsPDF para converter.

:path=/static-assets/pdf/content-code-examples/how-to/docx-to-pdf-from-file.cs
using IronPdf;

// Instantiate Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();

// Render from DOCX file
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");

// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
Imports IronPdf

' Instantiate Renderer
Private renderer As New DocxToPdfRenderer()

' Render from DOCX file
Private pdf As PdfDocument = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx")

' Save the PDF
pdf.SaveAs("pdfFromDocx.pdf")
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

Converter RTF para PDF

Para converter um arquivo RTF para PDF, chamamos o método RenderRtfFileAsPdf com o arquivo RTF como entrada.

:path=/static-assets/pdf/content-code-examples/how-to/rtf-to-pdf-from-file.cs
using IronPdf;

// Instantiate Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Render from RTF file
PdfDocument pdf = renderer.RenderRtfFileAsPdf("sample.rtf");

// Save the PDF
pdf.SaveAs("pdfFromRtfFile.pdf");
Imports IronPdf

' Instantiate Renderer
Private renderer As New ChromePdfRenderer()

' Render from RTF file
Private pdf As PdfDocument = renderer.RenderRtfFileAsPdf("sample.rtf")

' Save the PDF
pdf.SaveAs("pdfFromRtfFile.pdf")
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

Converter MD para PDF

Para converter um MD para PDF, podemos chamar o método RenderMarkdownFileAsPdf com o arquivo MD como entrada.

:path=/static-assets/pdf/content-code-examples/how-to/md-to-pdf-from-file.cs
using IronPdf;

// Instantiate Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Render from markdown file
PdfDocument pdf = renderer.RenderMarkdownFileAsPdf("sample.md");

// Save the PDF
pdf.SaveAs("pdfFromMarkdownFile.pdf");
Imports IronPdf

' Instantiate Renderer
Private renderer As New ChromePdfRenderer()

' Render from markdown file
Private pdf As PdfDocument = renderer.RenderMarkdownFileAsPdf("sample.md")

' Save the PDF
pdf.SaveAs("pdfFromMarkdownFile.pdf")
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

Converter XML para PDF

Embora converter XML para PDF possa ser bastante desafiador, o IronPDF supera esse desafio e ajuda a converter XML para PDF em poucos passos. Começamos com um modelo XLST e, em seguida, convertemos o XML para PDF via HTML por meio de transformações XLST. Aqui está uma versão resumida do trecho de código para ajudar você a começar.

// XSLT template that defines the transformation from XML to HTML
string xslt = @"<?xml version='1.0' encoding='UTF-8'?>
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match='/'>
<html>
<style>
td{
  text-align: center;
  padding: 20px;
  border: 1px solid #CDE7F0;
}
th{
  color: white;
  padding: 20px;
}
</style>
<body style='font-family: Arial, Helvetica Neue, Helvetica, sans-serif;'>
  <table style='border-collapse: collapse;'>
    <thead>
      <tr>
        <th colspan='3'>
          <img style='margin: auto;' src='https://ironsoftware.com/img/svgs/ironsoftware-logo-black.svg'/>
        </th>
      </tr>
    </thead>
    <tbody>
      <tr bgcolor='#9acd32'>
        <th bgcolor='#32ab90'>Title</th>
        <th bgcolor='#f49400'>Feature</th>
        <th bgcolor='#2a95d5'>Compatible</th>
      </tr>
      <xsl:for-each select='catalog/cd'>
      <tr>
        <td style='font-weight: bold;'><xsl:value-of select='title'/></td>
        <td style='background-color: #eff8fb; color: #2a95d5; font-weight: bold;'><xsl:value-of select='feature'/></td>
        <td><xsl:value-of select='compatible'/></td>
      </tr>
      </xsl:for-each>
    </tbody>
  </table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
";

[...]

// Create an instance of XslCompiledTransform
XslCompiledTransform transform = new XslCompiledTransform();

// Load the XSLT from a string
using (XmlReader reader = XmlReader.Create(new StringReader(xslt)))
{
    transform.Load(reader);
}

// Transform the XML to HTML
StringWriter results = new StringWriter();
using (XmlReader reader = XmlReader.Create(new StringReader(xml)))
{
    transform.Transform(reader, null, results);
}

// Create a renderer for converting HTML to PDF
IronPdf.ChromePdfRenderer renderer = new IronPdf.ChromePdfRenderer();
// Options, headers, and footers may be set here if needed
// Render our XML as a PDF via XSLT transformation
renderer.RenderHtmlAsPdf(results.ToString()).SaveAs("Final.pdf");
// XSLT template that defines the transformation from XML to HTML
string xslt = @"<?xml version='1.0' encoding='UTF-8'?>
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match='/'>
<html>
<style>
td{
  text-align: center;
  padding: 20px;
  border: 1px solid #CDE7F0;
}
th{
  color: white;
  padding: 20px;
}
</style>
<body style='font-family: Arial, Helvetica Neue, Helvetica, sans-serif;'>
  <table style='border-collapse: collapse;'>
    <thead>
      <tr>
        <th colspan='3'>
          <img style='margin: auto;' src='https://ironsoftware.com/img/svgs/ironsoftware-logo-black.svg'/>
        </th>
      </tr>
    </thead>
    <tbody>
      <tr bgcolor='#9acd32'>
        <th bgcolor='#32ab90'>Title</th>
        <th bgcolor='#f49400'>Feature</th>
        <th bgcolor='#2a95d5'>Compatible</th>
      </tr>
      <xsl:for-each select='catalog/cd'>
      <tr>
        <td style='font-weight: bold;'><xsl:value-of select='title'/></td>
        <td style='background-color: #eff8fb; color: #2a95d5; font-weight: bold;'><xsl:value-of select='feature'/></td>
        <td><xsl:value-of select='compatible'/></td>
      </tr>
      </xsl:for-each>
    </tbody>
  </table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
";

[...]

// Create an instance of XslCompiledTransform
XslCompiledTransform transform = new XslCompiledTransform();

// Load the XSLT from a string
using (XmlReader reader = XmlReader.Create(new StringReader(xslt)))
{
    transform.Load(reader);
}

// Transform the XML to HTML
StringWriter results = new StringWriter();
using (XmlReader reader = XmlReader.Create(new StringReader(xml)))
{
    transform.Transform(reader, null, results);
}

// Create a renderer for converting HTML to PDF
IronPdf.ChromePdfRenderer renderer = new IronPdf.ChromePdfRenderer();
// Options, headers, and footers may be set here if needed
// Render our XML as a PDF via XSLT transformation
renderer.RenderHtmlAsPdf(results.ToString()).SaveAs("Final.pdf");
Imports System.Xml
Imports System.IO
Imports System.Xml.Xsl
Imports IronPdf

' XSLT template that defines the transformation from XML to HTML
Dim xslt As String = "<?xml version='1.0' encoding='UTF-8'?>" & _
"<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>" & _
"<xsl:template match='/'>" & _
"<html>" & _
"<style>" & _
"td{" & _
"  text-align: center;" & _
"  padding: 20px;" & _
"  border: 1px solid #CDE7F0;" & _
"}" & _
"th{" & _
"  color: white;" & _
"  padding: 20px;" & _
"}" & _
"</style>" & _
"<body style='font-family: Arial, Helvetica Neue, Helvetica, sans-serif;'>" & _
"  <table style='border-collapse: collapse;'>" & _
"    <thead>" & _
"      <tr>" & _
"        <th colspan='3'>" & _
"          <img style='margin: auto;' src='https://ironsoftware.com/img/svgs/ironsoftware-logo-black.svg'/>" & _
"        </th>" & _
"      </tr>" & _
"    </thead>" & _
"    <tbody>" & _
"      <tr bgcolor='#9acd32'>" & _
"        <th bgcolor='#32ab90'>Title</th>" & _
"        <th bgcolor='#f49400'>Feature</th>" & _
"        <th bgcolor='#2a95d5'>Compatible</th>" & _
"      </tr>" & _
"      <xsl:for-each select='catalog/cd'>" & _
"      <tr>" & _
"        <td style='font-weight: bold;'><xsl:value-of select='title'/></td>" & _
"        <td style='background-color: #eff8fb; color: #2a95d5; font-weight: bold;'><xsl:value-of select='feature'/></td>" & _
"        <td><xsl:value-of select='compatible'/></td>" & _
"      </tr>" & _
"      </xsl:for-each>" & _
"    </tbody>" & _
"  </table>" & _
"</body>" & _
"</html>" & _
"</xsl:template>" & _
"</xsl:stylesheet>"

[...]

' Create an instance of XslCompiledTransform
Dim transform As New XslCompiledTransform()

' Load the XSLT from a string
Using reader As XmlReader = XmlReader.Create(New StringReader(xslt))
    transform.Load(reader)
End Using

' Transform the XML to HTML
Dim results As New StringWriter()
Using reader As XmlReader = XmlReader.Create(New StringReader(xml))
    transform.Transform(reader, Nothing, results)
End Using

' Create a renderer for converting HTML to PDF
Dim renderer As New ChromePdfRenderer()
' Options, headers, and footers may be set here if needed
' Render our XML as a PDF via XSLT transformation
renderer.RenderHtmlAsPdf(results.ToString()).SaveAs("Final.pdf")
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

PDF para HTML

Além de converter vários formatos para PDF, o IronPDF também suporta a operação inversa, ou seja, a conversão de PDFs para HTML. Aqui está um pequeno trecho de código para demonstrar a funcionalidade.

:path=/static-assets/pdf/content-code-examples/how-to/pdf-to-html.cs
using IronPdf;
using System;

PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Convert PDF to HTML string
string html = pdf.ToHtmlString();
Console.WriteLine(html);

// Convert PDF to HTML file
pdf.SaveAsHtml("myHtml.html");
Imports IronPdf
Imports System

Dim pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

' Convert PDF to HTML string
Dim html As String = pdf.ToHtmlString()
Console.WriteLine(html)

' Convert PDF to HTML file
pdf.SaveAsHtml("myHtml.html")
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

Página web dinâmica para PDFs

Precisa que sua página web dinâmica seja preservada e convertida em PDF, mantendo o layout e a formatação originais? Não procure mais: o IronPDF converte rapidamente uma variedade de estruturas populares de páginas web dinâmicas em PDFs.

PDF de páginas ASFX

Segue um breve trecho de código sobre como converter páginas ASPX em PDF no Active Server Pages.

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-2.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using IronPdf;

namespace AspxToPdfTutorial
{
    public partial class Invoice : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser);
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports IronPdf

Namespace AspxToPdfTutorial
	Partial Public Class Invoice
		Inherits System.Web.UI.Page

		Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
			IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

XAML para PDF (MAUI)

Para desenvolvedores que buscam criar aplicativos multiplataforma, o .NET MAUI é uma escolha popular entre os frameworks. O IronPDF oferece suporte completo à conversão de XAML para PDF em poucos passos.

:path=/static-assets/pdf/content-code-examples/how-to/xaml-to-pdf-maui-mainpage-xaml-cs.cs
using IronPdf.Extensions.Maui;

namespace mauiSample;

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
    }

    private void PrintToPdf(object sender, EventArgs e)
    {
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Apply HTML header
        renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
        {
            HtmlFragment = "<h1>Header</h1>",
        };

        // Render PDF from Maui Page
        PdfDocument pdf = renderer.RenderContentPageToPdf<MainPage, App>().Result;

        pdf.SaveAs(@"C:\Users\lyty1\Downloads\contentPageToPdf.pdf");
    }
}
Imports IronPdf.Extensions.Maui

Namespace mauiSample

	Partial Public Class MainPage
		Inherits ContentPage

		Public Sub New()
			InitializeComponent()
		End Sub

		Private Sub PrintToPdf(ByVal sender As Object, ByVal e As EventArgs)
			Dim renderer As New ChromePdfRenderer()

			' Apply HTML header
			renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {.HtmlFragment = "<h1>Header</h1>"}

			' Render PDF from Maui Page
			Dim pdf As PdfDocument = renderer.RenderContentPageToPdf(Of MainPage, App)().Result

			pdf.SaveAs("C:\Users\lyty1\Downloads\contentPageToPdf.pdf")
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

Gerar relatórios em PDF

Ao gerar relatórios em PDF, as dimensões e o formato exatos são cruciais. Dessa forma, o IronPDF permite gerar PDFs de forma simples e rápida, em apenas alguns passos.

:path=/static-assets/pdf/content-code-examples/how-to/csharp-pdf-reports-render-html-file.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

renderer.RenderHtmlFileAsPdf("report.html").SaveAs("report.pdf");
Imports IronPdf

Private renderer As New ChromePdfRenderer()

renderer.RenderHtmlFileAsPdf("report.html").SaveAs("report.pdf")
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

Criar PDFs em servidores Blazor

O IronPDF é compatível com o .NET 6 e, como inclui tipos de projeto como o Blazor, este trecho de código fornece um breve exemplo de como criar PDFs no Blazor Server.

@code {

    // Model to bind user input
    private InputHTMLModel _InputMsgModel = new InputHTMLModel();

    private async Task SubmitHTML()
    {
        // Set your IronPDF license key
        IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

        // Create a renderer to convert HTML to PDF
        var render = new IronPdf.ChromePdfRenderer();

        // Render the HTML input into a PDF document
        var doc = render.RenderHtmlAsPdf(_InputMsgModel.HTML);

        var fileName = "iron.pdf";

        // Create a stream reference for the PDF content
        using var streamRef = new DotNetStreamReference(stream: doc.Stream);

        // Invoke JavaScript function to download the PDF in the browser
        await JS.InvokeVoidAsync("SubmitHTML", fileName, streamRef);
    }

    public class InputHTMLModel
    {
        public string HTML { get; set; } = "My new message";
    }
}
@code {

    // Model to bind user input
    private InputHTMLModel _InputMsgModel = new InputHTMLModel();

    private async Task SubmitHTML()
    {
        // Set your IronPDF license key
        IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

        // Create a renderer to convert HTML to PDF
        var render = new IronPdf.ChromePdfRenderer();

        // Render the HTML input into a PDF document
        var doc = render.RenderHtmlAsPdf(_InputMsgModel.HTML);

        var fileName = "iron.pdf";

        // Create a stream reference for the PDF content
        using var streamRef = new DotNetStreamReference(stream: doc.Stream);

        // Invoke JavaScript function to download the PDF in the browser
        await JS.InvokeVoidAsync("SubmitHTML", fileName, streamRef);
    }

    public class InputHTMLModel
    {
        public string HTML { get; set; } = "My new message";
    }
}
code
If True Then

	' Model to bind user input
	private InputHTMLModel _InputMsgModel = New InputHTMLModel()

'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'	private async Task SubmitHTML()
'	{
'		' Set your IronPDF license key
'		IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
'
'		' Create a renderer to convert HTML to PDF
'		var render = New IronPdf.ChromePdfRenderer();
'
'		' Render the HTML input into a PDF document
'		var doc = render.RenderHtmlAsPdf(_InputMsgModel.HTML);
'
'		var fileName = "iron.pdf";
'
'		' Create a stream reference for the PDF content
'		var streamRef = New DotNetStreamReference(stream: doc.Stream);
'
'		' Invoke JavaScript function to download the PDF in the browser
'		await JS.InvokeVoidAsync("SubmitHTML", fileName, streamRef);
'	}

'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'	public class InputHTMLModel
'	{
'		public string HTML
'		{
'			get;
'			set;
'		} = "My new message";
'	}
End If
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

Razor para PDF (Servidores Blazor )

Além de criar PDFs em servidores Blazor , o IronPDF também oferece suporte à geração de documentos PDF a partir de componentes Razor em páginas Blazor . Tornar a criação de arquivos e páginas PDF muito mais ágil.

[Parameter]
public IEnumerable<PersonInfo> persons { get; set; }
public Dictionary<string, object> Parameters { get; set; } = new Dictionary<string, object>();

protected override async Task OnInitializedAsync()
{
    persons = new List<PersonInfo>
    {
        new PersonInfo { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
        new PersonInfo { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
        new PersonInfo { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
    };
}
private async void PrintToPdf()
{
    ChromePdfRenderer renderer = new ChromePdfRenderer();

    // Apply text footer
    renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            LeftText = "{date} - {time}",
            DrawDividerLine = true,
            RightText = "Page {page} of {total-pages}",
            Font = IronSoftware.Drawing.FontTypes.Arial,
            FontSize = 11
        };

    Parameters.Add("persons", persons);

    // Render razor component to PDF
    PdfDocument pdf = renderer.RenderRazorComponentToPdf<Person>(Parameters);

    File.WriteAllBytes("razorComponentToPdf.pdf", pdf.BinaryData);
}
[Parameter]
public IEnumerable<PersonInfo> persons { get; set; }
public Dictionary<string, object> Parameters { get; set; } = new Dictionary<string, object>();

protected override async Task OnInitializedAsync()
{
    persons = new List<PersonInfo>
    {
        new PersonInfo { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
        new PersonInfo { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
        new PersonInfo { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
    };
}
private async void PrintToPdf()
{
    ChromePdfRenderer renderer = new ChromePdfRenderer();

    // Apply text footer
    renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            LeftText = "{date} - {time}",
            DrawDividerLine = true,
            RightText = "Page {page} of {total-pages}",
            Font = IronSoftware.Drawing.FontTypes.Arial,
            FontSize = 11
        };

    Parameters.Add("persons", persons);

    // Render razor component to PDF
    PdfDocument pdf = renderer.RenderRazorComponentToPdf<Person>(Parameters);

    File.WriteAllBytes("razorComponentToPdf.pdf", pdf.BinaryData);
}
<Parameter>
Public Property persons() As IEnumerable(Of PersonInfo)
Public Property Parameters() As New Dictionary(Of String, Object)()

Protected Overrides Async Function OnInitializedAsync() As Task
	persons = New List(Of PersonInfo) From {
		New PersonInfo With {
			.Name = "Alice",
			.Title = "Mrs.",
			.Description = "Software Engineer"
		},
		New PersonInfo With {
			.Name = "Bob",
			.Title = "Mr.",
			.Description = "Software Engineer"
		},
		New PersonInfo With {
			.Name = "Charlie",
			.Title = "Mr.",
			.Description = "Software Engineer"
		}
	}
End Function
Private Async Sub PrintToPdf()
	Dim renderer As New ChromePdfRenderer()

	' Apply text footer
	renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With {
		.LeftText = "{date} - {time}",
		.DrawDividerLine = True,
		.RightText = "Page {page} of {total-pages}",
		.Font = IronSoftware.Drawing.FontTypes.Arial,
		.FontSize = 11
	}

	Parameters.Add("persons", persons)

	' Render razor component to PDF
	Dim pdf As PdfDocument = renderer.RenderRazorComponentToPdf(Of Person)(Parameters)

	File.WriteAllBytes("razorComponentToPdf.pdf", pdf.BinaryData)
End Sub
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

CSHTML para PDF

Converter CSHTML (Razor) para PDF permite gerar documentos profissionais, prontos para impressão, diretamente de seus aplicativos web. Isso é útil para faturas, relatórios, contratos ou qualquer conteúdo dinâmico. O IronPDF é compatível com Razor Pages, MVC Core e MVC Framework, além de renderização sem interface gráfica, facilitando a integração da geração de PDFs em seus aplicativos .NET com apenas algumas linhas de código.

CSHTML para PDF (Razor Pages)

using IronPdf.Razor.Pages;

public IActionResult OnPostAsync()
{
    persons = new List<Person>
    {
    new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
    new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
    new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
    };

    ViewData["personList"] = persons;

    ChromePdfRenderer renderer = new ChromePdfRenderer();

    // Render Razor Page to PDF document
    PdfDocument pdf = renderer.RenderRazorToPdf(this);

    Response.Headers.Add("Content-Disposition", "inline");

    return File(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf");
}
using IronPdf.Razor.Pages;

public IActionResult OnPostAsync()
{
    persons = new List<Person>
    {
    new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
    new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
    new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
    };

    ViewData["personList"] = persons;

    ChromePdfRenderer renderer = new ChromePdfRenderer();

    // Render Razor Page to PDF document
    PdfDocument pdf = renderer.RenderRazorToPdf(this);

    Response.Headers.Add("Content-Disposition", "inline");

    return File(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf");
}
Imports IronPdf.Razor.Pages

Public Function OnPostAsync() As IActionResult
	persons = New List(Of Person) From {
		New Person With {
			.Name = "Alice",
			.Title = "Mrs.",
			.Description = "Software Engineer"
		},
		New Person With {
			.Name = "Bob",
			.Title = "Mr.",
			.Description = "Software Engineer"
		},
		New Person With {
			.Name = "Charlie",
			.Title = "Mr.",
			.Description = "Software Engineer"
		}
	}

	ViewData("personList") = persons

	Dim renderer As New ChromePdfRenderer()

	' Render Razor Page to PDF document
	Dim pdf As PdfDocument = renderer.RenderRazorToPdf(Me)

	Response.Headers.Add("Content-Disposition", "inline")

	Return File(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf")
End Function
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

CSHTML para PDF (MVC Core)

public async Task<IActionResult> Persons()
{
    var persons = new List<Person>
    {
    new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
    new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
    new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
    };
    if (_httpContextAccessor.HttpContext.Request.Method == HttpMethod.Post.Method)
    {
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Render View to PDF document
        PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Persons.cshtml", persons);
        Response.Headers.Add("Content-Disposition", "inline");

        // Output PDF document
        return File(pdf.BinaryData, "application/pdf", "viewToPdfMVCCore.pdf");
    }
    return View(persons);
}
public async Task<IActionResult> Persons()
{
    var persons = new List<Person>
    {
    new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
    new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
    new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
    };
    if (_httpContextAccessor.HttpContext.Request.Method == HttpMethod.Post.Method)
    {
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Render View to PDF document
        PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Persons.cshtml", persons);
        Response.Headers.Add("Content-Disposition", "inline");

        // Output PDF document
        return File(pdf.BinaryData, "application/pdf", "viewToPdfMVCCore.pdf");
    }
    return View(persons);
}
Public Async Function Persons() As Task(Of IActionResult)
'INSTANT VB NOTE: The local variable persons was renamed since Visual Basic will not allow local variables with the same name as their enclosing function or property:
	Dim persons_Conflict = New List(Of Person) From {
		New Person With {
			.Name = "Alice",
			.Title = "Mrs.",
			.Description = "Software Engineer"
		},
		New Person With {
			.Name = "Bob",
			.Title = "Mr.",
			.Description = "Software Engineer"
		},
		New Person With {
			.Name = "Charlie",
			.Title = "Mr.",
			.Description = "Software Engineer"
		}
	}
	If _httpContextAccessor.HttpContext.Request.Method = HttpMethod.Post.Method Then
		Dim renderer As New ChromePdfRenderer()

		' Render View to PDF document
		Dim pdf As PdfDocument = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Persons.cshtml", persons_Conflict)
		Response.Headers.Add("Content-Disposition", "inline")

		' Output PDF document
		Return File(pdf.BinaryData, "application/pdf", "viewToPdfMVCCore.pdf")
	End If
	Return View(persons_Conflict)
End Function
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

CSHTML para PDF (Framework MVC)

public ActionResult Persons()
{
    var persons = new List<Person>
    {
    new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
    new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
    new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
    };
    if (HttpContext.Request.HttpMethod == "POST")
    {
        // Provide the path to your view file
        var viewPath = "~/Views/Home/Persons.cshtml";
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Render Razor view to PDF document
        PdfDocument pdf = renderer.RenderView(this.HttpContext, viewPath, persons);
        Response.Headers.Add("Content-Disposition", "inline");

        // View the PDF
        return File(pdf.BinaryData, "application/pdf");
    }
    return View(persons);
}
public ActionResult Persons()
{
    var persons = new List<Person>
    {
    new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
    new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
    new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
    };
    if (HttpContext.Request.HttpMethod == "POST")
    {
        // Provide the path to your view file
        var viewPath = "~/Views/Home/Persons.cshtml";
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Render Razor view to PDF document
        PdfDocument pdf = renderer.RenderView(this.HttpContext, viewPath, persons);
        Response.Headers.Add("Content-Disposition", "inline");

        // View the PDF
        return File(pdf.BinaryData, "application/pdf");
    }
    return View(persons);
}
Public Function Persons() As ActionResult
'INSTANT VB NOTE: The local variable persons was renamed since Visual Basic will not allow local variables with the same name as their enclosing function or property:
	Dim persons_Conflict = New List(Of Person) From {
		New Person With {
			.Name = "Alice",
			.Title = "Mrs.",
			.Description = "Software Engineer"
		},
		New Person With {
			.Name = "Bob",
			.Title = "Mr.",
			.Description = "Software Engineer"
		},
		New Person With {
			.Name = "Charlie",
			.Title = "Mr.",
			.Description = "Software Engineer"
		}
	}
	If HttpContext.Request.HttpMethod = "POST" Then
		' Provide the path to your view file
		Dim viewPath = "~/Views/Home/Persons.cshtml"
		Dim renderer As New ChromePdfRenderer()

		' Render Razor view to PDF document
		Dim pdf As PdfDocument = renderer.RenderView(Me.HttpContext, viewPath, persons_Conflict)
		Response.Headers.Add("Content-Disposition", "inline")

		' View the PDF
		Return File(pdf.BinaryData, "application/pdf")
	End If
	Return View(persons_Conflict)
End Function
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

CSHTML para PDF (sem interface gráfica)

app.MapGet("/PrintPdf", async () =>
{
    // Set your IronPDF license key
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

    // Enable detailed logging for troubleshooting
    IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;

    // Render the Razor view to an HTML string
    string html = await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml");

    // Create a new instance of ChromePdfRenderer 
    ChromePdfRenderer renderer = new ChromePdfRenderer();

    // Render the HTML string as a PDF document
    PdfDocument pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot");

    // Return the PDF file as a response
    return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf");
});
app.MapGet("/PrintPdf", async () =>
{
    // Set your IronPDF license key
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

    // Enable detailed logging for troubleshooting
    IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;

    // Render the Razor view to an HTML string
    string html = await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml");

    // Create a new instance of ChromePdfRenderer 
    ChromePdfRenderer renderer = new ChromePdfRenderer();

    // Render the HTML string as a PDF document
    PdfDocument pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot");

    // Return the PDF file as a response
    return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf");
});
app.MapGet("/PrintPdf", Async Function()
	' Set your IronPDF license key
	IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

	' Enable detailed logging for troubleshooting
	IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All

	' Render the Razor view to an HTML string
	Dim html As String = Await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml")

	' Create a new instance of ChromePdfRenderer
	Dim renderer As New ChromePdfRenderer()

	' Render the HTML string as a PDF document
	Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html, "./wwwroot")

	' Return the PDF file as a response
	Return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf")
End Function)
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

Acessibilidade na Web

Logins de site e sistema TLS

O IronPDF oferece uma solução fácil para converter páginas da web que exigem autenticação. Com suas opções de renderização, os usuários podem contornar o nome de usuário e a senha usando a propriedade ChromeHttpLoginCredntials.

:path=/static-assets/pdf/content-code-examples/how-to/logins-username-password.cs
using IronPdf;
using System;

ChromePdfRenderer renderer = new ChromePdfRenderer
{
    // setting login credentials to bypass basic authentication
    LoginCredentials = new ChromeHttpLoginCredentials()
    {
        NetworkUsername = "testUser",
        NetworkPassword = "testPassword"
    }
};

var uri = new Uri("http://localhost:51169/Invoice");

// Render web URL to PDF
PdfDocument pdf = renderer.RenderUrlAsPdf(uri);

// Export PDF
pdf.SaveAs("UrlToPdfExample.Pdf");
Imports IronPdf
Imports System

Private renderer As New ChromePdfRenderer With {
	.LoginCredentials = New ChromeHttpLoginCredentials() With {
		.NetworkUsername = "testUser",
		.NetworkPassword = "testPassword"
	}
}

Private uri = New Uri("http://localhost:51169/Invoice")

' Render web URL to PDF
Private pdf As PdfDocument = renderer.RenderUrlAsPdf(uri)

' Export PDF
pdf.SaveAs("UrlToPdfExample.Pdf")
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

Cookies

Aplique cookies à solicitação de login adicional para garantir que sua sessão seja salva! Isso facilitará a renderização de recursos adicionais dentro do domínio bloqueado, tudo dentro do IronPDF.

:path=/static-assets/pdf/content-code-examples/how-to/cookies-apply-cookies.cs
using IronPdf;

// Instantiate ChromePdfRenderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

renderer.RenderingOptions.RequestContext = IronPdf.Rendering.RequestContexts.Global;

ChromeHttpLoginCredentials credentials = new ChromeHttpLoginCredentials() {
    NetworkUsername = "testUser",
    NetworkPassword = "testPassword"
};

string uri = "http://localhost:51169/Invoice";

// Apply cookies
renderer.ApplyCookies(uri, credentials);
Imports IronPdf

' Instantiate ChromePdfRenderer
Private renderer As New ChromePdfRenderer()

renderer.RenderingOptions.RequestContext = IronPdf.Rendering.RequestContexts.Global

Dim credentials As New ChromeHttpLoginCredentials() With {
	.NetworkUsername = "testUser",
	.NetworkPassword = "testPassword"
}

Dim uri As String = "http://localhost:51169/Invoice"

' Apply cookies
renderer.ApplyCookies(uri, credentials)
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

Cabeçalho de solicitação HTTP

Além dos cookies, o IronPDF também permite que os usuários personalizem o cabeçalho da solicitação HTTP com tokens de autorização e outros campos comuns relacionados.

:path=/static-assets/pdf/content-code-examples/how-to/http-request-header.cs
using IronPdf;
using System.Collections.Generic;

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HttpRequestHeaders = new Dictionary<string, string>
{
    { "Authorization", "Bearer test-token-123" }
};

// Render PDF from authenticated page
var pdf = renderer.RenderUrlAsPdf("https://httpbin.org/bearer");
pdf.SaveAs("output.pdf");
Imports IronPdf
Imports System.Collections.Generic

Private renderer = New ChromePdfRenderer()
renderer.RenderingOptions.HttpRequestHeaders = New Dictionary(Of String, String) From {
	{"Authorization", "Bearer test-token-123"}
}

' Render PDF from authenticated page
Dim pdf = renderer.RenderUrlAsPdf("https://httpbin.org/bearer")
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

Personalize sua conversão de PDF

Opções de renderização

O IronPDF permite que os usuários personalizem a aparência e o formato dos PDFs gerados. A classe ChromePdfRender que é usada para converter várias entradas em PDFs também inclui a propriedade RenderingOptions, permitindo que os usuários controlem como a saída fica.

:path=/static-assets/pdf/content-code-examples/how-to/rendering-options-render.cs
using IronPdf;

// Instantiate a ChromePdfRenderer object, which uses a headless version of the Chrome browser
// to render HTML/CSS as a PDF document.
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Configure rendering options
// Enable printing of HTML backgrounds to ensure all styles are visible.
renderer.RenderingOptions.PrintHtmlBackgrounds = true;

// Set HTML header content using HtmlHeaderFooter.
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    // HTML fragment to add a header at the top of every page in the PDF.
    HtmlFragment = "<h1>Header Content</h1>"
};

// Set a custom paper size for the PDF in millimeters (width and height).
renderer.RenderingOptions.SetCustomPaperSizeinMilimeters(150, 150);

// Set the top margin to zero to start the content from the very top of the page.
renderer.RenderingOptions.MarginTop = 0;

// Define a Markdown string that will be rendered as a PDF.
// Markdown text allows basic formatting like bold and italic styles.
string md = "This is some **bold** and *italic* text.";

// Render the Markdown string to a PDF document.
// The library will convert Markdown syntax into equivalent HTML before rendering it as a PDF.
PdfDocument pdf = renderer.RenderMarkdownStringAsPdf(md);

// Save the generated PDF to a file named "renderingOptions.pdf."
pdf.SaveAs("renderingOptions.pdf");
Imports IronPdf

' Instantiate a ChromePdfRenderer object, which uses a headless version of the Chrome browser
' to render HTML/CSS as a PDF document.
Private renderer As New ChromePdfRenderer()

' Configure rendering options
' Enable printing of HTML backgrounds to ensure all styles are visible.
renderer.RenderingOptions.PrintHtmlBackgrounds = True

' Set HTML header content using HtmlHeaderFooter.
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter With {.HtmlFragment = "<h1>Header Content</h1>"}

' Set a custom paper size for the PDF in millimeters (width and height).
renderer.RenderingOptions.SetCustomPaperSizeinMilimeters(150, 150)

' Set the top margin to zero to start the content from the very top of the page.
renderer.RenderingOptions.MarginTop = 0

' Define a Markdown string that will be rendered as a PDF.
' Markdown text allows basic formatting like bold and italic styles.
Dim md As String = "This is some **bold** and *italic* text."

' Render the Markdown string to a PDF document.
' The library will convert Markdown syntax into equivalent HTML before rendering it as a PDF.
Dim pdf As PdfDocument = renderer.RenderMarkdownStringAsPdf(md)

' Save the generated PDF to a file named "renderingOptions.pdf."
pdf.SaveAs("renderingOptions.pdf")
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

Definir margem personalizada

Você pode personalizar ainda mais a aparência do seu PDF de saída ajustando as margens, o que permite controlar o layout e o espaçamento com precisão.

:path=/static-assets/pdf/content-code-examples/how-to/custom-margins-set-margins.cs
ChromePdfRenderer renderer = new ChromePdfRenderer();

renderer.RenderingOptions.MarginTop = 40;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
renderer.RenderingOptions.MarginBottom = 40;
Dim renderer As New ChromePdfRenderer()

renderer.RenderingOptions.MarginTop = 40
renderer.RenderingOptions.MarginLeft = 20
renderer.RenderingOptions.MarginRight = 20
renderer.RenderingOptions.MarginBottom = 40
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

Escala de cinza

Para gerar um PDF em tons de cinza, configuramos a propriedade GrayScale dentro de RenderingOptions para verdadeiro.

:path=/static-assets/pdf/content-code-examples/how-to/color-grayscale-grayscale.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Set GrayScale to true
renderer.RenderingOptions.GrayScale = true;

PdfDocument pdf = renderer.RenderUrlAsPdf("https://ironsoftware.com/");
pdf.CopyPage(0).SaveAs("test.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

' Set GrayScale to true
renderer.RenderingOptions.GrayScale = True

Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://ironsoftware.com/")
pdf.CopyPage(0).SaveAs("test.pdf")
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

Aprimore o layout do seu PDF

Adicionar um índice

Crie um sumário dinâmico com o IronPDF para ajudar os leitores a navegar facilmente pelo seu documento. O IronPDF lida automaticamente com o índice com hyperlinks para cabeçalhos como h1 e h2. Além disso, você também pode personalizar o estilo do sumário com HTML e CSS.

:path=/static-assets/pdf/content-code-examples/how-to/table-of-contents.cs
using IronPdf;

// Instantiate Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Configure render options
renderer.RenderingOptions = new ChromePdfRenderOptions
{
    // Enable table of content feature
    TableOfContents = TableOfContentsTypes.WithPageNumbers,
};

PdfDocument pdf = renderer.RenderHtmlFileAsPdf("tableOfContent.html");

pdf.SaveAs("tableOfContents.pdf");
Imports IronPdf

' Instantiate Renderer
Private renderer As New ChromePdfRenderer()

' Configure render options
renderer.RenderingOptions = New ChromePdfRenderOptions With {.TableOfContents = TableOfContentsTypes.WithPageNumbers}

Dim pdf As PdfDocument = renderer.RenderHtmlFileAsPdf("tableOfContent.html")

pdf.SaveAs("tableOfContents.pdf")
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

Quebra de página

Adicione quebras de página entre as seções para separar claramente o conteúdo e melhorar a legibilidade do seu documento. Com IronPDF, simplesmente use o HTML div style= page-break-after para obter esse efeito.

:path=/static-assets/pdf/content-code-examples/how-to/html-to-pdf-page-breaks-page-break.cs
using IronPdf;

const string html = @"
  <table style='border: 1px solid #000000'>
    <tr>
      <th>Company</th>
      <th>Product</th>
    </tr>
    <tr>
      <td>Iron Software</td>
      <td>IronPDF</td>
    </tr>
    <tr>
      <td>Iron Software</td>
      <td>IronOCR</td>
    </tr>
  </table>

  <div style='page-break-after: always;'> </div>

  <img src='https://ironpdf.com/img/products/ironpdf-logo-text-dotnet.svg'>";

var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("Page_Break.pdf");
Imports IronPdf

Private Const html As String = "
  <table style='border: 1px solid #000000'>
    <tr>
      <th>Company</th>
      <th>Product</th>
    </tr>
    <tr>
      <td>Iron Software</td>
      <td>IronPDF</td>
    </tr>
    <tr>
      <td>Iron Software</td>
      <td>IronOCR</td>
    </tr>
  </table>

  <div style='page-break-after: always;'> </div>

  <img src='https://ironpdf.com/img/products/ironpdf-logo-text-dotnet.svg'>"

Private renderer = New ChromePdfRenderer()

Private pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("Page_Break.pdf")
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

Ajustar à página e zoom

Precisa de ajuda para decidir as dimensões do conteúdo para caber em um tamanho de papel especificado? IronPDF te cobre com o UseChromeDefault, que imita como a visualização de impressão do Google Chrome escala o conteúdo para caber na página.

:path=/static-assets/pdf/content-code-examples/how-to/viewport-zoom-default-chrome.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Chrome default rendering
renderer.RenderingOptions.PaperFit.UseChromeDefaultRendering();

// Render web URL to PDF
PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");

pdf.SaveAs("chromeDefault.pdf");
Imports IronPdf

Private renderer As New ChromePdfRenderer()

' Chrome default rendering
renderer.RenderingOptions.PaperFit.UseChromeDefaultRendering()

' Render web URL to PDF
Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page")

pdf.SaveAs("chromeDefault.pdf")
$vbLabelText   $csharpLabel

Para uma explicação mais detalhada deste trecho de código e para explorar suas funcionalidades adicionais, consulte nosso guia completo de instruções .

Conclusão

Os exemplos acima demonstram as impressionantes capacidades e funcionalidades de destaque que você pode desbloquear ao converter vários formatos para PDF usando o IronPDF.

Se desejar solicitar uma funcionalidade ou tiver dúvidas gerais sobre o IronPDF ou licenciamento, entre em contato com nossa equipe de suporte . Teremos todo o prazer em ajudá-lo(a).

Perguntas frequentes

Como faço para converter HTML em PDF no .NET Core?

Para converter HTML em PDF no .NET Core, utilize a biblioteca IronPDF. Primeiro, instale o pacote via NuGet. Em seguida, crie uma instância de ChromePdfRenderer e utilize o método RenderHtmlAsPdf para converter strings HTML em formato PDF.

Como posso converter um URL ativo em um documento PDF?

Você pode converter uma URL ativa em um documento PDF usando o IronPDF, instalando a biblioteca do NuGet, criando uma instância de ChromePdfRenderer e chamando o método RenderUrlAsPdf com a URL da página da web que deseja converter.

Quais são os passos para converter visualizações Razor em PDF?

Para converter views Razor em PDF, renderize a view em uma string HTML e, em seguida, passe-a para o método ` RenderHtmlAsPdf do IronPDF. Isso permite a criação de PDFs dinâmicos a partir de views MVC com vinculação de dados completa.

É possível modificar arquivos PDF existentes?

Sim, arquivos PDF existentes podem ser modificados usando o IronPDF. Use o PdfDocument.FromFile para carregar um PDF e, em seguida, aplique modificações como mesclagem, adição de cabeçalhos/rodapés ou alteração de configurações de segurança.

Quais opções estão disponíveis para renderizar PDFs?

O IronPDF oferece diversas opções de renderização por meio do ChromePdfRenderOptions . Você pode personalizar o tamanho do papel, a orientação, as margens e muito mais, garantindo que seus PDFs atendam a requisitos específicos de layout e estilo.

Como posso implantar PDFs em um ambiente Docker?

Implante PDFs em um ambiente Docker configurando as dependências do Linux no seu Dockerfile. Use IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig do IronPDF para gerenciar dependências automaticamente em aplicações conteinerizadas.

É possível adicionar assinaturas digitais a arquivos PDF?

Sim, é possível adicionar assinaturas digitais a arquivos PDF usando a classe PdfSignature . Ao utilizar o método Sign e um arquivo de certificado, você garante a autenticidade e a integridade do documento.

Quais recursos de segurança o IronPDF oferece para PDFs?

O IronPDF oferece recursos de segurança robustos, incluindo proteção por senha, criptografia e controle de acesso. Configure esses recursos por meio da propriedade SecuritySettings para gerenciar as permissões de visualização, impressão e edição.

Como extrair texto e imagens de documentos PDF?

É possível extrair texto e imagens de documentos PDF usando os métodos ExtractAllText e ExtractAllImages do IronPDF. Esses métodos permitem processar dados de documentos inteiros ou de páginas específicas.

Como faço para adicionar marcas d'água a arquivos PDF?

É possível aplicar marcas d'água a arquivos PDF usando a propriedade Watermark do IronPDF com objetos HtmlStamp . Para necessidades mais avançadas, a classe HtmlStamper oferece suporte a marcas d'água baseadas em HTML com estilos personalizáveis.

O IronPDF é compatível com o .NET 10? Como posso utilizá-lo em um projeto .NET 10?

Sim, o IronPDF oferece suporte completo ao .NET 10 como parte de seu suporte multiplataforma para versões modernas do .NET. Para usá-lo em um projeto .NET 10, instale o pacote NuGet IronPDF , faça referência a ele no arquivo de projeto com o parâmetro net10.0 e, em seguida, use classes como ChromePdfRenderer e métodos como RenderHtmlAsPdf da mesma forma que faria em versões anteriores do .NET. Você se beneficia do desempenho aprimorado, do uso de memória otimizado e dos recursos de tempo de execução inerentes ao .NET 10 ao renderizar ou manipular PDFs.

Jacob Mellor, Diretor de Tecnologia da Team Iron
Diretor de Tecnologia

Jacob Mellor é Diretor de Tecnologia da Iron Software e um engenheiro visionário pioneiro na tecnologia C# PDF. Como desenvolvedor original do código-fonte principal da Iron Software, ele moldou a arquitetura de produtos da empresa desde sua criação, transformando-a, juntamente com o CEO Cameron Rimington, em uma ...

Leia mais
Analisado por
Jeff Fritz
Jeffrey T. Fritz
Gerente de Programa Principal - Equipe da Comunidade .NET
Jeff também é Gerente de Programa Principal das equipes do .NET e do Visual Studio. Ele é o produtor executivo da série de conferências virtuais .NET Conf e apresenta o "Fritz and Friends", uma transmissão ao vivo para desenvolvedores que vai ao ar duas vezes por semana, onde ele conversa sobre tecnologia e escreve código junto com os espectadores. Jeff cria workshops, apresentações e planeja conteúdo para os maiores eventos de desenvolvedores da Microsoft, incluindo o Microsoft Build, o Microsoft Ignite, a .NET Conf e o Microsoft MVP Summit.
Pronto para começar?
Nuget Downloads 18,318,263 | Versão: 2026.4 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronPdf
executar um exemplo Veja seu HTML se transformar em um PDF.