function GetSkiaRenderCapabilities: TPdfSkiaRenderCapabilities;
function GetPrintOutputCapabilities: TPdfPrintOutputCapabilities;
Both queries load the selected PDFium module if necessary and report only exports that are present in that exact module
Missing optional exports never prevent normal PDFium loading, bitmap rendering, editing or saving
TPdfSkiaRenderCapabilities.PageSceneCache indicates that RenderPageSkiaByIndex can reuse the bounded parsed-page cache owned by TPdf
TPdfSkiaRenderCapabilities.FormOverlay indicates that the separate optional form export can paint the form overlay after page content
TPdfPrintOutputCapabilities.VersionCompatible is true only when the extension returns the exact PdfPrintOutputAbiVersion value
TPdfPrintOutputCapabilities.ExtensionPresent is true once the print-output extension is loaded and AbiVersion carries the raw ABI number it reports
SpotPlateRendering, OverprintDetection and OverprintPreview gate RenderSpotPlate, PageUsesOverprint and 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);
The caller owns the native SkCanvas and passes it as FPDF_SKIA_CANVAS
RenderPageSkia draws the active page whilst RenderPageSkiaByIndex draws any one-based page without changing PageNumber
When requested and a form-fill environment exists, the form overlay is drawn after page content through the separate optional form export
The native Skia API accepts a pixel size but does not expose the bitmap renderer's rotation or flag parameters
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;
These methods call the optional print-output extension only when its version, capability bit and corresponding function export all agree
Returned bitmaps are caller-owned and use the same bounded PDFium bitmap path as normal rendering
When the extension is absent, each operation raises EPdfError instead of simulating plates from RGB output or claiming inaccurate overprint behaviour
| Export | Contract |
|---|---|
PDFiumPas_GetPrintOutputAbiVersion | Returns PdfPrintOutputAbiVersion as a 32-bit unsigned value |
PDFiumPas_GetPrintOutputCapabilities | Returns the declared spot enumeration, spot rendering, overprint detection and overprint preview capability bits |
PDFiumPas_PageCountSpotPlates | Returns a bounded non-negative plate count for one FPDF_PAGE |
PDFiumPas_PageGetSpotPlateName | Returns the UTF-8 byte count including the trailing zero and writes only within the supplied buffer |
PDFiumPas_PageUsesOverprint | Returns a 32-bit FPDF_BOOL for one page |
PDFiumPas_RenderSpotPlate | Renders one zero-based plate into a caller-owned FPDF_BITMAP |
PDFiumPas_RenderOverprintPreview | Renders colour-managed overprint preview into a caller-owned FPDF_BITMAP |
All ABI functions use cdecl, 32-bit integer and FPDF_BOOL values, pointer-sized handles and PDFium-owned page semantics
Render functions must complete synchronously and must not retain the supplied bitmap or page handle
Unknown capability bits are preserved in RawCapabilityBits but are not treated as supported behaviour
SkiaCaps := GetSkiaRenderCapabilities;
if SkiaCaps.PageRender then
Pdf.RenderPageSkiaByIndex(SkCanvas, 1, 1200, 1600);
PrintCaps := GetPrintOutputCapabilities;
if PrintCaps.SpotPlateEnumeration then
Plates := Pdf.SpotPlates;