PDFium Delphi Component Docs

GetObjectRenderedStrokePattern メソッド

コンポーネント: TPdf  ·  ユニット: PDFium
ページオブジェクトのストロークに使われているタイリングパターンをラスタライズし、呼び出し側が解放するビットマップとして返します

構文

function GetObjectRenderedStrokePattern(Index: Integer): TBitmap;

IndexInteger. 0 .. ObjectCount - 1 の範囲にある 0 基準のページオブジェクトインデックスです
ResultTBitmap. 新しく生成された、呼び出し側が所有し解放すべきビットマップです。オブジェクトがタイリングパターンでストロークしていない場合、ネイティブエクスポートが欠けている場合、レンダリングに失敗した場合は nil を返します

説明

ストロークのカラースペースが /Pattern で PatternType 1(タイリング)パターンを持つパスオブジェクトは、単色ではなく繰り返しセルで輪郭を塗ります。このメソッドはネイティブの FPDFPageObj_GetRenderedStrokePattern エクスポート経由でそのセルを単独でレンダリングするので、ページ全体をレンダリングしなくてもパターンを調査、エクスポート、プレビューできます

ネイティブ呼び出しの間はレンダーロックが保持されるため、同じコンポーネント上での同時レンダリングに対しても安全です。ネイティブのビットマップは返却前に変換と破棄が行われ、結果の TBitmap の所有者は呼び出し側です

この呼び出しには現在のページがアクティブであることが必要です。パス以外のオブジェクト、単色やシェーディングパターンでストロークされたパス、塗り専用のパターンは、いずれも例外ではなく nil を返します。理由を知りたい場合は PageObjectInfo や PathInfo を使ってください

coloured タイリングパターン(PaintType 1)はパターン自身の色でレンダリングされ、uncoloured パターン(PaintType 2)はコンテンツストリームが選択したストローク色でレンダリングされます

備考

例

var
  I: Integer;
  Bmp: TBitmap;
begin
  for I := 0 to Pdf1.ObjectCount - 1 do
  begin
    Bmp := Pdf1.GetObjectRenderedStrokePattern(I);
    if Bmp <> nil then
      try
        Bmp.SaveToFile(Format('stroke-pattern-%d.bmp', [I]));
      finally
        Bmp.Free;
      end;
  end;
end;

関連項目

GetImageObjectRenderedBitmap, GetTextObjectRenderedBitmap, PathInfo, StrokePatternRenderingFeaturesAvailable