Como converter HTML para PDF com CSS responsivo usando C#

Como usar CSS com HTML em C# para PDFs responsivos

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

O IronPDF permite que desenvolvedores C# convertam HTML com CSS em PDF, preservando o design responsivo ao suportar mídias tanto para "tela" quanto para "impressão". O modo de impressão otimiza os layouts para saída em PDF e habilita recursos como cabeçalhos de tabela repetidos em várias páginas.

O tipo de mídia CSS 'screen' é usado principalmente para exibição em telas de computador e dispositivos similares. Ao definir estilos para o tipo de mídia 'tela', eles afetam a forma como o conteúdo da web aparece nas telas, enfatizando o design visual e a interatividade. Isso inclui elementos como efeitos de passar o cursor, animações e imagens de fundo que melhoram a experiência do usuário em telas digitais.

O tipo de mídia CSS 'print' foi projetado para impressão. Ele determina como a página da web aparece quando impressa, com foco na otimização do conteúdo para a página impressa. Essa otimização pode incluir o ajuste do tamanho da fonte, das margens e a remoção de elementos desnecessários na impressão. As folhas de estilo para impressão geralmente removem menus de navegação, barras laterais e elementos decorativos para se concentrarem no conteúdo principal, tornando os documentos mais legíveis e economizando tinta.

Ao trabalhar com o mecanismo de renderização de PDF para Chrome do IronPDF, os desenvolvedores têm controle total sobre o tipo de mídia a ser usado, garantindo que os PDFs gerados a partir de HTML mantenham o design e a funcionalidade pretendidos. Essa flexibilidade é valiosa na criação de documentos que precisam servir tanto para distribuição digital quanto para impressão física.

Início rápido: Gere PDFs com HTML e CSS responsivos

Converta seu HTML com CSS responsivo para PDF usando o IronPDF. Com apenas algumas linhas de código, garanta que seus PDFs sejam exibidos perfeitamente em todos os dispositivos, mantendo a integridade dos estilos de tela e impressão. Este guia rápido demonstra como usar o IronPDF para obter resultados profissionais em PDF a partir de conteúdo HTML existente.

  1. Instale IronPDF com o Gerenciador de Pacotes NuGet

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

    new IronPdf.ChromePdfRenderer { RenderingOptions = { CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print } }
        .RenderUrlAsPdf("https://example.com")
        .SaveAs("responsive.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 funcionam os tipos CSS para tela e impressão no CSS3?

Por que escolher o tipo de mídia CSS correto é importante?

O IronPDF gera PDFs a partir de HTML em C# e, por padrão, pode renderizar uma folha de estilo da tela em PDF. Isso é conveniente porque as folhas de estilo para impressão costumam ser menos documentadas, usadas ou desenvolvidas em comparação com suas contrapartes para tela. No entanto, entender a distinção entre esses tipos de mídia é crucial para produzir PDFs de qualidade profissional.

Ao trabalhar com CSS (Tela e Impressão) no IronPDF, a escolha entre os tipos de mídia de tela e impressão impacta significativamente o resultado final em PDF. Os formatos de mídia para tela preservam elementos interativos e designs visuais ricos, enquanto os formatos de mídia impressa otimizam o conteúdo para legibilidade e consumo em papel.

O CSS3 permite que certos estilos CSS sejam renderizados exclusivamente em documentos impressos, enquanto outros são destinados a navegadores da web. O IronPDF é compatível com ambos, oferecendo controle total sobre como o conteúdo HTML é renderizado em PDF . Essa flexibilidade garante que, seja para criar relatórios digitais, faturas para impressão ou documentos híbridos, seus PDFs atendam aos requisitos específicos do uso pretendido.

Quando devo usar o tipo de mídia CSS Print em vez de Screen?

Crie e aplique uma folha de estilo de impressão ao seu HTML: Aprenda como criar e aplicar uma folha de estilo de impressão perfeita.

Cada tipo de mídia CSS se destina a diferentes casos de uso. Experimente cada um para ver qual se adapta melhor às suas necessidades. Considere estas diretrizes:

Use o tipo de mídia CSS Print quando:

  • Criar documentos destinados à impressão física.
  • Geração de faturas, relatórios ou documentos formais
  • Você precisa de cabeçalhos de tabela repetidos em todas as páginas.
  • Economizar tinta é uma prioridade
  • Trabalhando com requisitos de tamanho de papel personalizado

Use o tipo de mídia CSS Screen quando:

  • Criação de PDFs interativos com elementos visuais ricos
  • Preservar a estética do design web no PDF
  • Incluindo imagens e cores de fundo
  • O PDF será visualizado principalmente em telas.
  • Trabalhando com conversões responsivas de HTML para PDF

Quais são as diferenças visuais entre os modos de tela e impressão?

Comparação de tipos de mídia CSS para impressão e tela, mostrando a página do Apple Mac com imagens ocultas na versão para impressão Comparação de tipos de mídia CSS: o layout de impressão omite ícones, o layout de tela inclui ícones para as especificações do MacBook

Os exemplos acima demonstram como o mesmo conteúdo HTML é renderizado de forma diferente com base na seleção do tipo de mídia CSS. Observe como a versão impressa remove imagens e ícones decorativos para criar um documento mais limpo e adequado para impressão, enquanto a versão para tela mantém todos os elementos visuais para visualização digital.


Como faço para repetir os cabeçalhos das tabelas em várias páginas de um PDF?

Por que os cabeçalhos das tabelas aparecem apenas uma vez no modo de tela?

Ao lidar com tabelas HTML que abrangem várias páginas, defina a propriedade CssMediaType para PdfCssMediaType.Print . Isso garante que o cabeçalho da tabela se repita no topo de cada página estendida. Em contraste, PdfCssMediaType.Screen instrui o Chrome a imprimir os cabeçalhos apenas uma vez. Esse comportamento é particularmente importante ao criar relatórios em PDF com tabelas de dados extensas.

O tipo de mídia impressa ativa regras CSS específicas que os navegadores usam para paginação, incluindo a propriedade thead {display: table-header-group;} que permite a repetição do cabeçalho. Essa funcionalidade é essencial para manter o contexto quando os leitores folheiam documentos com várias páginas.

Qual a estrutura HTML necessária para cabeçalhos repetidos?

Para garantir que o Chrome detecte o cabeçalho da tabela, coloque-o dentro de uma tag <thead>. Let's render the 'tableHeader.html example of repeating table headers' HTML file to PDF to see the effect.

Eis a estrutura HTML recomendada:

<table>
    <thead>
        <tr>
            <th>Column 1</th>
            <th>Column 2</th>
            <th>Column 3</th>
        </tr>
    </thead>
    <tbody>

    </tbody>
</table>
<table>
    <thead>
        <tr>
            <th>Column 1</th>
            <th>Column 2</th>
            <th>Column 3</th>
        </tr>
    </thead>
    <tbody>

    </tbody>
</table>
HTML

Como implementar a repetição do cabeçalho de uma tabela em C#?

:path=/static-assets/pdf/content-code-examples/how-to/html-to-pdf-responsive-css-table-header.cs
using IronPdf;
using IronPdf.Rendering;

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Change the paper size to small
renderer.RenderingOptions.SetCustomPaperSizeinPixelsOrPoints(600, 400);

// Choose screen or print CSS media
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;

// Render HTML to PDF
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("tableHeader.html");

pdf.SaveAs("tableHeader.pdf");
Imports IronPdf
Imports IronPdf.Rendering

Private renderer As New ChromePdfRenderer()

' Change the paper size to small
renderer.RenderingOptions.SetCustomPaperSizeinPixelsOrPoints(600, 400)

' Choose screen or print CSS media
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print

' Render HTML to PDF
Dim pdf As PdfDocument = renderer.RenderHtmlFileAsPdf("tableHeader.html")

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

Para opções mais avançadas de formatação de tabelas, explore as Margens Personalizadas para controlar o espaçamento ao redor das suas tabelas ou implemente Quebras de Página para garantir que as tabelas comecem em novas páginas quando necessário.

Qual será a aparência do arquivo PDF final?

Configuração avançada de tipos de mídia CSS

Ao trabalhar com layouts complexos, combine tipos de mídia CSS com outros recursos do IronPDF . Por exemplo, ao usar as configurações de Viewport e Zoom , o tipo de mídia CSS escolhido afeta a forma como os designs responsivos são dimensionados no PDF final.

Aqui está um exemplo que demonstra a configuração avançada:

using IronPdf;
using IronPdf.Rendering;

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Configure for print media type with custom settings
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.PrintHtmlBackgrounds = true; // Override print defaults
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;

// Add custom CSS for print media
string customCss = @"
    @media print {
        .no-print { display: none; }
        body { font-size: 12pt; }
        h1 { page-break-after: avoid; }
    }
";

// Render with custom CSS injection
string htmlWithCss = $"<style>{customCss}</style>{yourHtmlContent}";
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlWithCss);

pdf.SaveAs("advanced-print-layout.pdf");
using IronPdf;
using IronPdf.Rendering;

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Configure for print media type with custom settings
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.PrintHtmlBackgrounds = true; // Override print defaults
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;

// Add custom CSS for print media
string customCss = @"
    @media print {
        .no-print { display: none; }
        body { font-size: 12pt; }
        h1 { page-break-after: avoid; }
    }
";

// Render with custom CSS injection
string htmlWithCss = $"<style>{customCss}</style>{yourHtmlContent}";
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlWithCss);

pdf.SaveAs("advanced-print-layout.pdf");
Imports IronPdf
Imports IronPdf.Rendering

Dim renderer As New ChromePdfRenderer()

' Configure for print media type with custom settings
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
renderer.RenderingOptions.PrintHtmlBackgrounds = True ' Override print defaults
renderer.RenderingOptions.MarginTop = 25
renderer.RenderingOptions.MarginBottom = 25

' Add custom CSS for print media
Dim customCss As String = "
    @media print {
        .no-print { display: none; }
        body { font-size: 12pt; }
        h1 { page-break-after: avoid; }
    }
"

' Render with custom CSS injection
Dim htmlWithCss As String = $"<style>{customCss}</style>{yourHtmlContent}"
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlWithCss)

pdf.SaveAs("advanced-print-layout.pdf")
$vbLabelText   $csharpLabel

Para projetos que exigem precisão absoluta em cada pixel, considere usar o recurso "Depurar HTML com o Chrome" para visualizar exatamente como seus tipos de mídia CSS serão renderizados antes de gerar o PDF final.

Melhores práticas para tipos de mídia CSS no IronPDF

  1. Teste os dois tipos de mídia : Sempre teste seu HTML com mídias tanto para tela quanto para impressão, a fim de determinar qual produz os melhores resultados para o seu caso de uso específico.

  2. Use a impressão para documentos : Ao criar documentos formais, faturas ou relatórios, a mídia impressa geralmente proporciona resultados mais nítidos e profissionais.

  3. Aproveite as Media Queries : Utilize media queries do CSS para ajustar seus layouts a diferentes cenários de saída.

  4. Considere o desempenho : as folhas de estilo para impressão geralmente são renderizadas mais rapidamente porque excluem elementos visuais desnecessários.

  5. Valide seu CSS : Use as Configurações de Renderização HTML para garantir que seu CSS seja aplicado corretamente durante a geração do PDF.

Ao dominar os tipos de mídia CSS no IronPDF, você pode criar PDFs que atendam perfeitamente às suas necessidades, sejam elas destinadas à distribuição digital ou à impressão física.

Perguntas frequentes

Como posso converter HTML com CSS responsivo para PDF em C#?

O IronPDF oferece uma maneira simples de converter HTML com CSS responsivo em PDF usando C#. Você pode usar a classe ChromePdfRenderer e especificar o tipo de mídia CSS (tela ou impressão) por meio da propriedade RenderingOptions. Com apenas algumas linhas de código, o IronPDF preserva seu design responsivo e garante uma renderização perfeita em diferentes dispositivos.

Qual a diferença entre os tipos de mídia CSS 'screen' e 'print' ao gerar PDFs?

O IronPDF suporta ambos os tipos de mídia CSS. O tipo de mídia 'tela' exibe o conteúdo como ele aparece em telas digitais, com efeitos de foco e animações, enquanto o tipo de mídia 'impressão' otimiza o conteúdo para páginas impressas, ajustando fontes, margens e removendo elementos desnecessários, como menus de navegação. O mecanismo de renderização de PDF do IronPDF para Chrome oferece controle total sobre qual tipo de mídia usar.

Como faço para habilitar a repetição de cabeçalhos de tabela em várias páginas de um PDF?

Para habilitar a repetição de cabeçalhos de tabela em várias páginas do seu PDF, defina o tipo de mídia CSS como 'Impressão' no IronPDF. Isso pode ser feito definindo `CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print` nas opções de renderização (RenderingOptions). O tipo de mídia 'Impressão' inclui otimizações como a repetição de cabeçalhos, que tornam documentos com várias páginas mais legíveis.

Posso converter um URL de um site ativo diretamente para PDF com design responsivo?

Sim, o IronPDF permite converter sites ao vivo diretamente para PDF, mantendo o design responsivo. Use o método `RenderUrlAsPdf` com a classe `ChromePdfRenderer`. Você pode especificar se deseja usar os tipos de mídia CSS `screen` ou `print` para garantir que o PDF seja renderizado de acordo com suas necessidades.

Qual mecanismo de renderização a biblioteca usa para a conversão de HTML para PDF?

O IronPDF utiliza o mecanismo de renderização de PDF do Chrome, que proporciona uma conversão precisa de HTML para PDF com suporte completo para recursos modernos de CSS3, JavaScript e design responsivo. Esse mecanismo garante que seus PDFs mantenham o design e a funcionalidade pretendidos do conteúdo HTML original.

Como configuro as dimensões da viewport para um design de PDF responsivo?

O IronPDF permite configurar as dimensões da viewport através da propriedade RenderingOptions do ChromePdfRenderer. Isso garante que suas media queries CSS responsivas funcionem corretamente ao converter HTML para PDF, permitindo controlar como o conteúdo aparece em diferentes tamanhos de viewport.

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.