function GetSkiaRenderCapabilities: TPdfSkiaRenderCapabilities;
function GetPrintOutputCapabilities: TPdfPrintOutputCapabilities;
Beide query's laden zo nodig de geselecteerde PDFium-module en rapporteren alleen exports die exact in die module aanwezig zijn
Ontbrekende optionele exports verhinderen nooit het normale laden van PDFium, bitmaprendering, bewerken of opslaan
TPdfSkiaRenderCapabilities.PageSceneCache geeft aan dat RenderPageSkiaByIndex de begrensde parsed-page cache van TPdf kan hergebruiken
TPdfSkiaRenderCapabilities.FormOverlay geeft aan dat de afzonderlijke optionele form-export de formulieroverlay na de pagina-inhoud kan tekenen
TPdfPrintOutputCapabilities.VersionCompatible is alleen waar wanneer de extensie exact de waarde PdfPrintOutputAbiVersion teruggeeft
TPdfPrintOutputCapabilities.ExtensionPresent is waar zodra de print-output-extensie is geladen en AbiVersion het ruwe ABI-nummer bevat dat de extensie rapporteert
SpotPlateRendering, OverprintDetection en OverprintPreview bepalen de toegang tot RenderSpotPlate, PageUsesOverprint en 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);
De aanroeper is eigenaar van de native SkCanvas en geeft die door als FPDF_SKIA_CANVAS
RenderPageSkia tekent de actieve pagina, terwijl RenderPageSkiaByIndex elke willekeurige pagina met 1-gebaseerd nummer tekent zonder PageNumber te wijzigen
Wanneer gevraagd en er een form-fill-omgeving bestaat, wordt de formulieroverlay na de pagina-inhoud getekend via de afzonderlijke optionele form-export
De native Skia-API accepteert een pixelgrootte, maar stelt de rotatie- en vlagparameters van de bitmaprenderer niet beschikbaar
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;
Deze methoden roepen de optionele print-output-extensie alleen aan wanneer diens versie, capability-bit en bijbehorende functie-export allemaal kloppen
Teruggegeven bitmaps zijn eigendom van de aanroeper en gebruiken hetzelfde begrensde PDFium-bitmap-pad als normale rendering
Wanneer de extensie ontbreekt, veroorzaakt elke bewerking EPdfError in plaats van plates te simuleren vanuit RGB-uitvoer of onnauwkeurig overprint-gedrag te claimen
| Export | Contract |
|---|---|
PDFiumPas_GetPrintOutputAbiVersion | Geeft PdfPrintOutputAbiVersion terug als 32-bits unsigned waarde |
PDFiumPas_GetPrintOutputCapabilities | Geeft de gedeclareerde capability-bits voor spot-enumeratie, spot-rendering, overprint-detectie en overprint-preview terug |
PDFiumPas_PageCountSpotPlates | Geeft een begrensd, niet-negatief aantal plates voor één FPDF_PAGE terug |
PDFiumPas_PageGetSpotPlateName | Geeft het UTF-8-aantal bytes inclusief de afsluitende nul terug en schrijft uitsluitend binnen de meegegeven buffer |
PDFiumPas_PageUsesOverprint | Geeft een 32-bits FPDF_BOOL voor één pagina terug |
PDFiumPas_RenderSpotPlate | Rendert één op nul gebaseerde plate naar een FPDF_BITMAP in eigendom van de aanroeper |
PDFiumPas_RenderOverprintPreview | Rendert kleurbeheerde overprint-preview naar een FPDF_BITMAP in eigendom van de aanroeper |
Alle ABI-functies gebruiken cdecl, 32-bits integer- en FPDF_BOOL-waarden, handles op pointergrootte en paginasemantiek in eigendom van PDFium
Renderfuncties moeten synchroon afronden en mogen de meegegeven bitmap of page-handle niet vasthouden
Onbekende capability-bits worden bewaard in RawCapabilityBits maar niet als ondersteund gedrag behandeld
SkiaCaps := GetSkiaRenderCapabilities;
if SkiaCaps.PageRender then
Pdf.RenderPageSkiaByIndex(SkCanvas, 1, 1200, 1600);
PrintCaps := GetPrintOutputCapabilities;
if PrintCaps.SpotPlateEnumeration then
Plates := Pdf.SpotPlates;