PDFium Delphi Component Docs

Rendering nativo opzionale

Unità: PDFium
Fornisce rendering Skia controllato dalle funzionalità disponibili e un ABI facoltativo versionato per l'output esatto di lastre in tinta piatta e sovrastampa

Capability Queries

function GetSkiaRenderCapabilities: TPdfSkiaRenderCapabilities;
function GetPrintOutputCapabilities: TPdfPrintOutputCapabilities;

Entrambe le query caricano, se necessario, il modulo PDFium selezionato e riportano solo le esportazioni presenti in quello specifico modulo

Le esportazioni facoltative mancanti non impediscono mai il normale caricamento di PDFium, il rendering delle bitmap, la modifica o il salvataggio

TPdfSkiaRenderCapabilities.PageSceneCache indica che RenderPageSkiaByIndex può riutilizzare la cache delimitata delle pagine analizzate di proprietà di TPdf

TPdfSkiaRenderCapabilities.FormOverlay indica che la separata esportazione facoltativa dei moduli può disegnare l'overlay dei moduli dopo il contenuto di pagina

TPdfPrintOutputCapabilities.VersionCompatible è true solo quando l'estensione restituisce l'esatto valore PdfPrintOutputAbiVersion

TPdfPrintOutputCapabilities.ExtensionPresent è true non appena l'estensione di output di stampa è caricata e AbiVersion riporta il numero ABI grezzo che essa dichiara

SpotPlateRendering, OverprintDetection e OverprintPreview abilitano RenderSpotPlate, PageUsesOverprint e RenderOverprintPreview

Skia Page and Form Rendering

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);

Il chiamante è proprietario dello SkCanvas nativo e lo passa come FPDF_SKIA_CANVAS

RenderPageSkia disegna la pagina attiva mentre RenderPageSkiaByIndex disegna qualsiasi pagina in base uno senza modificare PageNumber

Quando richiesto ed esiste un ambiente di compilazione moduli, l'overlay dei moduli viene disegnato dopo il contenuto di pagina tramite la separata esportazione facoltativa dei moduli

L'API Skia nativa accetta una dimensione in pixel ma non espone i parametri di rotazione o flag del renderer bitmap

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;

Questi metodi chiamano l'estensione facoltativa di output di stampa solo quando versione, bit di capacità ed esportazione della funzione corrispondente sono tutti coerenti

Le bitmap restituite sono di proprietà del chiamante e usano lo stesso percorso bitmap PDFium delimitato del rendering normale

Quando l'estensione è assente, ogni operazione solleva EPdfError invece di simulare lastre in tinta piatta da output RGB o di rivendicare un comportamento di sovrastampa impreciso

Print-output ABI version 1

EsportazioneContratto
PDFiumPas_GetPrintOutputAbiVersionRestituisce PdfPrintOutputAbiVersion come valore unsigned a 32 bit
PDFiumPas_GetPrintOutputCapabilitiesRestituisce i bit di capacità dichiarati per enumerazione delle tinte piatta, rendering delle lastre, rilevamento della sovrastampa e anteprima della sovrastampa
PDFiumPas_PageCountSpotPlatesRestituisce un numero di lastre non negativo e delimitato per un FPDF_PAGE
PDFiumPas_PageGetSpotPlateNameRestituisce il numero di byte UTF-8 incluso lo zero finale e scrive solo entro il buffer fornito
PDFiumPas_PageUsesOverprintRestituisce un FPDF_BOOL a 32 bit per una pagina
PDFiumPas_RenderSpotPlateRenderizza una lastra in base zero in una FPDF_BITMAP di proprietà del chiamante
PDFiumPas_RenderOverprintPreviewRenderizza l'anteprima della sovrastampa con gestione del colore in una FPDF_BITMAP di proprietà del chiamante

Tutte le funzioni ABI usano cdecl, valori interi a 32 bit e FPDF_BOOL, handle della dimensione del puntatore e semantiche di pagina di proprietà di PDFium

Le funzioni di rendering devono completare in modo sincrono e non devono trattenere la bitmap o l'handle di pagina forniti

I bit di capacità sconosciuti sono preservati in RawCapabilityBits ma non sono trattati come comportamento supportato

Example

SkiaCaps := GetSkiaRenderCapabilities;
if SkiaCaps.PageRender then
  Pdf.RenderPageSkiaByIndex(SkCanvas, 1, 1200, 1600);

PrintCaps := GetPrintOutputCapabilities;
if PrintCaps.SpotPlateEnumeration then
  Plates := Pdf.SpotPlates;

See Also

TPdf.RenderPageByIndex, TPdf.ClearPageSceneCache