Jak ustawić czcionki w plikach PDF w języku C#

Set Fonts in PDFs with IronPDF C

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

IronPDF pozwala programistom C# tworzyć PDF-y z niestandardowymi czcionkami internetowymi i ikonami czcionek z HTML. Obsługuje zarówno zewnętrzne usługi czcionek, jak Google Fonts, jak i lokalne pliki czcionek za pomocą reguł CSS @font-face, zapewniając spójną typografię we wszystkich generowanych PDFach.

Czcionka webowa to specjalistyczna czcionka zaprojektowana do użycia na stronach internetowych. Te czcionki są hostowane na serwerach internetowych i pobierane przez przeglądarki, aby zapewnić konsekwentne i atrakcyjne wizualnie wyświetlanie tekstu na stronach, niezależnie od lokalnej dostępności czcionek użytkownika. Dodatkowo, ikony czcionek, które korzystają z symboli i znaków, są często używane w projektowaniu stron internetowych do tworzenia skalowalnych, dostosowywalnych ikon i utrzymania wizualnej spójności interfejsu użytkownika poprzez manipulacje CSS. Dzięki możliwości zarządzania czcionkami IronPDF, programiści mogą łatwo integrować te czcionki w swoim workflow generowania PDF-ów.

CSS zawiera czcionki webowe, umożliwiając Ci określenie plików czcionek do pobrania przy uzyskiwaniu dostępu do Twojej strony internetowej. IronPDF wspiera ładowanie i renderowanie czcionek do PDF z HTML, co czyni go idealnym do tworzenia dokumentów wymagających określonego brandingu lub standardów typografii. Dla programistów pracujących z międzynarodową zawartością, IronPDF zapewnia także wsparcie dla UTF-8 i międzynarodowych języków.

Szybki start: Użycie fontów webowych w generowaniu PDF

Włączaj czcionki webowe i ikonowe do swoich PDF-ów za pomocą biblioteki C# IronPDF. Ten przewodnik pokazuje, jak renderować zawartość HTML z niestandardowymi czcionkami, zapewniając spójne i wizualnie atrakcyjne PDF-y. Po prostu renderuj HTML za pomocą IronPDF i zapisuj stylizowany dokument w kilka sekund. Przed rozpoczęciem upewnij się, że zainstalowałeś IronPDF w swoim projekcie.

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf
  2. Skopiuj i uruchom ten fragment kodu.

    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. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer

Jak używać WebFonts i ikon w PDF-ach?

IronPDF wspiera WebFonts (takie jak Google Fonts i Adobe web font API) oraz ikony czcionek, takie jak te używane przez Bootstrap i FontAwesome. To wsparcie sprawia, że IronPDF nadaje się do projektów wymagających zaawansowanej typografii, od prostych dokumentów po złożone raporty z elementami marki.

Czcionki często wymagają opóźnienia w renderowaniu, aby się poprawnie załadować. Gdy czcionka nie zostanie prawidłowo załadowana, może to prowadzić do pustej strony bez tekstu. Możesz użyć metody WaitFor.AllFontsLoaded, aby czekać, aż wszystkie czcionki zostaną załadowane, przypisując do niej maksymalny czas oczekiwania. Domyślny maksymalny czas oczekiwania to 500ms. Dla bardziej skomplikowanych scenariuszy z JavaScript lub dynamiczną zawartością, zapoznaj się z naszym samouczkiem HTML do PDF, w którym omówiono zaawansowane techniki renderowania.

Oto mały przykład, jak użyć WebFont, nazwany Lobster, w Twoim projekcie.

: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

Zobacz więcej opcji WaitFor, takich jak te dla czcionek, JavaScriptu, elementów HTML i bezczynności sieci na 'Dokumentacja klasy'. Dla projektow responsywnych, ktore dostosowuja czcionki na podstawie rozmiaru ekranu, sprawdz nasz przewodnik po responsywnym CSS do renderowania PDF.

Dlaczego czas ładowania czcionki ma znaczenie?

Gdy czcionka nie zostanie prawidłowo załadowana, może to prowadzić do pustej strony bez tekstu. Możesz użyć metody WaitFor.AllFontsLoaded, aby czekać, aż wszystkie czcionki zostaną załadowane, przypisując do niej maksymalny czas oczekiwania. Domyślny maksymalny czas oczekiwania to 500ms. To rozważanie czasowe jest szczególnie ważne podczas pracy z złożonymi aplikacjami webowymi lub podczas renderowania zawartości WebGL do PDF, gdzie wiele zasobów musi być ładowanych sekwencyjnie.

Opóźnienia w ładowaniu czcionki mogą się różnić w zależności od kilku czynników, w tym prędkości sieci, rozmiaru pliku czcionki i czasu odpowiedzi serwera. Gdy pracujesz z wieloma niestandardowymi czcionkami lub bibliotekami ikon, zaleca się zwiększenie czasu oczekiwania, aby zapewnić prawidłowe renderowanie całej typografii. Jest to szczególnie ważne dla profesjonalnych dokumentów, gdzie brakujące czcionki mogą wpłynąć na czytelność i spójność marki.

Jakie usługi czcionek są obsługiwane?

IronPDF wspiera WebFonts (takie jak Google Fonts i Adobe web font API) oraz ikony czcionek, takie jak te używane przez Bootstrap i FontAwesome. Dodatkowo IronPDF wspiera:

  • Google Fonts (cały katalog)
  • Czcionki Adobe (Typekit)
  • Ikony Font Awesome (wszystkie wersje)
  • Ikony Bootstrap
  • Ikony Material Design
  • Niestandardowe usługi czcionek webowych za pośrednictwem CSS @import lub tagów link
  • Samodzielnie hostowane pliki czcionek w różnych formatach (TTF, OTF, WOFF, WOFF2)

Co się dzieje, jeśli czcionki nie załadują się poprawnie?

Czcionki często wymagają opóźnienia w renderowaniu, aby się poprawnie załadować. Gdy czcionka nie zostanie prawidłowo załadowana, może to prowadzić do pustej strony bez tekstu. W takich przypadkach przeglądarki zwykle przechodzą na domyślne systemowe czcionki, co może zaburzyć spójność wizualną Twojego dokumentu. IronPDF oferuje kilka rozwiązań do obsługi problemów z ładowaniem czcionek:

  1. Łańcuchy czcionek zapasowych: Zdefiniuj wiele czcionek w deklaracji CSS font-family
  2. Wydłużone czasy oczekiwania: Zwiększ wartość ograniczenia czasu AllFontsLoaded dla wolniejszych połączeń
  3. Osadzanie czcionek lokalnych: Użyj @font-face z czcionkami zakodowanymi w base64 dla zapewnionej dostępności
  4. Wstępne ładowanie czcionek: Używaj znaczników wstępnego ładowania HTML, aby priorytetowo traktować ładowanie czcionek
Icon Quote related to Co się dzieje, jeśli czcionki nie załadują się poprawnie?

Moją ulubioną biblioteką tego typu jest IronPDF. Umożliwia ona szybkie i efektywne manipulowanie plikami PDF. Posiada także wiele cennych funkcji, takich jak eksport do formatu PDF/A i cyfrowe podpisywanie dokumentów PDF.

Milan Jovanovic related to Co się dzieje, jeśli czcionki nie załadują się poprawnie?

Milan Jovanovic

Microsoft MVP

Zobacz studium przypadku
Icon Quote related to Co się dzieje, jeśli czcionki nie załadują się poprawnie?

IronOCR pozwala nam oszczędzić 40 000 USD rocznie na ręcznym przetwarzaniu, jednocześnie zwiększając produktywność i uwalniając zasoby do zadań o wysokim wpływie. Gorąco polecam.

Brent Matzelle related to Co się dzieje, jeśli czcionki nie załadują się poprawnie?

Brent Matzelle

Dyrektor technologiczny, OPYN

Zobacz studium przypadku
Icon Quote related to Co się dzieje, jeśli czcionki nie załadują się poprawnie?

IronSuite odgrywa kluczową rolę w naszej działalności. Są to narzędzia zwiększające wydajność w całej firmie, w tym tworzenie planów pięter i poprawa zarządzania zapasami.

David Jones related to Co się dzieje, jeśli czcionki nie załadują się poprawnie?

David Jones

Główny inżynier oprogramowania, Agorus Build

Zobacz studium przypadku

Jak zaimportować pliki czcionek bezpośrednio?

Aby użyć istniejącego pliku czcionki, zastosuj regułę @font-face w stylizacji CSS. Działa to również, gdy stosujesz kombinację reguły @font-face i osadzasz pliki woff zakodowane w base64. W poniższym przykładzie będę używał czcionki 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

Jakie formaty plików czcionek mogę używać?

Aby użyć istniejącego pliku czcionki, zastosuj regułę @font-face w stylizacji CSS. Działa to również, gdy stosujesz kombinację reguły @font-face i osadzasz pliki woff zakodowane w base64. IronPDF obsługuje następujące formaty plików czcionek:

  • TTF (TrueType Font): Szeroko obsługiwane, idealne zarówno na ekran, jak i do druku
  • OTF (OpenType Font): Zaawansowane funkcje typograficzne, odpowiednie do dokumentów profesjonalnych
  • WOFF (Web Open Font Format): Skopmresowany format zoptymalizowany do korzystania w internecie
  • WOFF2: Ulepszona kompresja w porównaniu z WOFF, mniejsze rozmiary plików
  • EOT (Embedded OpenType): Starszy format dla starszych przeglądarek
  • Czcionki SVG: Czcionki bazujące na wektórach (z ograniczeniami na niektórych platformach)

Kiedy powinienem używać lokalnych czcionek w porównaniu do czcionek webowych?

Aby użyć istniejącego pliku czcionki, zastosuj regułę @font-face w stylizacji CSS. Wybór między lokalnymi a internetowymi czcionkami zależy od kilku czynników:

Używaj lokalnych czcionek, gdy:

  • Praca offline lub w środowiskach sieciowych z ograniczeniami
  • Wymagana gwarantowana dostępność czcionki
  • Radzenie sobie z czcionkami zastrzeżonymi lub licencjonowanymi
  • Optymalizacja pod kątem szybszego renderowania bez opóźnień sieciowych
  • Tworzenie dokumentów z surowymi wymaganiami zgodności

Używaj czcionek webowych, gdy:

  • Korzystanie z dużych bibliotek czcionek jak Google Fonts
  • Wymagane automatyczne aktualizacje plików czcionek
  • Minimalizowanie rozmiaru paczki aplikacyjnej
  • Praca z często zmieniającymi się wymaganiami typograficznymi
  • Tworzysz aplikacje, które już polegają na łączności z internetem

Jakie są ograniczenia przy korzystaniu z Azure?

Platforma hostingowa Azure nie wspiera serwerów ładujących czcionki SVG w niższych współdzielonych warstwach aplikacji webowych. Jednakże VPS i Web Role Azure nie są izolowane w ten sam sposób i wspierają renderowanie czcionek webowych. Dla szczegółowych wskazówek dotyczących wdrażania Azure, odwołaj się do naszego przewodnika wdrażania Azure, który obejmuje wszystkie ograniczenia specyficzne dla warstw i obejścia.

Które warstwy Azure wspierają renderowanie czcionek?

Jednakże VPS i Web Role Azure nie są izolowane w ten sam sposób i wspierają renderowanie czcionek webowych. Oto podział wsparcia warstw Azure:

Pełne wsparcie czcionek:

  • Azure Virtual Machines (wszystkie rozmiary)
  • Rola w usłudze Azure Web
  • Poziomy Premium usługi App Service (P1v2, P2v2, P3v2)
  • Poziomy izolowane usługi App

Ograniczone wsparcie czcionek:

  • Podstawowy poziom usługi App Service (B1, B2, B3) - Tylko czcionki webowe
  • Standardowy poziom usługi App Service (S1, S2, S3) - Pewne ograniczenia dla czcionek SVG

Brak wsparcia dla niestandardowych czcionek:

  • Darmowy poziom usługi App Service (F1)
  • Współdzielony poziom usługi App Service (D1)

Dlaczego niższe warstwy Azure mają ograniczenia dotyczące czcionek?

Platforma hostingowa Azure nie wspiera serwerów ładujących czcionki SVG w niższych współdzielonych warstwach aplikacji webowych z powodu ograniczeń sandboxingu i ograniczeń zasobów. Niższe warstwy wprowadzają surowe granice bezpieczeństwa, które uniemożliwiają niektóre operacje na poziomie systemu wymagane do renderowania niestandardowych czcionek. Te ograniczenia pomagają Azure utrzymać izolację wielotenantową i zapobiegać nadużyciom zasobów w środowiskach współdzielonych.

Aby obejść te ograniczenia, rozważ:

  1. Osadzanie czcionek jako ciągi zakodowane w base64 w CSS
  2. Użycie tylko czcionek internetowych z CDN
  3. Przedrenderowanie PDF w obsługiwanym środowisku
  4. Ulepsz do wyższej warstwy Azure z pełnym wsparciem czcionek

https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face

Często Zadawane Pytania

Jak mogę użyć Google Fonts w moich dokumentach PDF?

IronPDF obsługuje Google Fonts poprzez renderowanie HTML. Wystarczy, że uwzględnisz link do Google Fonts w sekcji head swojego HTML i zastosujesz font-family w CSS. IronPDF pobierze i wyrenderuje te czcionki podczas generowania PDF, zapewniając, że twoja niestandardowa typografia pojawi się poprawnie w końcowym dokumencie.

Dlaczego moje czcionki internetowe nie pojawiają się poprawnie w generowanym PDF?

Czcionki internetowe często wymagają czasu na załadowanie przed renderowaniem. IronPDF zapewnia opcję WaitFor.AllFontsLoaded() w RenderingOptions, która pozwala ustawić opóźnienie (w milisekundach) w celu zapewnienia, że czcionki są w pełni załadowane przed generowaniem PDF. To zapobiega brakującym lub niepoprawnie renderowanym czcionkom.

Czy mogę używać ikon FontAwesome w moich PDF?

Tak, IronPDF w pełni obsługuje FontAwesome i inne czcionki ikonowe. Uwzględnij CSS FontAwesome w swoim HTML i użyj odpowiednich klas ikon. IronPDF wyrenderuje te czcionki ikonowe jako grafiki wektorowe w Twoim PDF, zachowując ich skalowalność i jakość wizualną.

Jak używać lokalnych plików czcionek z @font-face?

IronPDF obsługuje reguły CSS @font-face dla ładowania lokalnych plików czcionek. Określ swoją regułę @font-face w CSS, podając ścieżkę do pliku czcionki, a następnie zastosuj font-family do elementów HTML. IronPDF osadzi te niestandardowe czcionki bezpośrednio w PDF podczas renderowania.

Jakie formaty czcionek są obsługiwane przy generowaniu PDF?

IronPDF obsługuje standardowe formaty czcionek internetowych, w tym pliki WOFF, WOFF2, TTF i OTF, używane przez reguły CSS @font-face lub zewnętrzne usługi fontów. To zapewnia kompatybilność z większością nowoczesnych czcionek internetowych i ikonowych dostępnych dzisiaj.

Jak mogę zapewnić spójną typografię na różnych systemach?

IronPDF osadza czcionki internetowe bezpośrednio w generowanych plikach PDF, zapewniając, że Twoja niestandardowa typografia wyświetla się spójnie, niezależnie od czcionek zainstalowanych na systemie widza. To czyni go idealnym rozwiązaniem do utrzymania spójności marki w dystrybuowanych dokumentach.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 19,936,792 | Wersja: 2026.7 właśnie wydany
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronPdf
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.