function GetSkiaRenderCapabilities: TPdfSkiaRenderCapabilities;
function GetPrintOutputCapabilities: TPdfPrintOutputCapabilities;
Oba dotazy v případě potřeby načtou vybraný modul PDFium a hlásí jen ty exporty, které jsou v daném konkrétním modulu přítomné
Chybějící volitelné exporty nikdy nebrání normálnímu načtení PDFium, bitmapovému vykreslování, editaci ani ukládání
TPdfSkiaRenderCapabilities.PageSceneCache označuje, že RenderPageSkiaByIndex může znovu použít ohraničenou cache parsovaných stránek vlastněnou TPdf
TPdfSkiaRenderCapabilities.FormOverlay označuje, že samostatný volitelný formulářový export dokáže nakreslit formulářovou overlay po obsahu stránky
TPdfPrintOutputCapabilities.VersionCompatible je true jen tehdy, když rozšíření vrátí přesnou hodnotu PdfPrintOutputAbiVersion
TPdfPrintOutputCapabilities.ExtensionPresent je true, jakmile se rozšíření tiskového výstupu načte, a AbiVersion nese surové číslo ABI, které rozšíření hlásí
SpotPlateRendering, OverprintDetection a OverprintPreview střeží RenderSpotPlate, PageUsesOverprint a RenderOverprintPreview
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);
Volající vlastní nativní SkCanvas a předává ho jako FPDF_SKIA_CANVAS
RenderPageSkia kreslí aktivní stránku, zatímco RenderPageSkiaByIndex kreslí libovolnou stránku indexovanou od jedničky beze změny PageNumber
Když je to požadováno a existuje prostředí pro plnění formulářů, kreslí se formulářová overlay po obsahu stránky přes samostatný volitelný formulářový export
Nativní Skia API přijímá velikost v pixelech, ale nevystavuje parametry rotace ani příznaků bitmapového rendereru
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;
Tyto metody volají volitelné rozšíření tiskového výstupu jen tehdy, když souhlasí jeho verze, bit schopností i odpovídající export funkce
Vrácené bitmapy vlastní volající a používají stejnou ohraničenou cestu bitmap PDFium jako normální vykreslování
Když rozšíření chybí, vyvolá každá operace EPdfError místo simulace desek z RGB výstupu nebo tvrzení o nepřesném chování overprintu
| Export | Contract |
|---|---|
PDFiumPas_GetPrintOutputAbiVersion | Vrací PdfPrintOutputAbiVersion jako 32bitovou hodnotu bez znaménka |
PDFiumPas_GetPrintOutputCapabilities | Vrací deklarované bity schopností pro výčet spot desek, vykreslování spot desek, detekci overprintu a náhled overprintu |
PDFiumPas_PageCountSpotPlates | Vrací ohraničený nezáporný počet desek pro jeden FPDF_PAGE |
PDFiumPas_PageGetSpotPlateName | Vrací počet bajtů UTF-8 včetně koncové nuly a zapisuje jen v mezích dodaného bufferu |
PDFiumPas_PageUsesOverprint | Vrací 32bitový FPDF_BOOL pro jednu stránku |
PDFiumPas_RenderSpotPlate | Vyrenderuje jednu desku indexovanou od nuly do FPDF_BITMAP vlastněného volajícím |
PDFiumPas_RenderOverprintPreview | Vyrenderuje barevně řízený náhled overprintu do FPDF_BITMAP vlastněného volajícím |
Všechny funkce ABI používají cdecl, 32bitové celočíselné a FPDF_BOOL hodnoty, handly velikosti ukazatele a sémantiku stránek vlastněných PDFium
Renderovací funkce musí proběhnout synchronně a nesmí si ponechat dodanou bitmapu ani handle stránky
Neznámé bity schopností se zachovají v RawCapabilityBits, ale nepovažují se za podporované chování
SkiaCaps := GetSkiaRenderCapabilities;
if SkiaCaps.PageRender then
Pdf.RenderPageSkiaByIndex(SkCanvas, 1, 1200, 1600);
PrintCaps := GetPrintOutputCapabilities;
if PrintCaps.SpotPlateEnumeration then
Plates := Pdf.SpotPlates;