procedure RemoveObject(Index: Integer; DestroyObject: Boolean = True);
| Index | Integer. Индекс удаляемого объекта страницы с нуля (0 до ObjectCount - 1) |
| DestroyObject | Boolean. Когда True (по умолчанию), базовый объект PDFium освобождается после удаления. Передайте False, чтобы отсоединить объект от страницы без освобождения памяти — например, при переносе его на другую страницу |
RemoveObject удаляет объект страницы с текущей страницы по его индексу с нуля. Валидные значения индекса — от 0 до ObjectCount - 1. После вызова content stream страницы автоматически перегенерируется, так что изменение видно сразу
При DestroyObject = True (по умолчанию) базовый дескриптор объекта PDFium освобождается вместе с памятью. При False объект просто отсоединяется от страницы, не уничтожаясь — это удобно при переносе объекта со страницы на страницу, когда владение дескриптором принимает вызывающий код
Поскольку удаление объекта сдвигает индексы всех последующих объектов, при удалении нескольких объектов в цикле будьте осторожны: итерируйте от наибольшего индекса вниз или соберите индексы к удалению до старта цикла
// Remove the last page object
if Pdf1.ObjectCount > 0 then
Pdf1.RemoveObject(Pdf1.ObjectCount - 1);
// Remove all objects from highest index downward
var I: Integer;
begin
for I := Pdf1.ObjectCount - 1 downto 0 do
Pdf1.RemoveObject(I);
end;