Osadzanie czcionek niestandardowych w IronPDF na kontenerach Docker Linux
Czcionki niestandardowe wlasciwie osadzaja sie podczas generowania PDF na Windows, ale nie udaje sie ich osadzic wewnatrz kontenera Docker na Linux. Zamiast zamierzonej czcionki, renderer korzysta z DejaVu Sans jako czcionki zastepczej.
Na systemach Linux i wewnatrz kontenerow Docker czcionki musza byc wyraznie zainstalowane lub zarejestrowane. Jesli czcionka nie jest dostepna dla silnika renderujacego Chrome, IronPDF zastepuje ja domyslna czcionka systemowa, co powoduje roznice wizualne i niepowodzenia w osadzaniu.
Rozwiązanie
Opcja 1: Zainstaluj podstawowe czcionki Microsoft dla czcionek Arial i podobnych
Dodaj do swojego Dockerfile:
RUN apt update && apt install -y ttf-mscorefonts-installer
Opcja 2: Osadzenie czcionek niestandardowych z uzyciem @font-face
Dla czcionek niesystemowych, takich jak Poppins czy Roboto, zadeklaruj je w HTML za pomocą @font-face z ścieżką do pliku .ttf umieszczonego wewnątrz obrazu Docker:
<!DOCTYPE html>
<html>
<head>
<style>
@font-face {
font-family: 'Poppins';
src: url('fonts/Poppins-Regular.ttf');
}
p {
font-family: 'Poppins';
font-size: 16px;
}
</style>
</head>
<body>
<p>Custom font text</p>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<style>
@font-face {
font-family: 'Poppins';
src: url('fonts/Poppins-Regular.ttf');
}
p {
font-family: 'Poppins';
font-size: 16px;
}
</style>
</head>
<body>
<p>Custom font text</p>
</body>
</html>
Opcja 3: Uzycie typu media Print CSS
Ustaw CssMediaType, aby zastosować style specyficzne dla druku, w tym deklaracje @font-face:
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
Dla pelnej konfiguracji Docker Linux, zobacz przewodnik po IronPDF Docker.

