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

Tilman Hausherr commented on PDFBOX-4583:
-----------------------------------------

I did work a bit on this and my thought was: I can get the delta by inverting 
the initial transform and multiplying that one with the current graphics 
transform. However the code doesn't work when transforming the clip with the 
inverse of this delta, or with this delta. I must have missed something. 
Because of that I reverted the change in setClip() and we're mostly back at 
square one. I'm keeping the changes that save the settings, but somebody else 
will have to finish this.

> Drawing only a portion of a PDF (Graphics.clip is ignored/overwritten)
> ----------------------------------------------------------------------
>
>                 Key: PDFBOX-4583
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-4583
>             Project: PDFBox
>          Issue Type: Bug
>          Components: Rendering
>    Affects Versions: 2.0.15
>            Reporter: Jan Buschtöns
>            Assignee: Tilman Hausherr
>            Priority: Major
>             Fix For: 2.0.17, 3.0.0 PDFBox
>
>         Attachments: clip_PDFBox_FORMGEN-2184-master.zip
>
>
> I want to use PDFBox to draw PDFs in a swing application.
> I want to draw only a portion of the PDF. As far as I know, the way to do 
> this in swing is with the "clip"-method on the Graphics object. However, no 
> matter what clip I set, the whole PDF is drawn.
> PDFRenderer calls "setClip", when it probably should use "clip". The latter 
> sets the current clip to the intersection of the old current clip and the 
> provided shape, whereas the former resets the current clip
> I've attached an example maven project, but the gist is:
> {code:java}
>           @Override 
>           public void paint(final Graphics g) { 
>  
>               final Graphics2D g2 = (Graphics2D) g; 
>               try { 
>                   PDDocument pdDocument = 
> DDocument.load(App.class.getResourceAsStream("somepdf.pdf")); 
>                   g2.clip(new Rectangle(20, 20)); 
>                   final PDFRenderer pdfRenderer = new 
> org.apache.pdfbox.rendering.PDFRenderer(pdDocument); 
>                   pdfRenderer.renderPageToGraphics(0, g2); 
>               } catch (final IOException e) { 
>                   throw new RuntimeException(e); 
>               } 
>           }
>   {code}



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: dev-h...@pdfbox.apache.org

Reply via email to