PDFium Delphi Component 文件

GetObjectRenderedStrokePattern 方法

元件: TPdf  ·  單元: PDFium
將頁面物件描邊所用的平鋪圖樣點陣化,並以呼叫端擁有的點陣圖傳回

Syntax

function GetObjectRenderedStrokePattern(Index: Integer): TBitmap;

IndexInteger。以 0 起算的頁面物件索引,範圍為 0 .. ObjectCount - 1
ResultTBitmap。新建立的點陣圖,由呼叫端擁有並負責釋放;當物件不是以平鋪圖樣描邊、缺少原生匯出,或渲染失敗時則傳回 nil

Description

當路徑物件的描邊色彩空間是 /Pattern 且使用 PatternType 1(平鋪)圖樣時,其輪廓會以重複的小單元而非單純顏色來上色。此方法透過原生 FPDFPageObj_GetRenderedStrokePattern 匯出單獨渲染該單元,呼叫端不必渲染整個頁面就能檢視、匯出或預覽圖樣

原生呼叫期間會持有渲染鎖,因此與同一個元件上的並發渲染一起使用是安全的。原生點陣圖會在傳回前完成轉換並釋放,產生的 TBitmap 歸呼叫端所有

呼叫時必須已有作用中的目前頁面。非路徑物件、以單純顏色或 shading 圖樣描邊的路徑,以及僅用於填色的圖樣,都會傳回 nil 而不是丟出例外;可透過 PageObjectInfo 或 PathInfo 進一步了解原因

彩色平鋪圖樣(PaintType 1)會以自身的顏色渲染;非彩色圖樣(PaintType 2)則以內容串流所選的描邊顏色渲染

Remarks

Example

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;

See Also

GetImageObjectRenderedBitmap, GetTextObjectRenderedBitmap, PathInfo, StrokePatternRenderingFeaturesAvailable