function PdfLibraryConfigurationSupportError(const Configuration: TPdfLibraryConfiguration; SkiaBuild, FontationsBuild: Boolean): string;
| Configuration | TPdfLibraryConfiguration。要檢查的設定 |
| SkiaBuild | Boolean。若為 True,表示這是支援 Skia 的 PDFium 建置,會匯出 FPDF_RenderPageSkia |
| FontationsBuild | Boolean。若為 True,表示這是採用 Fontations 字型後端的 PDFium 建置 |
string:設定受支援時為空字串,否則為不支援設定的說明文字PDFium 的原生初始化在收到建置未包含的算繪器或字型後端時,會直接中止整個處理序,不會回傳錯誤
因此 LoadLibrary 會在繫結匯出之後、原生初始化之前先做這項檢查:prpSkia 需要 Skia 建置,pfbpFontations 需要 Fontations 建置。檢查失敗時,LoadLibrary 會卸載程式庫、讓設定保持未封固並引發 EPdfError,應用程式於是可以改用其他設定呼叫 ConfigurePdfLibrary 再試一次
Skia 支援是從 FPDF_RenderPageSkia 匯出偵測而來。PDFium 沒有為 Fontations 匯出任何東西,所以 LoadLibrary 會尋找這個後端連結進程式庫檔的 Rust 字型 crate;無法讀取的程式庫檔視為不支援
隨附的 pdfium.dll 與 pdfium.v8.dll 都是含 Skia、不含 Fontations 的建置
prpDefault、prpAgg、pfbpDefault 與 pfbpFreeType 任何建置都接受Config := GetPdfLibraryConfiguration;
Config.Renderer := prpSkia;
ConfigurePdfLibrary(Config);
try
LoadLibrary;
except
on E: EPdfError do
begin
Config.Renderer := prpDefault;
ConfigurePdfLibrary(Config);
LoadLibrary;
end;
end;