PDFium Delphi Component Docs

Função PdfLibraryConfigurationSupportError

Unidade: PDFium
Reporta porque é que uma configuração da biblioteca não pode ser aplicada a uma build do PDFium, ou devolve uma string vazia quando pode

Syntax

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

Parameters

ConfigurationTPdfLibraryConfiguration. As definições a verificar
SkiaBuildBoolean. True para uma build do PDFium com suporte de Skia, que exporta FPDF_RenderPageSkia
FontationsBuildBoolean. True para uma build do PDFium com o backend de fontes Fontations

Return Value

string: vazia quando a configuração é suportada, caso contrário uma descrição da definição não suportada

Description

A inicialização nativa do PDFium para todo o processo quando recebe um renderer ou um backend de fontes que a build não contém; não devolve um erro

Por isso, LoadLibrary executa esta verificação depois de ligar os exports e antes da inicialização nativa: prpSkia exige uma build com Skia e pfbpFontations exige uma build com Fontations. Quando a verificação falha, LoadLibrary descarrega a biblioteca, deixa a configuração por selar e lança EPdfError, para a aplicação poder chamar ConfigurePdfLibrary com outras definições e tentar de novo

O suporte de Skia é detectado a partir do export FPDF_RenderPageSkia. O PDFium não exporta nada para o Fontations, pelo que LoadLibrary procura as Rust font crates que este backend liga ao ficheiro da biblioteca; um ficheiro de biblioteca que não consiga ser lido é tratado como não suportando o backend

As pdfium.dll e pdfium.v8.dll distribuídas são builds com Skia sem 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