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
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
| Export | Contract |
|---|---|
PDFiumPas_GetPrintOutputAbiVersion | Renvoie PdfPrintOutputAbiVersion comme valeur non signée 32 bits |
PDFiumPas_GetPrintOutputCapabilities | Renvoie 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_PageCountSpotPlates | Renvoie un nombre de plaques borné et non négatif pour un FPDF_PAGE |
PDFiumPas_PageGetSpotPlateName | Renvoie le nombre d’octets UTF-8, zéro final compris, et n’écrit que dans le tampon fourni |
PDFiumPas_PageUsesOverprint | Renvoie un FPDF_BOOL 32 bits pour une page |
PDFiumPas_RenderSpotPlate | Rend une plaque à numérotation base zéro dans une FPDF_BITMAP propriété de l’appelant |
PDFiumPas_RenderOverprintPreview | Rend 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
SkiaCaps := GetSkiaRenderCapabilities;
if SkiaCaps.PageRender then
Pdf.RenderPageSkiaByIndex(SkCanvas, 1, 1200, 1600);
PrintCaps := GetPrintOutputCapabilities;
if PrintCaps.SpotPlateEnumeration then
Plates := Pdf.SpotPlates;