PDFium Delphi Component Docs

İsteğe bağlı yerel işleme

Unit: PDFium
Yetenek kapılı Skia işleme ve tam spot kalıp ile overprint çıktısı için sürümlü isteğe bağlı bir ABI sunar

Capability Queries

function GetSkiaRenderCapabilities: TPdfSkiaRenderCapabilities;
function GetPrintOutputCapabilities: TPdfPrintOutputCapabilities;

Her iki sorgu da gerekiyorsa seçili PDFium modülünü yükler ve yalnızca o modülde bulunan dışa aktarımları raporlar

Eksik isteğe bağlı dışa aktarımlar, normal PDFium yüklemesini, bitmap işlemesini, düzenlemeyi veya kaydetmeyi asla engellemez

TPdfSkiaRenderCapabilities.PageSceneCache, RenderPageSkiaByIndex yönteminin TPdf tarafından sahip olunan sınırlı ayrıştırılmış sayfa önbelleğini yeniden kullanabileceğini belirtir

TPdfSkiaRenderCapabilities.FormOverlay, ayrı isteğe bağlı form dışa aktarımının sayfa içeriğinden sonra form katmanını çizebileceğini belirtir

TPdfPrintOutputCapabilities.VersionCompatible yalnızca eklenti, tam olarak PdfPrintOutputAbiVersion değerini döndürürken true olur

TPdfPrintOutputCapabilities.ExtensionPresent, baskı çıktısı eklentisi yüklendiğinde true olur ve AbiVersion eklentinin bildirdiği ham ABI numarasını taşır

SpotPlateRendering, OverprintDetection ve OverprintPreview; RenderSpotPlate, PageUsesOverprint ve RenderOverprintPreview yöntemlerine kapı olur

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

Yerel SkCanvas nesnesinin sahibi çağırandır ve onu FPDF_SKIA_CANVAS olarak geçirir

RenderPageSkia etkin sayfayı çizerken RenderPageSkiaByIndex, PageNumber değerini değiştirmeden birden başlayan herhangi bir sayfayı çizer

İstenildiğinde ve bir form doldurma ortamı varken form katmanı, ayrı isteğe bağlı form dışa aktarımı üzerinden sayfa içeriğinden sonra çizilir

Yerel Skia API'si bir piksel boyutu kabul eder ancak bitmap işleyicisinin döndürme veya bayrak parametrelerini açığa çıkarmaz

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;

Bu yöntemler, isteğe bağlı baskı çıktısı eklentisini yalnızca sürümü, yetenek biti ve karşılık gelen işlev dışa aktarımı tümüyle uyuştuğunda çağırır

Döndürülen bitmaplerin sahibi çağırandır ve normal işlemeyle aynı sınırlı PDFium bitmap yolunu kullanır

Eklenti mevcut değilken her işlem, RGB çıktısından kalıp taklit etmek ya da yanlış overprint davranışı bildirmek yerine bir EPdfError fırlatır

Print-output ABI version 1

ExportContract
PDFiumPas_GetPrintOutputAbiVersionPdfPrintOutputAbiVersion değerini 32 bit işaretsiz bir değer olarak döndürür
PDFiumPas_GetPrintOutputCapabilitiesBildirilen spot numaralandırma, spot işleme, overprint algılama ve overprint önizleme yetenek bitlerini döndürür
PDFiumPas_PageCountSpotPlatesTek bir FPDF_PAGE için sınırlı, negatif olmayan bir kalıp sayısı döndürür
PDFiumPas_PageGetSpotPlateNameSondaki sıfır dahil UTF-8 bayt sayısını döndürür ve yalnızca verilen tamponun içine yazar
PDFiumPas_PageUsesOverprintTek bir sayfa için 32 bitlik bir FPDF_BOOL döndürür
PDFiumPas_RenderSpotPlateSıfır tabanlı tek bir kalıbı, sahibi çağıran olan bir FPDF_BITMAP içine işler
PDFiumPas_RenderOverprintPreviewRenk yönetimli overprint önizlemesini, sahibi çağıran olan bir FPDF_BITMAP içine işler

Tüm ABI işlevleri cdecl, 32 bitlik tamsayı ve FPDF_BOOL değerleri, işaretçi boyutunda tutamaçlar ve PDFium'a ait sayfa anlamı kullanır

İşleme işlevleri eşzamanlı tamamlanmalı ve verilen bitmap ya da sayfa tutamacını saklamamalıdır

Bilinmeyen yetenek bitleri RawCapabilityBits içinde korunur ancak desteklenen davranış sayılmaz

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