function GetSkiaRenderCapabilities: TPdfSkiaRenderCapabilities;
function GetPrintOutputCapabilities: TPdfPrintOutputCapabilities;
どちらの照会も必要に応じて選択された PDFium モジュールを読み込み、そのモジュールに実際に存在するエクスポートだけを報告します
オプションのエクスポートが欠けていても、通常の PDFium の読み込み、ビットマップレンダリング、編集、保存が妨げられることはありません
TPdfSkiaRenderCapabilities.PageSceneCache は、RenderPageSkiaByIndex が TPdf が所有する上限付きの解析済みページキャッシュを再利用できることを示します
TPdfSkiaRenderCapabilities.FormOverlay は、独立したオプションのフォームエクスポートがページコンテンツの後にフォームオーバーレイを描画できることを示します
TPdfPrintOutputCapabilities.VersionCompatible は、拡張が正確に PdfPrintOutputAbiVersion の値を返す場合にのみ true になります
TPdfPrintOutputCapabilities.ExtensionPresent はプリント出力拡張が読み込まれると true になり、AbiVersion は拡張が報告する生の ABI 番号を保持します
SpotPlateRendering、OverprintDetection、OverprintPreview が RenderSpotPlate、PageUsesOverprint、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);
呼び出し側がネイティブの SkCanvas を所有し、それを FPDF_SKIA_CANVAS として渡します
RenderPageSkia はアクティブなページを描画し、RenderPageSkiaByIndex は PageNumber を変更せずに任意の 1 基点ページを描画します
要求がありフォームフィル環境が存在する場合、フォームオーバーレイは独立したオプションのフォームエクスポートを通じてページコンテンツの後に描画されます
ネイティブの Skia API はピクセルサイズを受け付けますが、ビットマップレンダラーの回転やフラグのパラメータは公開しません
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;
これらのメソッドは、バージョン、機能ビット、対応する関数エクスポートのすべてが一致する場合にのみ、オプションのプリント出力拡張を呼び出します
返されるビットマップは呼び出し側が所有し、通常のレンダリングと同じ上限付き PDFium ビットマップパスを使用します
拡張が存在しない場合、各操作は RGB 出力からプレートを模したり不正確なオーバープリント動作を装ったりする代わりに EPdfError を発生させます
| エクスポート | 契約 |
|---|---|
PDFiumPas_GetPrintOutputAbiVersion | PdfPrintOutputAbiVersion を 32 ビット符号なし値として返します |
PDFiumPas_GetPrintOutputCapabilities | 宣言されたスポット列挙、スポットレンダリング、オーバープリント検出、オーバープリントプレビューの機能ビットを返します |
PDFiumPas_PageCountSpotPlates | 1 つの FPDF_PAGE に対する上限付きの非負プレート数を返します |
PDFiumPas_PageGetSpotPlateName | 終端のゼロを含む UTF-8 バイト数を返し、供給されたバッファ内にのみ書き込みます |
PDFiumPas_PageUsesOverprint | 1 つのページに対する 32 ビットの FPDF_BOOL を返します |
PDFiumPas_RenderSpotPlate | 呼び出し側が所有する FPDF_BITMAP へ 0 基点のプレートを 1 つ描画します |
PDFiumPas_RenderOverprintPreview | カラーマネージドのオーバープリントプレビューを呼び出し側が所有する FPDF_BITMAP へ描画します |
すべての ABI 関数は cdecl、32 ビット整数と FPDF_BOOL 値、ポインタサイズのハンドル、PDFium が所有するページセマンティクスを使用します
レンダリング関数は同期的に完了しなければならず、供給されたビットマップやページハンドルを保持してはなりません
不明な機能ビットは RawCapabilityBits に保持されますが、サポート済みの動作としては扱われません
SkiaCaps := GetSkiaRenderCapabilities;
if SkiaCaps.PageRender then
Pdf.RenderPageSkiaByIndex(SkCanvas, 1, 1200, 1600);
PrintCaps := GetPrintOutputCapabilities;
if PrintCaps.SpotPlateEnumeration then
Plates := Pdf.SpotPlates;