function GetSkiaRenderCapabilities: TPdfSkiaRenderCapabilities;
function GetPrintOutputCapabilities: TPdfPrintOutputCapabilities;
Beide Abfragen laden bei Bedarf das ausgewählte PDFium-Modul und melden nur Exporte, die in genau diesem Modul vorhanden sind
Fehlende optionale Exporte verhindern niemals das normale Laden von PDFium, das Bitmap-Rendering, die Bearbeitung oder das Speichern
TPdfSkiaRenderCapabilities.PageSceneCache zeigt an, dass RenderPageSkiaByIndex den begrenzten Cache für geparste Seiten wiederverwenden kann, der TPdf gehört
TPdfSkiaRenderCapabilities.FormOverlay zeigt an, dass der separate optionale Formular-Export das Formular-Overlay nach dem Seiteninhalt zeichnen kann
TPdfPrintOutputCapabilities.VersionCompatible ist nur True, wenn die Erweiterung genau den Wert PdfPrintOutputAbiVersion zurückgibt
TPdfPrintOutputCapabilities.ExtensionPresent ist True, sobald die Druckausgabe-Erweiterung geladen ist und AbiVersion die rohe ABI-Nummer trägt, die sie meldet
SpotPlateRendering, OverprintDetection und OverprintPreview schalten RenderSpotPlate, PageUsesOverprint und RenderOverprintPreview frei
procedure TPdf.RenderPageSkia(Canvas: FPDF_SKIA_CANVAS; Width, Height: Integer; DrawFormOverlay: Boolean = True);
procedure TPdf.RenderPageSkiaByIndex(Canvas: FPDF_SKIA_CANVAS; PageNumber, Width, Height: Integer; DrawFormOverlay: Boolean = True);
Der Aufrufer besitzt das native SkCanvas und übergibt es als FPDF_SKIA_CANVAS
RenderPageSkia zeichnet die aktive Seite, während RenderPageSkiaByIndex eine beliebige 1-basierte Seite zeichnet, ohne PageNumber zu ändern
Wenn angefordert und eine Form-Fill-Umgebung vorhanden ist, wird das Formular-Overlay nach dem Seiteninhalt über den separaten optionalen Formular-Export gezeichnet
Die native Skia-API akzeptiert eine Pixelgröße, legt aber die Rotations- und Flag-Parameter des Bitmap-Renderers nicht offen
function TPdf.SpotPlates: TPdfSpotPlateInfos;
function TPdf.PageUsesOverprint: Boolean;
function TPdf.RenderSpotPlate(PlateIndex, Width, Height: Integer; Rotation: TRotation = ro0; Options: TRenderOptions = []; Color: TColor = clWhite): TBitmap;
function TPdf.RenderOverprintPreview(Width, Height: Integer; Rotation: TRotation = ro0; Options: TRenderOptions = []; Color: TColor = clWhite): TBitmap;
Diese Methoden rufen die optionale Druckausgabe-Erweiterung nur auf, wenn ihre Version, das Fähigkeits-Bit und der zugehörige Funktionsexport übereinstimmen
Zurückgegebene Bitmaps gehören dem Aufrufer und verwenden denselben begrenzten PDFium-Bitmap-Pfad wie das normale Rendering
Wenn die Erweiterung fehlt, löst jede Operation EPdfError aus, statt Platten aus RGB-Ausgabe zu simulieren oder ein ungenaues Overprint-Verhalten vorzutäuschen
| Export | Kontrakt |
|---|---|
PDFiumPas_GetPrintOutputAbiVersion | Gibt PdfPrintOutputAbiVersion als vorzeichenlosen 32-Bit-Wert zurück |
PDFiumPas_GetPrintOutputCapabilities | Gibt die deklarierten Fähigkeits-Bits für Schmuckfarben-Aufzählung, Schmuckfarben-Rendering, Overprint-Erkennung und Overprint-Vorschau zurück |
PDFiumPas_PageCountSpotPlates | Gibt eine begrenzte, nicht negative Plattenanzahl für ein FPDF_PAGE zurück |
PDFiumPas_PageGetSpotPlateName | Gibt die UTF-8-Byteanzahl einschließlich des abschließenden Nullbytes zurück und schreibt ausschließlich innerhalb des bereitgestellten Puffers |
PDFiumPas_PageUsesOverprint | Gibt einen 32-Bit-FPDF_BOOL für eine Seite zurück |
PDFiumPas_RenderSpotPlate | Rendert eine 0-basierte Platte in ein vom Aufrufer verwaltetes FPDF_BITMAP |
PDFiumPas_RenderOverprintPreview | Rendert eine farbverwaltete Overprint-Vorschau in ein vom Aufrufer verwaltetes FPDF_BITMAP |
Alle ABI-Funktionen verwenden cdecl, 32-Bit-Integer- und FPDF_BOOL-Werte, zeigergroße Handles und eine Seitensemantik im Besitz von PDFium
Renderfunktionen müssen synchron abschließen und dürfen den bereitgestellten Bitmap- oder Seiten-Handle nicht zurückhalten
Unbekannte Fähigkeits-Bits werden in RawCapabilityBits bewahrt, aber nicht als unterstütztes Verhalten behandelt
SkiaCaps := GetSkiaRenderCapabilities;
if SkiaCaps.PageRender then
Pdf.RenderPageSkiaByIndex(SkCanvas, 1, 1200, 1600);
PrintCaps := GetPrintOutputCapabilities;
if PrintCaps.SpotPlateEnumeration then
Plates := Pdf.SpotPlates;