function PdfLibraryConfigurationSupportError(const Configuration: TPdfLibraryConfiguration; SkiaBuild, FontationsBuild: Boolean): string;
| Configuration | TPdfLibraryConfiguration. Ustawienia do sprawdzenia |
| SkiaBuild | Boolean. True dla builda PDFium z obsługą Skia, który eksportuje FPDF_RenderPageSkia |
| FontationsBuild | Boolean. True dla builda PDFium z backendem czcionek Fontations |
string: pusty, gdy konfiguracja jest obsługiwana, w przeciwnym razie opis nieobsługiwanego ustawieniaNatywna inicjalizacja PDFium zatrzymuje cały proces, gdy dostaje renderer lub backend czcionek, którego build nie zawiera; nie zwraca błędu
Dlatego LoadLibrary wykonuje tę kontrolę po powiązaniu eksportów i przed inicjalizacją natywną: prpSkia wymaga builda ze Skia, a pfbpFontations builda z Fontations. Gdy kontrola nie przejdzie, LoadLibrary zwalnia bibliotekę, pozostawia konfigurację niezapieczętowaną i zgłasza EPdfError, więc aplikacja może wywołać ConfigurePdfLibrary z innymi ustawieniami i ponowić próbę
Obsługa Skia jest wykrywana po eksporcie FPDF_RenderPageSkia. PDFium nie eksportuje niczego dla Fontations, więc LoadLibrary szuka crate'ów czcionek Rust, które ten backend linkuje do pliku biblioteki; pliku biblioteki, którego nie da się odczytać, traktuje jako nieobsługujący Fontations
Dołączone pdfium.dll i pdfium.v8.dll to buildy ze Skia bez Fontations
prpDefault, prpAgg, pfbpDefault i pfbpFreeType są akceptowane przez każdy buildConfig := GetPdfLibraryConfiguration;
Config.Renderer := prpSkia;
ConfigurePdfLibrary(Config);
try
LoadLibrary;
except
on E: EPdfError do
begin
Config.Renderer := prpDefault;
ConfigurePdfLibrary(Config);
LoadLibrary;
end;
end;