property Transparent: Boolean; // read only
Transparent gibt True zurück, wenn die aktive Seite
irgendein Objekt enthält, dessen effektives Alpha kleiner als 1.0 ist oder das auf
einen Graphics-State verweist, der Transparenz aktiviert — weiche Masken,
Opazitätswerte (CA / ca), nicht standardmäßige Blend-Modi
(/BM) oder Transparenzgruppen (PDF 1.7 spec section 11). Es ist
dasselbe Flag, das PDFium intern prüft, um zu entscheiden, ob die Seite über den
Transparent-Page-Rasterizer gerendert werden muss
Die Eigenschaft ist False, wenn Active False
ist oder wenn die Seite vollständig deckend ist. Transparente Seiten sind etwas teurer
zu rendern — PDFium muss einen Alphakanal anlegen und jedes Objekt gegen den
Seitenhintergrund zusammensetzen — daher können Aufrufer durch frühe Erkennung
der Transparenz das passende Ausgabemedium wählen (32-Bit-ARGB-TBitmap,
PDF-Watermark-Overlay, alphabewusster Druckerpfad)
Der Wert ist eine Eigenschaft pro Seite; iterieren Sie über jede Seite, wenn Sie
eine Antwort auf Dokumentebene wie „hat irgendwo Transparenz?“ benötigen. Kombinieren
Sie ihn mit der Background-Farbe beim Rendern in ein flaches Bitmap: Eine
transparente Seite auf clWhite-Hintergrund erzeugt abgeflachte Ausgabe,
während das Rendern auf einer transparenten Fläche Alpha für 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;