property ObjectTransparent[Index: Integer]: Boolean; // read only
PDF 1.4 ввёл Transparency Imaging Model (PDF 32000-1 § 11), позволяющий любому объекту страницы задать alpha графического состояния (ca/CA) и blend mode (BM в словаре ExtGState). ObjectTransparent возвращает True, если PDFium обнаружил что-то из этого у объекта в Index, то есть рендерер не может просто перекрашивать поверх и обязан выделить для объекта изолированный compositing-буфер
Это пообъектный аналог Transparent, который сообщает, есть ли прозрачный контент на всей текущей странице. Пригодится, когда нужно флэттить только дорогие участки страницы, аудитить входящие PDF для типографских конвейеров, не понимающих transparency, или ускорять собственный рендеринг, отсекая compositing для большинства полностью непрозрачных объектов
Результат отражает собственное графическое состояние объекта на момент вставки. Мутация объекта (например, через нативный FPDFPageObj_SetFillColor с alpha не 255) меняет репортируемое значение только после того, как UpdatePage и ReloadPage пересоберут кэш страницы
| Index | Индекс объекта страницы с нуля, 0 ≤ Index < ObjectCount |
TrueFalse — свойство описывает сам объект, а не то, как он композитится с соседямиFPDFPageObj_HasTransparency из PDFium, намеренно дешёвая для вызова в циклах по ObjectCount
// Count opaque vs transparent objects on the current page.
var I, NOpaque, NAlpha: Integer;
begin
NOpaque := 0; NAlpha := 0;
for I := 0 to Pdf1.ObjectCount - 1 do
if Pdf1.ObjectTransparent[I] then Inc(NAlpha)
else Inc(NOpaque);
Memo1.Lines.Add(Format('opaque=%d, transparent=%d', [NOpaque, NAlpha]));
end;