PDFium Delphi Component Docs

Rendu natif facultatif

Unit: PDFium
Fournit un rendu Skia conditionné par des capacités et un ABI facultatif versionné pour une sortie exacte de plaques spot et de surimpression

Requêtes de capacités

function GetSkiaRenderCapabilities: TPdfSkiaRenderCapabilities;
function GetPrintOutputCapabilities: TPdfPrintOutputCapabilities;

Les deux requêtes chargent si nécessaire le module PDFium sélectionné et ne rapportent que les exportations présentes dans ce module exact

Des exportations facultatives manquantes n’empêchent jamais le chargement normal de PDFium, le rendu bitmap, l’édition ou l’enregistrement

TPdfSkiaRenderCapabilities.PageSceneCache indique que RenderPageSkiaByIndex peut réutiliser le cache borné de pages analysées détenu par TPdf

TPdfSkiaRenderCapabilities.FormOverlay indique que l’exportation de formulaires facultative séparée peut peindre la superposition de formulaires après le contenu de page

TPdfPrintOutputCapabilities.VersionCompatible est vrai uniquement lorsque l’extension renvoie exactement la valeur PdfPrintOutputAbiVersion

TPdfPrintOutputCapabilities.ExtensionPresent est vrai dès que l’extension de sortie d’impression est chargée et AbiVersion transporte le numéro ABI brut qu’elle rapporte

SpotPlateRendering, OverprintDetection et OverprintPreview conditionnent RenderSpotPlate, PageUsesOverprint et RenderOverprintPreview

Rendu Skia des pages et des formulaires

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

L’appelant est propriétaire du SkCanvas natif et le passe en tant que FPDF_SKIA_CANVAS

RenderPageSkia dessine la page active tandis que RenderPageSkiaByIndex dessine n’importe quelle page numérotée à partir de 1 sans modifier PageNumber

Sur demande et lorsqu’un environnement de remplissage de formulaires existe, la superposition de formulaires est dessinée après le contenu de page via l’exportation de formulaires facultative séparée

L’API Skia native accepte une taille en pixels mais n’expose pas les paramètres de rotation ou d’options du moteur de rendu 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;

Ces méthodes appellent l’extension de sortie d’impression facultative uniquement lorsque sa version, son bit de capacité et son exportation de fonction correspondante concordent tous

Les bitmaps renvoyées appartiennent à l’appelant et empruntent le même chemin bitmap PDFium borné que le rendu normal

Lorsque l’extension est absente, chaque opération lève EPdfError au lieu de simuler des plaques à partir d’une sortie RGB ou de revendiquer un comportement de surimpression inexact

ABI de sortie d’impression version 1

ExportContract
PDFiumPas_GetPrintOutputAbiVersionRenvoie PdfPrintOutputAbiVersion comme valeur non signée 32 bits
PDFiumPas_GetPrintOutputCapabilitiesRenvoie les bits de capacité déclarés d’énumération des plaques, de rendu des plaques, de détection de surimpression et d’aperçu de surimpression
PDFiumPas_PageCountSpotPlatesRenvoie un nombre de plaques borné et non négatif pour un FPDF_PAGE
PDFiumPas_PageGetSpotPlateNameRenvoie le nombre d’octets UTF-8, zéro final compris, et n’écrit que dans le tampon fourni
PDFiumPas_PageUsesOverprintRenvoie un FPDF_BOOL 32 bits pour une page
PDFiumPas_RenderSpotPlateRend une plaque à numérotation base zéro dans une FPDF_BITMAP propriété de l’appelant
PDFiumPas_RenderOverprintPreviewRend un aperçu de surimpression avec gestion des couleurs dans une FPDF_BITMAP propriété de l’appelant

Toutes les fonctions ABI utilisent cdecl, des valeurs entières 32 bits et FPDF_BOOL, des handles de la taille d’un pointeur et une sémantique de page propriété de PDFium

Les fonctions de rendu doivent se terminer de façon synchrone et ne doivent pas retenir la bitmap ou le handle de page fournis

Les bits de capacité inconnus sont préservés dans RawCapabilityBits mais ne sont pas traités comme un comportement pris en charge

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