PDFium Delphi Component 文件

GetObjectRenderedStrokePattern 方法

组件: TPdf  ·  单元: PDFium
把页面对象描边所用的平铺图案光栅化为位图并返回,位图归调用方所有

语法

function GetObjectRenderedStrokePattern(Index: Integer): TBitmap;

IndexInteger。范围 0 .. ObjectCount - 1 内基于 0 的页面对象索引
ResultTBitmap。新建的位图,由调用方持有并负责释放;对象没有用平铺图案描边、缺少原生导出或渲染失败时返回 nil

说明

描边色彩空间为 /Pattern 且图案为 PatternType 1(tiling)的路径对象,其轮廓不是用单一颜色、而是用重复的图案单元绘制的。本方法通过原生 FPDFPageObj_GetRenderedStrokePattern 导出单独渲染这个单元,调用方无需渲染整页即可检查、导出或预览该图案

原生调用期间会持有渲染锁,因此在同一组件上并发渲染是安全的。原生位图在返回前完成转换并销毁;得到的 TBitmap 归调用方所有

调用要求当前页处于激活状态。非路径对象、用普通颜色或 shading 图案描边的路径,以及仅用于填充的图案,都返回 nil 而不是抛出异常;具体原因可通过 PageObjectInfo 或 PathInfo 查明

彩色平铺图案(PaintType 1)用它自身的颜色渲染;无色图案(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