PDFium Delphi Component Docs

Функция PdfLibraryConfigurationSupportError

Модуль: PDFium
Сообщает, почему конфигурацию библиотеки нельзя применить к сборке PDFium, или возвращает пустую строку, если можно

Syntax

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

Parameters

ConfigurationTPdfLibraryConfiguration. Проверяемые настройки
SkiaBuildBoolean. True для сборки PDFium с поддержкой Skia, которая экспортирует FPDF_RenderPageSkia
FontationsBuildBoolean. True для сборки PDFium с бэкендом шрифтов Fontations

Return Value

string: пустая строка, когда конфигурация поддерживается, иначе описание неподдерживаемой настройки

Description

Нативная инициализация PDFium останавливает весь процесс, получив рендерер или бэкенд шрифтов, которых нет в сборке; ошибку она не возвращает

Поэтому LoadLibrary выполняет эту проверку после привязки экспортов и до нативной инициализации: prpSkia требует сборку со Skia, а pfbpFontations — сборку с Fontations. Если проверка не проходит, LoadLibrary выгружает библиотеку, оставляет конфигурацию незафиксированной и возбуждает EPdfError, так что приложение может вызвать ConfigurePdfLibrary с другими настройками и повторить попытку

Поддержка Skia определяется по экспорту FPDF_RenderPageSkia. Для Fontations PDFium ничего не экспортирует, поэтому LoadLibrary ищет в файле библиотеки Rust-крейты шрифтов, которые линкуются с этим бэкендом; нечитаемый файл библиотеки считается не поддерживающим его

Поставляемые 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