property ObjectTransparent[Index: Integer]: Boolean; // read only
PDF 1.4는 투명성 이미징 모델(PDF 32000-1 § 11)을 도입해 어떤
페이지 객체든 그래픽 상태 alpha(ca/CA)와 블렌드
모드(ExtGState 딕셔너리의 BM)를 지정할 수 있게 했습니다. ObjectTransparent는
PDFium이 Index 위치 객체에서 둘 중 하나를 감지하면
True를 반환하는데, 이는 렌더러가 단순 덧칠로는 부족해 그 객체를 위해 격리된 합성
버퍼를 할당해야 함을 뜻합니다
현재 페이지 전체에 투명 콘텐츠가 있는지 알려 주는 Transparent의 객체별 버전입니다. 페이지에서 비용이 드는 부분만 평면화하거나, 투명성을 이해하지 못하는 인쇄소 파이프라인을 위해 들어오는 PDF를 점검하거나, 완전히 불투명한 대다수 객체의 합성을 건너뛰어 커스텀 렌더링을 빠르게 할 때 사용하세요
결과는 삽입 시점 객체 자신의 그래픽 상태를 반영합니다. 객체를 바꾸는 것(예: 255가 아닌
alpha로 네이티브 FPDFPageObj_SetFillColor 호출)은 UpdatePage와
ReloadPage가 캐시된 페이지를 다시 만든 뒤에야
보고 값에 반영됩니다
| Index | 0 기반 페이지 객체 인덱스, 0 ≤ Index < ObjectCount |
True를 보고합니다False를 보고할 수 있습니다 — 이 프로퍼티는 형제와 어떻게 합성되는지가 아니라 객체 자신을 기술합니다FPDFPageObj_HasTransparency를 감싸며, 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;