PDFium Delphi Component Docs

Renderizado nativo opcional

Unidad: PDFium
Proporciona renderizado Skia condicionado por capacidades y un ABI opcional con versión para salidas exactas de planchas de separaciones y de sobreimpresión

Capability Queries

function GetSkiaRenderCapabilities: TPdfSkiaRenderCapabilities;
function GetPrintOutputCapabilities: TPdfPrintOutputCapabilities;

Ambas consultas cargan el módulo PDFium seleccionado si es necesario e informan solo de las exportaciones presentes en ese módulo exacto

Las exportaciones opcionales ausentes nunca impiden la carga normal de PDFium, el renderizado de mapas de bits, la edición ni el guardado

TPdfSkiaRenderCapabilities.PageSceneCache indica que RenderPageSkiaByIndex puede reutilizar la caché acotada de páginas analizadas propiedad de TPdf

TPdfSkiaRenderCapabilities.FormOverlay indica que la exportación opcional de formularios separada puede pintar la superposición de formularios después del contenido de la página

TPdfPrintOutputCapabilities.VersionCompatible es verdadero solo cuando la extensión devuelve el valor exacto PdfPrintOutputAbiVersion

TPdfPrintOutputCapabilities.ExtensionPresent es verdadero una vez que la extensión de salida de impresión está cargada y AbiVersion transporta el número ABI en bruto que informa

SpotPlateRendering, OverprintDetection y OverprintPreview condicionan RenderSpotPlate, PageUsesOverprint y 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);

El llamador es dueño del SkCanvas nativo y lo pasa como FPDF_SKIA_CANVAS

RenderPageSkia dibuja la página activa, mientras que RenderPageSkiaByIndex dibuja cualquier página basada en uno sin cambiar PageNumber

Cuando se solicita y existe un entorno de llenado de formularios, la superposición de formularios se dibuja después del contenido de la página a través de la exportación opcional de formularios separada

La API Skia nativa acepta un tamaño en píxeles, pero no expone los parámetros de rotación ni de banderas del renderizador de mapas de bits

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;

Estos métodos llaman a la extensión opcional de salida de impresión solo cuando su versión, bit de capacidad y exportación de función correspondiente coinciden todos

Los mapas de bits devueltos son propiedad del llamador y usan la misma ruta acotada de mapas de bits de PDFium que el renderizado normal

Cuando la extensión está ausente, cada operación lanza EPdfError en lugar de simular planchas a partir de una salida RGB o de afirmar un comportamiento de sobreimpresión inexacto

Print-output ABI version 1

ExportaciónContrato
PDFiumPas_GetPrintOutputAbiVersionDevuelve PdfPrintOutputAbiVersion como un valor sin signo de 32 bits
PDFiumPas_GetPrintOutputCapabilitiesDevuelve los bits de capacidad declarados de enumeración de separaciones, renderizado de separaciones, detección de sobreimpresión y vista previa de sobreimpresión
PDFiumPas_PageCountSpotPlatesDevuelve un recuento de planchas acotado y no negativo para un FPDF_PAGE
PDFiumPas_PageGetSpotPlateNameDevuelve el recuento de bytes UTF-8 incluido el cero final y escribe solo dentro del búfer suministrado
PDFiumPas_PageUsesOverprintDevuelve un FPDF_BOOL de 32 bits para una página
PDFiumPas_RenderSpotPlateRenderiza una plancha basada en cero en un FPDF_BITMAP propiedad del llamador
PDFiumPas_RenderOverprintPreviewRenderiza una vista previa de sobreimpresión con gestión de color en un FPDF_BITMAP propiedad del llamador

Todas las funciones ABI usan cdecl, valores enteros y FPDF_BOOL de 32 bits, manejadores del tamaño de un puntero y semántica de páginas propiedad de PDFium

Las funciones de renderizado deben completarse de forma síncrona y no deben retener el mapa de bits ni el manejador de página suministrados

Los bits de capacidad desconocidos se conservan en RawCapabilityBits, pero no se tratan como comportamiento admitido

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