property ObjectTransparent[Index: Integer]: Boolean; // read only
PDF 1.4 introduced Transparency Imaging Model (PDF 32000-1 § 11), который позволяет
любому page object задавать alpha graphics-state (ca/CA) и blend
mode (BM в словаре ExtGState). ObjectTransparent возвращает
True, если PDFium обнаружил что-либо из этого у объекта с Index,
что означает: renderer не может просто overpaint и должен выделить изолированный buffer
compositing для объекта
Это per-object аналог Transparent, который сообщает, содержит ли вся текущая страница какой-либо transparent content. Используйте его, когда нужно flatten только дорогие участки страницы, проверять incoming PDFs для print-shop pipelines, которые не понимают transparency, или ускорять custom rendering, обходя compositing для большинства полностью opaque объектов
Результат отражает собственное graphics state объекта на момент вставки. Изменение объекта
(например, через native FPDFPageObj_SetFillColor с alpha не равной 255) меняет
сообщаемое значение только после того, как UpdatePage и
ReloadPage заново построят кэшированную страницу
| Index | Индекс page object с нуля, 0 ≤ Index < ObjectCount |
TrueFalse — свойство описывает сам объект, а не то, как он composited с соседями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;