function PdfLibraryConfigurationSupportError(const Configuration: TPdfLibraryConfiguration; SkiaBuild, FontationsBuild: Boolean): string;
| Configuration | TPdfLibraryConfiguration. 검사할 설정 |
| SkiaBuild | Boolean. Skia 지원 PDFium 빌드, 즉 FPDF_RenderPageSkia를 export하는 빌드이면 True |
| FontationsBuild | Boolean. Fontations 폰트 백엔드를 포함한 PDFium 빌드이면 True |
string: 구성이 지원되면 빈 문자열, 그렇지 않으면 지원되지 않는 설정에 대한 설명PDFium의 네이티브 초기화는 빌드에 없는 렌더러나 폰트 백엔드를 받으면 오류를 반환하는 대신 프로세스 전체를 멈춥니다
그래서 LoadLibrary는 export를 바인딩한 뒤, 네이티브 초기화를 하기 전에 이 검사를 실행합니다. prpSkia는 Skia 빌드가 필요하고 pfbpFontations은 Fontations 빌드가 필요합니다. 검사가 실패하면 LoadLibrary는 라이브러리를 언로드하고 구성을 봉인하지 않은 채로 둔 뒤 EPdfError를 발생시켜, 애플리케이션이 다른 설정으로 ConfigurePdfLibrary를 호출해 재시도할 수 있게 합니다
Skia 지원 여부는 FPDF_RenderPageSkia export로 판별합니다. PDFium은 Fontations에 대해 아무것도 export하지 않으므로, LoadLibrary가 이 백엔드가 라이브러리 파일에 링크한 Rust 폰트 크레이트를 찾습니다. 라이브러리 파일을 읽을 수 없으면 지원하지 않는 것으로 취급합니다
번들된 pdfium.dll과 pdfium.v8.dll은 Fontations 없는 Skia 빌드입니다
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;