function GetSkiaRenderCapabilities: TPdfSkiaRenderCapabilities;
function GetPrintOutputCapabilities: TPdfPrintOutputCapabilities;
Ambas as consultas carregam o módulo PDFium selecionado se necessário e reportam apenas as exportações presentes nesse módulo exato
As exportações opcionais em falta nunca impedem o carregamento normal do PDFium, a renderização de bitmaps, a edição ou a gravação
TPdfSkiaRenderCapabilities.PageSceneCache indica que RenderPageSkiaByIndex pode reutilizar a cache limitada de páginas analisadas pertencente ao TPdf
TPdfSkiaRenderCapabilities.FormOverlay indica que a exportação opcional separada de formulários consegue pintar a sobreposição de formulários depois do conteúdo da página
TPdfPrintOutputCapabilities.VersionCompatible é true apenas quando a extensão devolve o valor exato PdfPrintOutputAbiVersion
TPdfPrintOutputCapabilities.ExtensionPresent é true assim que a extensão de saída de impressão é carregada e AbiVersion transporta o número ABI bruto que ela reporta
SpotPlateRendering, OverprintDetection e OverprintPreview condicionam RenderSpotPlate, PageUsesOverprint e 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);
O chamador é dono do SkCanvas nativo e passa-o como FPDF_SKIA_CANVAS
RenderPageSkia desenha a página ativa, enquanto RenderPageSkiaByIndex desenha qualquer página, com numeração a partir de 1, sem alterar PageNumber
Quando pedido e existindo um ambiente de preenchimento de formulários, a sobreposição de formulários é desenhada depois do conteúdo da página através da exportação opcional separada de formulários
A API Skia nativa aceita um tamanho em píxeis, mas não expõe os parâmetros de rotação nem de flags do renderizador de 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;
Estes métodos chamam a extensão opcional de saída de impressão apenas quando a sua versão, o bit de capacidade e a exportação da função correspondente concordam todos
Os bitmaps devolvidos pertencem ao chamador e usam o mesmo caminho limitado de bitmaps do PDFium da renderização normal
Quando a extensão está ausente, cada operação gera EPdfError em vez de simular chapas a partir de saída RGB ou de afirmar um comportamento de overprint impreciso
| Exportação | Contrato |
|---|---|
PDFiumPas_GetPrintOutputAbiVersion | Devolve PdfPrintOutputAbiVersion como um valor unsigned de 32 bits |
PDFiumPas_GetPrintOutputCapabilities | Devolve os bits de capacidade declarados de enumeração de chapas, renderização de chapas, deteção de overprint e pré-visualização de overprint |
PDFiumPas_PageCountSpotPlates | Devolve uma contagem de chapas limitada e não negativa para um FPDF_PAGE |
PDFiumPas_PageGetSpotPlateName | Devolve a contagem de bytes UTF-8 incluindo o zero final e escreve apenas dentro do buffer fornecido |
PDFiumPas_PageUsesOverprint | Devolve um FPDF_BOOL de 32 bits para uma página |
PDFiumPas_RenderSpotPlate | Renderiza uma chapa, com numeração a partir de zero, num FPDF_BITMAP pertencente ao chamador |
PDFiumPas_RenderOverprintPreview | Renderiza a pré-visualização de overprint com gestão de cor num FPDF_BITMAP pertencente ao chamador |
Todas as funções ABI usam cdecl, inteiros de 32 bits e valores FPDF_BOOL, handles do tamanho de um ponteiro e semântica de página pertencente ao PDFium
As funções de renderização têm de completar sincronamente e não podem reter o bitmap nem o handle de página fornecidos
Os bits de capacidade desconhecidos são preservados em RawCapabilityBits, mas não são tratados como comportamento suportado
SkiaCaps := GetSkiaRenderCapabilities;
if SkiaCaps.PageRender then
Pdf.RenderPageSkiaByIndex(SkCanvas, 1, 1200, 1600);
PrintCaps := GetPrintOutputCapabilities;
if PrintCaps.SpotPlateEnumeration then
Plates := Pdf.SpotPlates;