Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
2.0.12
-
None
-
Patch
Description
The attached patch adds an common interface PDShadingPaint to all PDShading-based Paint's. It allows to access the underlying PDShading object and the matrix of the paint.
At the moment it is not possible to access this fields without using dirty accessibility hacks, see also this commit.
Why would you need that? I need that for my PdfBoxGraphics2D adapter. I draw PDF pages using PDFRenderer/PageDrawer back into a PDF. While doing so I derive from both classes and change / filter certain aspects of the PDF. One use case is to extract a specific seperation color into its own PDF page, remap it to another color and also draw some overfill (i.e. a additional border of 0.5pt around all shapes drawn with this color). This so prepared page is then used with a machine which glues foil (gold, silver or copper) on the places marked with that color.
You can look at an example here, it does not use a seperation color, but you should get the idea.
My long term goal is to be able to use PDFBox for all possible pre-press PDF manipulations. E.g. changing/remapping colorspaces, resampling images to the target resolution, ...
At the moment I know of this "special cases" which will need a special treatment, as they are normally handled through rendering them first into a BufferedImage:
- Transparency groups
- Softmasks
Are there other places which resort to rendering to a BufferedImage first?