function PdfLibraryConfigurationSupportError(const Configuration: TPdfLibraryConfiguration; SkiaBuild, FontationsBuild: Boolean): string;
| Configuration | TPdfLibraryConfiguration. Die zu prüfenden Einstellungen |
| SkiaBuild | Boolean. True für einen PDFium-Build mit Skia-Unterstützung, der FPDF_RenderPageSkia exportiert |
| FontationsBuild | Boolean. True für einen PDFium-Build mit dem Fontations-Font-Backend |
string: leer, wenn die Konfiguration unterstützt wird, andernfalls eine Beschreibung der nicht unterstützten EinstellungDie native Initialisierung von PDFium stoppt den gesamten Prozess, wenn sie einen Renderer oder ein Font-Backend erhält, das der Build nicht enthält; sie liefert keinen Fehler zurück
LoadLibrary führt diese Prüfung deshalb nach dem Binden der Exports und vor der nativen Initialisierung aus: prpSkia verlangt einen Skia-Build und pfbpFontations einen Fontations-Build. Scheitert die Prüfung, entlädt LoadLibrary die Bibliothek, lässt die Konfiguration unversiegelt und löst eine EPdfError aus, sodass die Anwendung ConfigurePdfLibrary mit anderen Einstellungen aufrufen und es erneut versuchen kann
Die Skia-Unterstützung wird am Export FPDF_RenderPageSkia erkannt. Für Fontations exportiert PDFium nichts, daher sucht LoadLibrary nach den Rust-Font-Crates, die dieses Backend in die Bibliotheksdatei hineinlinkt; eine nicht lesbare Bibliotheksdatei gilt als ohne Fontations-Unterstützung
Die mitgelieferten pdfium.dll und pdfium.v8.dll sind Skia-Builds ohne Fontations
prpDefault, prpAgg, pfbpDefault und pfbpFreeType akzeptiert jeder BuildConfig := GetPdfLibraryConfiguration;
Config.Renderer := prpSkia;
ConfigurePdfLibrary(Config);
try
LoadLibrary;
except
on E: EPdfError do
begin
Config.Renderer := prpDefault;
ConfigurePdfLibrary(Config);
LoadLibrary;
end;
end;