Advanced Rendering Semantics
Loaded-page rendering preserves nested Form XObject state while applying transparency groups, soft masks, Type 3 glyph procedures, and visible image-region decoding
Transparency groups
- Form XObject
/Matrixvalues are composed with the current transformation matrix before group content runs - Isolated groups use a separate alpha plane so black content remains distinguishable from transparent pixels
- Knockout groups replace the previous group contribution in overlapping painted areas
- Nested groups are supported with bounded recursion and complete graphics-state restoration after every Form invocation
Soft masks
/S /Alphaand/S /Luminositymasks are evaluated from the mask group/BCsupplies the luminosity background colour outside painted mask content/TRtransfer functions support sampled, exponential, stitching, and PostScript calculator functions through the shared function evaluator/SMask /Noneclears the active mask andqorQpreserves mask state normally
Type 3 glyphs
Type 3 CharProcs run through the complete content operator engine with the font dictionary's current resource scope, Form support, clipping, images, patterns, and bounded recursion
d0 and d1 provide glyph metrics while a d1 procedure keeps the caller-selected colour as required by the PDF imaging model
Clipped image regions
Axis-aligned image XObjects intersected by the current clip request only the visible source bounds
JPEG 2000 uses the decoder's native region API before raster expansion, while other supported formats return an exact cropped bitmap through the same public method
Region := PDF.DecodeLoadedImageRegion(ImageStream, 128, 64, 640, 480);
try
Canvas.Draw(0, 0, Region);
finally
Region.Free;
end;