property Transparent: Boolean; // read only
Transparent liefert True, wenn die aktive Seite irgendein Objekt enthält, dessen
effektive Alpha kleiner als 1.0 ist oder das auf einen Graphics State verweist, der
Transparenz anschaltet — Soft Masks, Opazitätswerte (CA / ca),
nicht-standardmäßige Blend-Modes (/BM) oder Transparency Groups (PDF 1.7 spec
section 11). Denselben Flag prüft PDFium intern, um zu entscheiden, ob die Seite
durch ihren Rasterizer für transparente Seiten muss
Die Eigenschaft ist False, wenn Active False ist oder
die Seite rein opak. Transparente Seiten sind etwas teurer
im Rendering — PDFium muss einen Alphakanal allokieren und jedes Objekt
gegen den Seitenhintergrund komponieren — Transparenz also früh zu erkennen erlaubt es Aufrufern,
das richtige Ausgabeziel zu wählen (32-Bit-ARGB-TBitmap, PDF-Wasserzeichen-Overlay,
den Alpha-bewussten Pfad des Druckers)
Der Wert gilt je Seite; iterieren Sie über alle Seiten, wenn Sie eine dokumentweite
“gibt es irgendwo Transparenz?”-Antwort brauchen. Beim Rendern in eine flache Bitmap mit der
Background-Farbe kombinieren: Eine transparente Seite auf
clWhite-Hintergrund liefert eingeebnete Ausgabe, während das Rendern auf einer
transparenten Oberfläche Alpha für die nachgelagerte Komposition erhält
var Bmp: TBitmap;
Bmp := TBitmap.Create;
try
if Pdf1.Transparent then
Bmp.PixelFormat := pf32bit
else
Bmp.PixelFormat := pf24bit;
Pdf1.RenderToBitmap(Bmp, 1.0);
finally
Bmp.Free;
end;