function PdfLibraryConfigurationSupportError(const Configuration: TPdfLibraryConfiguration; SkiaBuild, FontationsBuild: Boolean): string;
| Configuration | TPdfLibraryConfiguration. Las opciones a verificar |
| SkiaBuild | Boolean. True para un build de PDFium con soporte de Skia, que exporta FPDF_RenderPageSkia |
| FontationsBuild | Boolean. True para un build de PDFium con el backend de fuentes Fontations |
string: vacía cuando la configuración está soportada, de lo contrario una descripción de la opción no soportadaLa inicialización nativa de PDFium detiene todo el proceso cuando recibe un renderer o un backend de fuentes que el build no contiene; no devuelve un error
Por eso LoadLibrary ejecuta esta verificación después de enlazar los exports y antes de la inicialización nativa: prpSkia exige un build con Skia y pfbpFontations exige un build con Fontations. Cuando la verificación falla, LoadLibrary descarga la biblioteca, deja la configuración sin sellar y lanza EPdfError, de modo que la aplicación puede llamar a ConfigurePdfLibrary con otras opciones y reintentar
El soporte de Skia se detecta a partir del export FPDF_RenderPageSkia. PDFium no exporta nada para Fontations, así que LoadLibrary busca los crates de fuentes en Rust que este backend enlaza dentro del archivo de la biblioteca; un archivo de biblioteca que no se puede leer se trata como si no lo soportara
Los pdfium.dll y pdfium.v8.dll incluidos son builds con Skia y sin Fontations
prpDefault, prpAgg, pfbpDefault y pfbpFreeType los acepta cualquier buildConfig := GetPdfLibraryConfiguration;
Config.Renderer := prpSkia;
ConfigurePdfLibrary(Config);
try
LoadLibrary;
except
on E: EPdfError do
begin
Config.Renderer := prpDefault;
ConfigurePdfLibrary(Config);
LoadLibrary;
end;
end;