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

Jan Buschtöns commented on PDFBOX-4583:
---------------------------------------

{code:java}

        public void paint(final Graphics g) {

            final Graphics2D g2 = (Graphics2D) g;
            try {

                final int r = 20;
                final double scale = 1.1;
                final AffineTransform transform = g2.getTransform();
                transform.scale(scale, scale);                    
                g2.setTransform(transform);
                final Rectangle rectangle = new Rectangle(r, r);
                g2.clip(rectangle);
                g2.setColor(Color.WHITE);
                g2.fill(rectangle);
                final PDDocument pdDocument = 
PDDocument.load(App.class.getResourceAsStream("/de/abm/bug/x.pdf"));
                final PDFRenderer pdfRenderer = new 
org.apache.pdfbox.rendering.PDFRenderer(pdDocument);
                pdfRenderer.renderPageToGraphics(0, g2);
                g2.setTransform(transform);
                g2.setColor(Color.black);
                g2.drawRect(0, 0, r, r);
            } catch (final IOException e) {
                throw new RuntimeException(e);
            }
        }
    }

{code}

I added a transformation that scales. For scale 1.001 I an see the sqare, for 
1.01 I see half a square, for 1.1 I see nothing.

> 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.3#76005)

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

Reply via email to