PDFium Delphi Component 文件

PdfLibraryConfigurationSupportError 函式

單元: PDFium
回報某個程式庫設定為何無法套用到指定的 PDFium 建置,可以套用時回傳空字串

Syntax

function PdfLibraryConfigurationSupportError(const Configuration: TPdfLibraryConfiguration; SkiaBuild, FontationsBuild: Boolean): string;

Parameters

ConfigurationTPdfLibraryConfiguration。要檢查的設定
SkiaBuildBoolean。若為 True,表示這是支援 Skia 的 PDFium 建置,會匯出 FPDF_RenderPageSkia
FontationsBuildBoolean。若為 True,表示這是採用 Fontations 字型後端的 PDFium 建置

Return Value

string:設定受支援時為空字串,否則為不支援設定的說明文字

Description

PDFium 的原生初始化在收到建置未包含的算繪器或字型後端時,會直接中止整個處理序,不會回傳錯誤

因此 LoadLibrary 會在繫結匯出之後、原生初始化之前先做這項檢查:prpSkia 需要 Skia 建置,pfbpFontations 需要 Fontations 建置。檢查失敗時,LoadLibrary 會卸載程式庫、讓設定保持未封固並引發 EPdfError,應用程式於是可以改用其他設定呼叫 ConfigurePdfLibrary 再試一次

Skia 支援是從 FPDF_RenderPageSkia 匯出偵測而來。PDFium 沒有為 Fontations 匯出任何東西,所以 LoadLibrary 會尋找這個後端連結進程式庫檔的 Rust 字型 crate;無法讀取的程式庫檔視為不支援

隨附的 pdfium.dll 與 pdfium.v8.dll 都是含 Skia、不含 Fontations 的建置

Remarks

Example

Config := GetPdfLibraryConfiguration;
Config.Renderer := prpSkia;
ConfigurePdfLibrary(Config);
try
  LoadLibrary;
except
  on E: EPdfError do
  begin
    Config.Renderer := prpDefault;
    ConfigurePdfLibrary(Config);
    LoadLibrary;
  end;
end;

See Also

ConfigurePdfLibrary, PdfNativeRendererType, PdfLibraryConfigurationSealed