pdfbox-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John Hewson (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PDFBOX-2104) Implement transparency groups
Date Sat, 14 Jun 2014 19:47:02 GMT

    [ https://issues.apache.org/jira/browse/PDFBOX-2104?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14031675#comment-14031675

John Hewson commented on PDFBOX-2104:

Some more thoughts:

- storing a Raster in PDGraphicsState seems like overkill, can the PDSoftMask be stored instead?
- PDGraphicsState#applySoftMaskToPaint() would be better placed in PageDrawer.
- PDExtendedGraphicsState shouldn't need to import PageDrawer or PDFStreamEngine, getSoftMaskRaster()
should be moved to somewhere else, perhaps inside the PageDrawer class? We don't want copyIntoGraphicsState
to take a PDFStreamEngine context parameter, however this will be solved already if the sot
mask Raster is not part of the graphics state.
- we don't want drawing code in PDFormXObject, so createPageDrawerGroup needs to be moved
somewhere else, perhaps into PageDrawer or Invoke (that method looks very similar to Invoke#process(),
could they share code?)
- In PageDrawer the following graphics state is constructed, but it is never used:
PDGraphicsState gs = getGraphicsState();

> Implement transparency groups
> -----------------------------
>                 Key: PDFBOX-2104
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-2104
>             Project: PDFBox
>          Issue Type: Improvement
>          Components: Rendering
>    Affects Versions: 2.0.0
>            Reporter: Petr Slaby
>            Assignee: John Hewson
>         Attachments: 000001_MTEXT_CS6.pdf, TransparencyGroups.1.patch, TransparencyGroups.2.patch,
> The attached PDF uses transparency groups, blending and soft masks to create the rounded
corners and shades behind images. It appears that these features are not implemented in PDFBox.
An implementation proposal is attached in the TransparencyGroup.patch. The basic idea is to
create a buffered image, draw the transparency group content onto it and then use the result
to produce the soft mask or draw the image on the original g2d.
> Note: I am not the (only) author of the proposed change. It was developed in our company
few years ago in sources based on a 1.7.x version of PDFBox, mostly by a guy who already left.
Over the years, merging of the work done in PDFBox main stream into our source base has become
impossible due to many refactorings and other deep going changes done. Now we would like to
go the opposite way - where possible - bring the changes and fixes we have done into PDFBox
main stream and start to use it in our installations.

This message was sent by Atlassian JIRA

View raw message