function GetSkiaRenderCapabilities: TPdfSkiaRenderCapabilities;
function GetPrintOutputCapabilities: TPdfPrintOutputCapabilities;
Ambas as consultas carregam o módulo PDFium selecionado se necessário e relatam apenas as exportações presentes naquele módulo exato
Exportações opcionais ausentes nunca impedem o carregamento normal do PDFium, a renderização de bitmap, a edição ou o salvamento
TPdfSkiaRenderCapabilities.PageSceneCache indica que RenderPageSkiaByIndex pode reutilizar o cache limitado de páginas analisadas de propriedade do TPdf
TPdfSkiaRenderCapabilities.FormOverlay indica que a exportação opcional separada de formulários pode pintar a sobreposição do formulário após o conteúdo da página
TPdfPrintOutputCapabilities.VersionCompatible é true apenas quando a extensão retorna exatamente o valor PdfPrintOutputAbiVersion
TPdfPrintOutputCapabilities.ExtensionPresent é true assim que a extensão de saída de impressão é carregada e AbiVersion carrega o número ABI bruto que ela relata
SpotPlateRendering, OverprintDetection e OverprintPreview liberam 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);
Quem chama é dono do SkCanvas nativo e o passa como FPDF_SKIA_CANVAS
RenderPageSkia desenha a página ativa, enquanto RenderPageSkiaByIndex desenha qualquer página com base em um sem alterar PageNumber
Quando solicitado e existindo um ambiente de preenchimento de formulários, a sobreposição do formulário é desenhada após o conteúdo da página por meio da exportação opcional separada de formulários
A API nativa de Skia aceita um tamanho em pixels, mas não expõe os parâmetros de rotação ou 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;
Esses métodos chamam a extensão opcional de saída de impressão apenas quando sua versão, bit de capacidade e exportação de função correspondente estão todos de acordo
Os bitmaps retornados pertencem a quem chama e usam o mesmo caminho limitado de bitmap do PDFium da renderização normal
Quando a extensão está ausente, cada operação dispara EPdfError em vez de simular plates a partir de saída RGB ou alegar um comportamento de overprint impreciso
| Export | Contract |
|---|---|
PDFiumPas_GetPrintOutputAbiVersion | Retorna PdfPrintOutputAbiVersion como um valor não assinado de 32 bits |
PDFiumPas_GetPrintOutputCapabilities | Retorna os bits de capacidade declarados de enumeração de spots, renderização de spots, detecção de overprint e pré-visualização de overprint |
PDFiumPas_PageCountSpotPlates | Retorna uma contagem de plates limitada e não negativa para um FPDF_PAGE |
PDFiumPas_PageGetSpotPlateName | Retorna a contagem de bytes UTF-8, incluindo o zero final, e grava apenas dentro do buffer fornecido |
PDFiumPas_PageUsesOverprint | Retorna um FPDF_BOOL de 32 bits para uma página |
PDFiumPas_RenderSpotPlate | Renderiza um plate de base zero em um FPDF_BITMAP de propriedade de quem chama |
PDFiumPas_RenderOverprintPreview | Renderiza a pré-visualização de overprint com gerenciamento de cor em um FPDF_BITMAP de propriedade de quem chama |
Todas as funções ABI usam cdecl, valores inteiros de 32 bits e FPDF_BOOL, handles do tamanho de um ponteiro e semântica de página de propriedade do PDFium
As funções de renderização devem ser concluídas de forma síncrona e não devem reter o bitmap ou o handle de página fornecidos
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;