PDFium Delphi Component Docs

PdfLibraryConfigurationSupportError Funktion

Unit: PDFium
Meldet, warum sich eine Bibliothekskonfiguration nicht auf einen PDFium-Build anwenden lässt; ein leerer String bedeutet, dass die Konfiguration passt

Syntax

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

Parameter

ConfigurationTPdfLibraryConfiguration. Die zu prüfenden Einstellungen
SkiaBuildBoolean. True für einen PDFium-Build mit Skia-Unterstützung, der FPDF_RenderPageSkia exportiert
FontationsBuildBoolean. True für einen PDFium-Build mit dem Fontations-Font-Backend

Rückgabewert

string: leer, wenn die Konfiguration unterstützt wird, andernfalls eine Beschreibung der nicht unterstützten Einstellung

Beschreibung

Die native Initialisierung von PDFium stoppt den gesamten Prozess, wenn sie einen Renderer oder ein Font-Backend erhält, das der Build nicht enthält; sie liefert keinen Fehler zurück

LoadLibrary führt diese Prüfung deshalb nach dem Binden der Exports und vor der nativen Initialisierung aus: prpSkia verlangt einen Skia-Build und pfbpFontations einen Fontations-Build. Scheitert die Prüfung, entlädt LoadLibrary die Bibliothek, lässt die Konfiguration unversiegelt und löst eine EPdfError aus, sodass die Anwendung ConfigurePdfLibrary mit anderen Einstellungen aufrufen und es erneut versuchen kann

Die Skia-Unterstützung wird am Export FPDF_RenderPageSkia erkannt. Für Fontations exportiert PDFium nichts, daher sucht LoadLibrary nach den Rust-Font-Crates, die dieses Backend in die Bibliotheksdatei hineinlinkt; eine nicht lesbare Bibliotheksdatei gilt als ohne Fontations-Unterstützung

Die mitgelieferten pdfium.dll und pdfium.v8.dll sind Skia-Builds ohne Fontations

Hinweise

Beispiel

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

Siehe auch

ConfigurePdfLibrary, PdfNativeRendererType, PdfLibraryConfigurationSealed