property Transparent: Boolean; // read only
Transparent restituisce True quando la pagina attiva contiene un oggetto il cui
alpha effettivo è inferiore a 1.0 o che referenzia uno stato grafico che abilita
la trasparenza — soft mask, valori di opacità (CA / ca),
blend mode non predefiniti (/BM) o transparency group (sezione 11 della specifica
PDF 1.7). È lo stesso flag che PDFium controlla internamente per decidere se la pagina
debba essere renderizzata tramite il suo rasterizzatore per pagine trasparenti
La proprietà è False quando Active è False o
quando la pagina è del tutto opaca. Le pagine trasparenti sono leggermente più costose
da renderizzare — PDFium deve allocare un canale alpha e fare il compositing di ogni oggetto
sullo sfondo della pagina — quindi rilevare la trasparenza in anticipo permette ai chiamanti
di scegliere il target di output giusto (TBitmap ARGB a 32 bit, overlay watermark del PDF,
percorso alpha-aware della stampante)
Il valore è una proprietà per pagina; itera ogni pagina se ti serve una risposta
“c'è trasparenza da qualche parte nel documento?”. Combinala con il colore
Background quando renderizzi su una bitmap piatta: una pagina trasparente su sfondo
clWhite produce output appiattito, mentre il rendering su una
superficie trasparente preserva l'alpha per il compositing a valle
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;