Set Fonts in PDFs with IronPDF C
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, takie jak Google Fonts, jak i lokalne pliki czcionek poprzez reguły CSS @font-face, zapewniając spójną typografię we wszystkich generowanych plikach PDF.
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.
Krótki przewodnik: Korzystanie z WebFonts w generowaniu PDF-ów
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.
-
Install IronPDF with NuGet Package Manager
PM > Install-Package IronPdf -
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"); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną
Minimalny proces (5 kroków)
- Pobierz bibliotekę C# IronPDF do ustawiania czcionek w PDF
- Użyj HTML, aby zaimportować lub zażądać czcionek z zewnętrznego źródła
- Opóźnij proces renderowania, aby zapewnić prawidłowe ładowanie czcionek
- Renderuj HTML do PDF jak zwykle
- Importuj plik czcionki za pomoca reguly
@font-facew stylizacji CSS
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żna użyć metody WaitFor.AllFontsLoaded, aby poczekać, aż wszystkie czcionki zostaną załadowane, przypisując jej maksymalny czas oczekiwania. Domyślny maksymalny czas oczekiwania wynosi 500ms. Dla bardziej skomplikówanych 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")
Zapoznaj się z innymi opcjami WaitFor, takimi jak czcionki, JavaScript, elementy HTML i bezczynność sieciowa w sekcji "Dokumentacja klasy". Dla projektow responsywnych, ktore dostosowuja czcionki na podstawie rozmiaru ekranu, sprawdz nasz przewodnik po responsywnym CSS do renderowania PDF.
Dłączego czas ładowania czcionki ma znaczenie?
Gdy czcionka nie zostanie prawidłowo załadowana, może to prowadzić do pustej strony bez tekstu. Można użyć metody WaitFor.AllFontsLoaded, aby poczekać, aż wszystkie czcionki zostaną załadowane, przypisując jej maksymalny czas oczekiwania. Domyślny maksymalny czas oczekiwania wynosi 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
- Usługi niestandardowych czcionek internetowych za pomocą tagów CSS
@importlublink - Pliki czcionek hostowane lokalnie 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 systemówe czcionki, co może zaburzyć spójność wizualną Twojego dokumentu. IronPDF oferuje kilka rozwiązań do obsługi problemów z ładowaniem czcionek:
- Łańcuchy czcionek rezerwowych: Zdefiniuj wiele czcionek w deklaracji CSS
font-family - Wydłużone czasy oczekiwania: Zwiększ limit czasu
AllFontsLoadeddla wolniejszych połączeń - Osadzanie czcionek lokalnych: Użyj
@font-facez czcionkami zakodowanymi w base64, aby zagwarantować ich dostępność - Wstępne ładowanie czcionek: Używaj znaczników wstępnego ładowania HTML, aby priorytetowo traktować ładowanie czcionek
Jak zaimportować pliki czcionek bezpośrednio?
Aby użyć istniejącego pliku czcionki, zastosuj regułę @font-face w stylach CSS. Działa to również przy użyciu kombinacji reguły @font-face i osadzania plików woff zakodowanych 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")
Jakie formaty plików czcionek mogę używać?
Aby użyć istniejącego pliku czcionki, zastosuj regułę @font-face w stylach CSS. Działa to również przy użyciu kombinacji reguły @font-face i osadzania plików woff zakodowanych 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 stylach 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)
- Role internetowe platformy Azure
- Poziomy App Service Premium (
P1v2,P2v2,P3v2) - Warstwy izolowane usługi App Service
Ograniczone wsparcie czcionek:
- Poziom App Service Basic (
B1,B2,B3) - Tylko czcionki internetowe - Poziom App Service Standard (
S1,S2,S3) - Niektóre ograniczenia dotyczące czcionek SVG
Brak wsparcia dla niestandardowych czcionek:
- Bezpłatny poziom usługi App Service (
F1) - Poziom współdzielony usługi App Service (
D1)
Dłączego 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ż:
- Osadzanie czcionek jako ciągi zakodowane w base64 w CSS
- Użycie tylko czcionek internetowych z CDN
- Przedrenderowanie PDF w obsługiwanym środowisku
- 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.

