Como renderizar uma string HTML em PDF usando C# | IronPDF

How to Convert HTML String to PDF in C

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

O IronPDF converte strings HTML em documentos PDF em C# usando um mecanismo de renderização do Chrome, suportando todo o conteúdo HTML5, CSS3 e JavaScript com uma única linha de código para conversões básicas. A biblioteca oferece recursos poderosos para a criação de PDFs , mantendo uma fidelidade de renderização perfeita.

O IronPDF permite que os desenvolvedores criem documentos PDF facilmente em C#, F# e VB .NET for .NET Core e .NET Framework. O IronPDF permite renderizar qualquer string HTML em um PDF, e o processo de renderização utiliza uma versão totalmente funcional do mecanismo Google Chromium. Isso garante que o conteúdo HTML seja exibido exatamente como em um navegador moderno, tornando-o ideal para gerar relatórios, faturas e documentos a partir de conteúdo HTML dinâmico.

Início Rápido: Converter String HTML em PDF em Segundos

Transforme strings HTML em arquivos PDF usando o IronPDF. Este guia demonstra como converter uma string HTML em um documento PDF em C# com o mínimo de código. Ideal para desenvolvedores que precisam integrar recursos de renderização de PDF em seus projetos.

  1. Instale IronPDF com o Gerenciador de Pacotes NuGet

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

    IronPdf.ChromePdfRenderer.StaticRenderHtmlAsPdf("<p>Hello World</p>").SaveAs("string-to-pdf.pdf");
  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


Como faço para converter uma string HTML simples em PDF?

Aqui está um exemplo do IronPDF renderizando uma string HTML em um PDF usando o método RenderHtmlAsPdf. O parâmetro é uma string HTML a ser renderizada como um PDF. Este método faz parte da classe ChromePdfRenderer, que oferece amplo controle sobre as opções de renderização para suas necessidades de geração de PDF.

: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

O método RenderHtmlAsPdf retorna um objeto PdfDocument, que contém informações do PDF e fornece métodos para manipular o PDF, incluindo mesclar PDFs , adicionar marcas d'água e definir opções de segurança .

PontasEm ASP.NET Core, Blazor ou serviços em segundo plano, prefira a variante assíncrona RenderHtmlAsPdfAsync para evitar o bloqueio de threads. O PdfDocument retornado implementa IDisposable, então envolva-o em um bloco using para cenários de alto desempenho. O ChromePdfRenderer é thread-safe e pode ser instanciado uma única vez e reutilizado em várias requisições para melhor desempenho.

Quando uma string HTML é obtida de uma fonte externa e você precisa desativar o acesso ao disco local ou solicitações de origem cruzada, defina IronPdf.Installation.EnableWebSecurity como verdadeiro antes da renderização. Essa é uma configuração global estática, não uma propriedade de instância no renderizador.

// Enable web security before rendering untrusted HTML
IronPdf.Installation.EnableWebSecurity = true;
// Enable web security before rendering untrusted HTML
IronPdf.Installation.EnableWebSecurity = true;
' Enable web security before rendering untrusted HTML
IronPdf.Installation.EnableWebSecurity = True
$vbLabelText   $csharpLabel

Para conteúdo HTML complexo que inclui estilos CSS, aprimore suas strings HTML com estilos embutidos ou faça referência a folhas de estilo externas usando o recurso de URLs base e codificação de ativos :

// Example with inline CSS
var styledHtml = @"
<html>
<head>
    <style>
        body { font-family: Arial, sans-serif; margin: 40px; }
        h1 { color: #333; border-bottom: 2px solid #0066cc; }
        p { line-height: 1.6; }
    </style>
</head>
<body>
    <h1>Professional Report</h1>
    <p>This PDF was generated from HTML with custom styling.</p>
</body>
</html>";

using var styledPdf = renderer.RenderHtmlAsPdf(styledHtml);
styledPdf.SaveAs("styled-output.pdf");
// Example with inline CSS
var styledHtml = @"
<html>
<head>
    <style>
        body { font-family: Arial, sans-serif; margin: 40px; }
        h1 { color: #333; border-bottom: 2px solid #0066cc; }
        p { line-height: 1.6; }
    </style>
</head>
<body>
    <h1>Professional Report</h1>
    <p>This PDF was generated from HTML with custom styling.</p>
</body>
</html>";

using var styledPdf = renderer.RenderHtmlAsPdf(styledHtml);
styledPdf.SaveAs("styled-output.pdf");
Dim styledHtml As String = "
<html>
<head>
    <style>
        body { font-family: Arial, sans-serif; margin: 40px; }
        h1 { color: #333; border-bottom: 2px solid #0066cc; }
        p { line-height: 1.6; }
    </style>
</head>
<body>
    <h1>Professional Report</h1>
    <p>This PDF was generated from HTML with custom styling.</p>
</body>
</html>"

Using styledPdf = renderer.RenderHtmlAsPdf(styledHtml)
    styledPdf.SaveAs("styled-output.pdf")
End Using
$vbLabelText   $csharpLabel

Qual é a aparência do PDF gerado?

Este é o arquivo gerado pelo código:

O PDF gerado mantém a formatação e o estilo exatos do seu HTML, tornando-o perfeito para gerar relatórios em PDF ou converter conteúdo da web em documentos prontos para impressão.

Como posso incluir recursos externos ao converter HTML para PDF?

Este exemplo mostra o IronPDF carregando um recurso de imagem externo a partir de um BasePath opcional. A configuração da propriedade BaseUrlOrPath fornece o caminho relativo do arquivo ou o contexto da URL para hiperlinks, imagens, CSS e arquivos JavaScript . Isso é essencial ao trabalhar com imagens em PDFs ou quando você precisa consultar recursos externos.

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

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

// 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

' Instantiate Renderer
Private renderer = New ChromePdfRenderer()

' 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
Private myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
$vbLabelText   $csharpLabel

Para cenários avançados que envolvam layouts complexos ou conteúdo dinâmico, utilize o suporte do IronPDF para renderização em JavaScript :

// Example with JavaScript-generated content
var jsHtml = @"
<html>
<head>
    <script>
        window.onload = function() {
            document.getElementById('dynamic').innerHTML = 
                'Generated on: ' + new Date().toLocaleString();
        };
    </script>
</head>
<body>
    <h1>Dynamic Content Example</h1>
    <div id='dynamic'></div>
</body>
</html>";

// Configure rendering to wait for JavaScript execution
renderer.RenderingOptions.WaitFor.RenderDelay(500); // milliseconds
using var dynamicPdf = renderer.RenderHtmlAsPdf(jsHtml, @"C:\site\");
dynamicPdf.SaveAs("dynamic-content.pdf");
// Example with JavaScript-generated content
var jsHtml = @"
<html>
<head>
    <script>
        window.onload = function() {
            document.getElementById('dynamic').innerHTML = 
                'Generated on: ' + new Date().toLocaleString();
        };
    </script>
</head>
<body>
    <h1>Dynamic Content Example</h1>
    <div id='dynamic'></div>
</body>
</html>";

// Configure rendering to wait for JavaScript execution
renderer.RenderingOptions.WaitFor.RenderDelay(500); // milliseconds
using var dynamicPdf = renderer.RenderHtmlAsPdf(jsHtml, @"C:\site\");
dynamicPdf.SaveAs("dynamic-content.pdf");
Imports System

' Example with JavaScript-generated content
Dim jsHtml As String = "
<html>
<head>
    <script>
        window.onload = function() {
            document.getElementById('dynamic').innerHTML = 
                'Generated on: ' + new Date().toLocaleString();
        };
    </script>
</head>
<body>
    <h1>Dynamic Content Example</h1>
    <div id='dynamic'></div>
</body>
</html>"

' Configure rendering to wait for JavaScript execution
renderer.RenderingOptions.WaitFor.RenderDelay(500) ' milliseconds
Using dynamicPdf = renderer.RenderHtmlAsPdf(jsHtml, "C:\site\")
    dynamicPdf.SaveAs("dynamic-content.pdf")
End Using
$vbLabelText   $csharpLabel

Ao trabalhar com recursos externos, você pode precisar lidar com autenticação ou cabeçalhos especiais. O IronPDF oferece suporte a isso por meio da funcionalidade de cabeçalho de solicitação HTTP , permitindo que você inclua tokens de autorização ou cabeçalhos personalizados ao buscar recursos.

Por que definir o BasePath é importante para recursos externos?

Este é o arquivo gerado pelo código:

Configurar o BasePath corretamente garante que todas as referências relativas no seu HTML sejam resolvidas adequadamente. Sem ele, o IronPDF não consegue localizar recursos externos como imagens, folhas de estilo ou scripts. Isso é particularmente importante quando:

  1. Converter HTML que faz referência a recursos do sistema de arquivos local
  2. Trabalhar com sistemas de gerenciamento de conteúdo que usam URLs relativas
  3. Migrar conteúdo web existente para o formato PDF
  4. Criação de modelos que utilizam recursos compartilhados

Para recursos baseados na web, use um URL completo como caminho base:

// Using a web URL as base path
var webBasedPdf = renderer.RenderHtmlAsPdf(
    "<link rel='stylesheet' href='/styles/main.css'><h1>Web Content</h1>", 
    "https://mywebsite.com"
);
// Using a web URL as base path
var webBasedPdf = renderer.RenderHtmlAsPdf(
    "<link rel='stylesheet' href='/styles/main.css'><h1>Web Content</h1>", 
    "https://mywebsite.com"
);
' Using a web URL as base path
Dim webBasedPdf = renderer.RenderHtmlAsPdf(
    "<link rel='stylesheet' href='/styles/main.css'><h1>Web Content</h1>", 
    "https://mywebsite.com"
)
$vbLabelText   $csharpLabel

Para obter maior controle sobre o processo de geração de PDFs, explore a extensa documentação do IronPDF sobre margens personalizadas , orientação de página e compressão de PDF para otimizar seus arquivos de saída para diversos casos de uso.

Perguntas frequentes

Como faço para converter uma string HTML simples em PDF usando C#?

Você pode converter uma string HTML em PDF usando a classe ChromePdfRenderer do IronPDF com o método RenderHtmlAsPdf. Basta instanciar o renderizador, passar sua string HTML para o método e salvar o objeto PdfDocument resultante. O IronPDF utiliza um mecanismo de renderização do Chrome para garantir fidelidade perfeita.

Qual mecanismo de renderização é usado na conversão de HTML para PDF?

O IronPDF utiliza uma versão totalmente funcional do mecanismo Google Chromium para renderizar HTML em PDF. Isso garante que seu conteúdo HTML, incluindo HTML5, CSS3 e JavaScript, seja exibido exatamente como seria em um navegador moderno.

Posso converter HTML com estilo CSS para PDF?

Sim, o IronPDF suporta a conversão de HTML com estilos CSS para PDF. Você pode usar estilos embutidos diretamente na sua string HTML ou referenciar folhas de estilo externas usando o recurso de URLs Base e Codificação de Recursos para garantir a renderização correta do conteúdo estilizado.

Qual é a maneira mais rápida de converter HTML para PDF?

A maneira mais rápida é usando o método estático do IronPDF: IronPdf.ChromePdfRenderer.StaticRenderHtmlAsPdf("Seu HTML").SaveAs("output.pdf"). Esta única linha de código converte sua string HTML e a salva como um arquivo PDF.

Como devo lidar com recursos externos ao converter strings HTML?

O IronPDF permite configurar o BasePath para recursos externos no seu PDF. Isso garante que imagens, folhas de estilo e outros recursos referenciados no seu HTML sejam carregados corretamente durante o processo de conversão.

Posso personalizar o formato PDF gerado ao converter de HTML?

Sim, o IronPDF oferece diversas opções de renderização para ajustar com precisão a saída do seu PDF. Você pode controlar o tamanho da página, as margens, os cabeçalhos, os rodapés e muitos outros aspectos do PDF gerado por meio da classe ChromePdfRenderer.

O que posso fazer com o PDF gerado após a conversão?

O objeto PdfDocument do IronPDF oferece diversos métodos para manipulação de PDFs, incluindo a fusão de PDFs, a adição de marcas d'água, a configuração de opções de segurança e muito mais. O PDF convertido pode ser salvo em disco, transmitido por streaming ou processado posteriormente, conforme necessário.

Como lidar com a segurança ao converter HTML de fontes externas?

Ao converter HTML de fontes externas, o IronPDF permite definir a propriedade EnableWebSecurity como true no ChromePdfRenderer. Isso desativa o acesso ao disco local e as solicitações de origem cruzada para maior segurança.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
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.