function PdfLibraryConfigurationSupportError(const Configuration: TPdfLibraryConfiguration; SkiaBuild, FontationsBuild: Boolean): string;
| Configuration | TPdfLibraryConfiguration. Los ajustes que se van a comprobar |
| SkiaBuild | Boolean. True para una compilación de PDFium con soporte de Skia, que exporta FPDF_RenderPageSkia |
| FontationsBuild | Boolean. True para una compilación de PDFium con el backend de fuentes Fontations |
string: vacía cuando la configuración está soportada; en caso contrario, una descripción del ajuste no soportadoLa inicialización nativa de PDFium detiene todo el proceso cuando recibe un renderizador o un backend de fuentes que la compilación no contiene; no devuelve un error
Por eso LoadLibrary ejecuta esta comprobación después de enlazar las exportaciones y antes de la inicialización nativa: prpSkia exige una compilación con Skia y pfbpFontations exige una compilación con Fontations. Cuando la comprobació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 otros ajustes y reintentar
El soporte de Skia se detecta a partir de la exportación FPDF_RenderPageSkia. PDFium no exporta nada para Fontations, así que LoadLibrary busca dentro del archivo de la biblioteca los crates de fuentes de Rust que este backend enlaza; si el archivo no puede leerse, se considera que no hay soporte
Los pdfium.dll y pdfium.v8.dll incluidos son compilaciones con Skia y sin Fontations
prpDefault, prpAgg, pfbpDefault y pfbpFreeType los acepta cualquier compilaciónConfig := GetPdfLibraryConfiguration;
Config.Renderer := prpSkia;
ConfigurePdfLibrary(Config);
try
LoadLibrary;
except
on E: EPdfError do
begin
Config.Renderer := prpDefault;
ConfigurePdfLibrary(Config);
LoadLibrary;
end;
end;