PDFium Delphi Component 文件

RemoveObject 方法

组件: TPdf  ·  单元: PDFium
从当前页移除指定页面对象。 当 DestroyObject 为 True 时,移除后会释放该对象。页面内容流会自动重新生成

Syntax

procedure RemoveObject(Index: Integer; DestroyObject: Boolean = True);

IndexInteger。要移除页面对象的基于 0 的索引(0 到 ObjectCount - 1)
DestroyObjectBoolean。当为 True(默认)时,移除后释放底层 PDFium 对象。传入 False 从页面分离对象而不释放其内存,例如将其转移到另一个页面时

Description

RemoveObject 通过其基于 0 的索引从当前页面删除一个页面对象。有效索引值范围从 0 到 ObjectCount - 1。调用后,页面内容流会自动重新生成,因此更改立即反映

当 DestroyObject 为 True(默认)时,底层 PDFium 对象句柄被释放,其内存被释放。当为 False 时,对象仅从页面分离而不被销毁 — 这在将对象从一个页面移动到另一个页面时很有用,此时调用方取得句柄所有权

因为移除对象会移动所有后续对象的索引,所以在循环中移除多个对象时要小心:从最高索引向下迭代,或在开始循环前收集要移除的索引

Example

// 移除最后一个页面对象
if Pdf1.ObjectCount > 0 then
  Pdf1.RemoveObject(Pdf1.ObjectCount - 1);

// 从最高索引向下移除所有对象
var I: Integer;
begin
  for I := Pdf1.ObjectCount - 1 downto 0 do
    Pdf1.RemoveObject(I);
end;

See Also

ObjectCount, ObjectType, AddPath