Como definir fontes em PDFs em C#

Set Fonts in PDFs with IronPDF C

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

O IronPDF permite que desenvolvedores C# criem PDFs com fontes da web e fontes de ícones personalizadas a partir de HTML. Ele oferece suporte a serviços de fontes externos, como o Google Fonts, e a arquivos de fontes locais por meio de regras CSS @font-face, garantindo tipografia consistente em todos os PDFs gerados.

Uma fonte web é uma fonte especializada projetada para uso em sites. Essas fontes são hospedadas em servidores web e baixadas pelos navegadores para garantir uma renderização de texto consistente e visualmente atraente em sites, independentemente da disponibilidade de fontes locais do usuário. Além disso, as fontes de ícones, que utilizam símbolos e glifos, são frequentemente usadas no design web para criar ícones escaláveis ​​e personalizáveis ​​e manter uma interface de usuário visualmente consistente por meio da manipulação de CSS. Com os recursos de gerenciamento de fontes do IronPDF, os desenvolvedores podem integrar facilmente essas fontes em seu fluxo de trabalho de geração de PDFs.

O CSS inclui fontes da web, permitindo que você especifique arquivos de fontes para download quando seu site for acessado. O IronPDF suporta o carregamento e a renderização de fontes em PDF a partir de HTML, tornando-o ideal para a criação de documentos que exigem padrões específicos de identidade visual ou tipografia. Para desenvolvedores que trabalham com conteúdo internacional, o IronPDF também oferece suporte a UTF-8 e a idiomas internacionais .

Guia rápido: Usando fontes da Web na geração de PDFs

Incorpore fontes da web e ícones em seus PDFs usando a biblioteca C# do IronPDF. Este guia mostra como renderizar conteúdo HTML com fontes personalizadas, garantindo PDFs consistentes e visualmente atraentes. Basta renderizar o HTML com o IronPDF e salvar seu documento formatado em segundos. Antes de começar, certifique-se de ter instalado o IronPDF em seu projeto.

  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 = { WaitFor = IronPdf.Rendering.WaitFor.AllFontsLoaded(2000) } }
        .RenderHtmlAsPdf("<link href=\"https://fonts.googleapis.com/css?family=Lobster\" rel=\"stylesheet\">" +
                         "<link href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css\" rel=\"stylesheet\">" +
                         "<p style=\"font-family:'Lobster', serif; font-size:30px;\">Hello Google Font</p>" +
                         "<i class=\"fa fa-coffee\" style=\"font-size:40px; color:#b00;\"></i>")
        .SaveAs("webfonts-icons.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 usar fontes e ícones da web em PDFs?

O IronPDF é compatível com WebFonts (como o Google Fonts e a API de fontes da Web da Adobe) e fontes de ícones, como as usadas pelo Bootstrap e FontAwesome . Esse suporte torna o IronPDF adequado para projetos que exigem tipografia sofisticada, desde documentos simples até relatórios complexos com elementos de marca.

As fontes geralmente requerem um atraso na renderização para carregarem corretamente. Quando uma fonte não é carregada corretamente, isso pode resultar em uma página em branco, sem nenhum texto. Você pode usar o método WaitFor.AllFontsLoaded para esperar até que todas as fontes sejam carregadas, atribuindo a ele um tempo máximo de espera. O tempo máximo de espera padrão é 500ms. Para cenários mais complexos envolvendo JavaScript ou conteúdo dinâmico, explore nosso tutorial de HTML para PDF , que aborda técnicas avançadas de renderização.

Aqui está um pequeno exemplo de como usar uma fonte da Web chamada Lobster em seu projeto.

:path=/static-assets/pdf/content-code-examples/how-to/webfonts-webicons-render-webfont.cs
using IronPdf;

// HTML contains webfont
var html = @"<link href=""https://fonts.googleapis.com/css?family=Lobster"" rel=""stylesheet"">
<p style=""font-family: 'Lobster', serif; font-size:30px;"" > Hello Google Fonts</p>";

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Wait for font to load
renderer.RenderingOptions.WaitFor.AllFontsLoaded(2000);

// Render HTML to PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);

// Export the PDF
pdf.SaveAs("font-test.pdf");
Imports IronPdf

' HTML contains webfont
Private html = "<link href=""https://fonts.googleapis.com/css?family=Lobster"" rel=""stylesheet"">
<p style=""font-family: 'Lobster', serif; font-size:30px;"" > Hello Google Fonts</p>"

Private renderer As New ChromePdfRenderer()

' Wait for font to load
renderer.RenderingOptions.WaitFor.AllFontsLoaded(2000)

' Render HTML to PDF
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)

' Export the PDF
pdf.SaveAs("font-test.pdf")
$vbLabelText   $csharpLabel

Explore mais opções WaitFor, como as de fontes, JavaScript, elementos HTML e ociosidade de rede na Documentação da Classe 'WaitFor'](/how-to/waitfor/). Para designs responsivos que adaptam as fontes com base no tamanho da tela, consulte nosso guia sobre CSS responsivo para renderização de PDF](/how-to/html-to-pdf-responsive-css/).

Por que o tempo de carregamento da fonte é importante?

Quando uma fonte não é carregada corretamente, isso pode resultar em uma página em branco, sem nenhum texto. Você pode usar o método WaitFor.AllFontsLoaded para esperar até que todas as fontes sejam carregadas, atribuindo a ele um tempo máximo de espera. O tempo máximo de espera padrão é 500ms. Essa consideração de tempo é particularmente importante ao trabalhar com aplicações web complexas ou ao renderizar conteúdo WebGL para PDF , onde vários recursos precisam ser carregados sequencialmente.

O tempo de carregamento das fontes pode variar dependendo de diversos fatores, incluindo a velocidade da rede, o tamanho do arquivo da fonte e o tempo de resposta do servidor. Ao trabalhar com várias fontes personalizadas ou bibliotecas de ícones, recomenda-se aumentar o tempo de espera para garantir que toda a tipografia seja renderizada corretamente. Isso é especialmente crucial para documentos profissionais, onde a ausência de fontes pode afetar a legibilidade e a consistência da marca.

Quais serviços de fontes são suportados?

O IronPDF é compatível com WebFonts (como o Google Fonts e a API de fontes da Web da Adobe) e fontes de ícones, como as usadas pelo Bootstrap e FontAwesome . Além disso, o IronPDF oferece suporte a:

  • Google Fonts (catálogo completo)
  • Fontes da Adobe (Typekit)
  • Ícones do Font Awesome (todas as versões)
  • Ícones do Bootstrap
  • Ícones do Material Design
  • Serviços de fontes web personalizadas via tags CSS @import ou link
  • Arquivos de fontes auto-hospedados em vários formatos (TTF, OTF, WOFF, WOFF2)

O que acontece se as fontes não carregarem corretamente?

As fontes geralmente requerem um atraso na renderização para carregarem corretamente. Quando uma fonte não é carregada corretamente, isso pode resultar em uma página em branco, sem nenhum texto. Nesses casos, os navegadores geralmente recorrem às fontes padrão do sistema, o que pode prejudicar a consistência visual do seu documento. O IronPDF oferece diversos mecanismos para lidar com falhas no carregamento de fontes:

  1. Cadeias de fontes de fallback : Defina várias fontes em sua declaração CSS font-family
  2. Tempos de espera prolongados : Aumente o tempo limite para conexões mais lentas.
  3. Incorporação de fontes locais : Use @font-face com fontes codificadas em base64 para garantir a disponibilidade.
  4. Pré-carregamento de fontes : Use tags HTML de pré-carregamento para priorizar o carregamento de fontes.

Como faço para importar arquivos de fonte diretamente?

Para usar um arquivo de fonte existente, aplique a regra @font-face no estilo CSS. Também funciona ao usar uma combinação da regra @font-face e incorporar arquivos woff codificados em base64. No exemplo a seguir, usarei a fonte Pixelify Sans .

:path=/static-assets/pdf/content-code-examples/how-to/webfonts-webicons-custom-font.cs
using IronPdf;

// Import custom font
string html = @"<!DOCTYPE html>
<html>
<head>
<style>
@font-face {font-family: 'Pixelify';
src: url('fonts\PixelifySans-VariableFont_wght.ttf');
}
p {
    font-family: 'Pixelify';
    font-size: 70px;
}
</style>
</head>
<body>
<p>Custom font</p>
</body>
</html>";

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Render HTML to PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);

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

' Import custom font
Private html As String = "<!DOCTYPE html>
<html>
<head>
<style>
@font-face {font-family: 'Pixelify';
src: url('fonts\PixelifySans-VariableFont_wght.ttf');
}
p {
    font-family: 'Pixelify';
    font-size: 70px;
}
</style>
</head>
<body>
<p>Custom font</p>
</body>
</html>"

Private renderer As New ChromePdfRenderer()

' Render HTML to PDF
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)

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

Quais formatos de arquivo de fonte posso usar?

Para usar um arquivo de fonte existente, aplique a regra @font-face no estilo CSS. Também funciona ao usar uma combinação da regra @font-face e incorporar arquivos woff codificados em base64. O IronPDF suporta os seguintes formatos de arquivo de fonte:

  • TTF (TrueType Font) : Amplamente compatível, ideal tanto para tela quanto para impressão.
  • OTF (OpenType Font) : Recursos tipográficos avançados, adequados para documentos profissionais.
  • WOFF (Web Open Font Format) : Formato comprimido otimizado para uso na web
  • WOFF2 : Compressão aprimorada em relação ao WOFF, resultando em arquivos de tamanho menor.
  • EOT (Embedded OpenType) : Formato legado para navegadores mais antigos
  • Fontes SVG : Fontes baseadas em vetores (com limitações em algumas plataformas)

Quando devo usar fontes locais em vez de fontes da web?

Para usar um arquivo de fonte existente, aplique a regra @font-face no estilo CSS. A escolha entre fontes locais e fontes da web depende de vários fatores:

Usar fontes locais quando:

  • Trabalhar offline ou em ambientes de rede restritos
  • Exigir disponibilidade garantida da fonte
  • Lidar com fontes proprietárias ou licenciadas
  • Otimização para renderização mais rápida sem atrasos na rede
  • Criação de documentos com requisitos de conformidade rigorosos

Utilize fontes da Web quando:

  • Utilizar grandes bibliotecas de fontes como o Google Fonts
  • Exigir atualizações automáticas dos arquivos de fonte
  • Minimizar o tamanho do pacote do aplicativo
  • Trabalhar com requisitos tipográficos que mudam frequentemente
  • Desenvolvimento de aplicações que já dependem de conectividade com a internet.

Quais são as limitações ao usar o Azure?

A plataforma de hospedagem Azure não suporta servidores que carregam fontes SVG em seus níveis inferiores de aplicativos web compartilhados. No entanto, o VPS e a Função Web do Azure não são isolados da mesma forma e suportam a renderização de fontes da web. Para obter orientações detalhadas sobre a implantação no Azure, consulte nosso guia de implantação do Azure , que aborda todas as limitações e soluções alternativas específicas de cada nível.

Quais níveis do Azure oferecem suporte à renderização de fontes?

No entanto, o VPS e a Função Web do Azure não são isolados da mesma forma e suportam a renderização de fontes da web. Segue abaixo um resumo do suporte por níveis do Azure:

Suporte completo a fontes:

  • Máquinas Virtuais do Azure (todos os tamanhos)
  • Funções Web do Azure
  • Planos Premium do App Service (P1v2, P2v2, P3v2)
  • Camadas isoladas do Serviço de Aplicativos

Suporte limitado a fontes:

  • Nível básico do Serviço de Aplicativos (B1, B2, B3) - Somente fontes da Web
  • Nível Standard do Serviço de Aplicativos (S1, S2, S3) - Algumas restrições de fontes SVG

Sem suporte para fontes personalizadas:

  • Nível gratuito do serviço de aplicativos (F1)
  • Camada compartilhada do Serviço de Aplicativos (D1)

Por que os níveis inferiores do Azure têm restrições de fontes?

A plataforma de hospedagem Azure não suporta servidores que carregam fontes SVG em seus níveis inferiores de aplicativos Web compartilhados devido a restrições de sandbox e limitações de recursos. As camadas inferiores implementam limites de segurança rigorosos que impedem certas operações de nível de sistema necessárias para a renderização de fontes personalizadas. Essas restrições ajudam o Azure a manter o isolamento entre vários inquilinos e a evitar o uso indevido de recursos em ambientes compartilhados.

Para contornar essas limitações, considere:

  1. Incorporar fontes como strings codificadas em base64 no seu CSS
  2. Utilizar apenas fontes da web provenientes de CDNs
  3. Pré-renderização de PDFs em um ambiente compatível
  4. Atualização para um nível superior do Azure com suporte completo a fontes.

Perguntas frequentes

Como posso usar as fontes do Google em meus documentos PDF?

O IronPDF é compatível com o Google Fonts através da renderização em HTML. Basta incluir o link do Google Fonts na seção do seu HTML e aplicar a família de fontes em CSS. O IronPDF fará o download e renderizará essas fontes ao gerar o PDF, garantindo que sua tipografia personalizada apareça corretamente no documento final.

Por que minhas fontes da web não estão aparecendo corretamente no PDF gerado?

As fontes da web geralmente precisam de tempo para carregar antes da renderização. O IronPDF oferece uma opção WaitFor.AllFontsLoaded() nas Opções de Renderização que permite definir um atraso (em milissegundos) para garantir que as fontes estejam totalmente carregadas antes da geração do PDF. Isso evita fontes ausentes ou renderizadas incorretamente.

Posso usar ícones do FontAwesome nos meus PDFs?

Sim, o IronPDF oferece suporte completo ao FontAwesome e a outras fontes de ícones. Inclua o CSS do FontAwesome no seu HTML e use as classes de ícones apropriadas. O IronPDF renderizará essas fontes de ícones como gráficos vetoriais no seu PDF, mantendo a escalabilidade e a qualidade visual.

Como faço para usar arquivos de fontes locais com @font-face?

O IronPDF suporta regras CSS @font-face para carregar arquivos de fontes locais. Defina sua regra @font-face no seu CSS, especificando o caminho do arquivo de fonte e, em seguida, aplique a família de fontes aos seus elementos HTML. O IronPDF incorporará essas fontes personalizadas diretamente no PDF durante a renderização.

Quais formatos de fonte são suportados para geração de PDF?

O IronPDF suporta formatos de fontes web padrão, incluindo arquivos WOFF, WOFF2, TTF e OTF, quando usados por meio de regras CSS @font-face ou serviços de fontes externos. Isso garante compatibilidade com a maioria das fontes web e fontes de ícones modernas disponíveis atualmente.

Como posso garantir uma tipografia consistente em diferentes sistemas?

O IronPDF incorpora fontes da web diretamente nos arquivos PDF gerados, garantindo que sua tipografia personalizada seja exibida de forma consistente, independentemente das fontes instaladas no sistema do visualizador. Isso o torna ideal para manter a consistência da marca em documentos distribuídos.

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.