[ https://issues.apache.org/jira/browse/PDFBOX-4744?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Christian Appl updated PDFBOX-4744: ----------------------------------- Description: Unrotatable Annotations are no longer rendered by the PageDrawer. The issue can be reproduced using the attached "simple.pdf" and the following code: {code:java} public static void main(String... args) { File pdfFile = new File("pathto", "simple.pdf"); BufferedImage actualImage = null; try { try (PDDocument document = PDDocument.load(pdfFile)) { PDFRenderer pdfRenderer = new PDFRenderer(document); pdfRenderer.setAnnotationsFilter(PDAnnotation::isPrinted); pdfRenderer.setDefaultDestination(RenderDestination.VIEW); actualImage = pdfRenderer.renderImage(0); } if (actualImage != null) { ImageIO.write(actualImage, "png", new File("somePath", "out.png")); } } catch (IOException e) { e.printStackTrace(); } } {code} When setting the page rotation to 0 the annotation can be seen in the "out.png", when selecting another rotation, it is gone. I am assuming, that the following code in PageDrawer (Method: showAnnotation(PDAnnotation annotation) Lines: 886 to 892) is not working as expected. Maybe the rotation anchor should be set to a different position? {code:java} if (annotation.isNoRotate() && this.getCurrentPage().getRotation() != 0) { PDRectangle rect = annotation.getRectangle(); AffineTransform savedTransform =this.graphics.getTransform(); this.graphics.rotate(Math.toRadians((double)this.getCurrentPage().getRotation()), (double)rect.getLowerLeftX(),(double)rect.getUpperRightY()); super.showAnnotation(annotation); this.graphics.setTransform(savedTransform); } else { super.showAnnotation(annotation); } {code} The flags of the annotation are: !screenshot-1.png! was: Unrotatable Annotations are no longer rendered by the PageDrawer. The issue can be reproduced using the attached "simple.pdf" and the following code: {code:java} public static void main(String... args) { File pdfFile = new File("pathto", "simple.pdf"); BufferedImage actualImage = null; try { try (PDDocument document = PDDocument.load(pdfFile)) { PDFRenderer pdfRenderer = new PDFRenderer(document); pdfRenderer.setAnnotationsFilter(PDAnnotation::isPrinted); pdfRenderer.setDefaultDestination(RenderDestination.VIEW); actualImage = pdfRenderer.renderImage(0); } if (actualImage != null) { ImageIO.write(actualImage, "png", new File("somePath", "out.png")); } } catch (IOException e) { e.printStackTrace(); } } {code} When setting the page rotation to 0 the annotation can be seen in the "out.png", when selecting another rotation, it is gone. I am assuming, that the following code in PageDrawer (Method: showAnnotation(PDAnnotation annotation) Lines: 886 to 892) is not working as expected. Maybe the rotation anchor should be set to a different position? {code:java} if (annotation.isNoRotate() && this.getCurrentPage().getRotation() != 0) { PDRectangle rect = annotation.getRectangle(); AffineTransform savedTransform =this.graphics.getTransform(); this.graphics.rotate(Math.toRadians((double)this.getCurrentPage().getRotation()), (double)rect.getLowerLeftX(),(double)rect.getUpperRightY()); super.showAnnotation(annotation); this.graphics.setTransform(savedTransform); } else { super.showAnnotation(annotation); } {code} > PageDrawer is not rendering unrotatable Annotations on rotated pages > -------------------------------------------------------------------- > > Key: PDFBOX-4744 > URL: https://issues.apache.org/jira/browse/PDFBOX-4744 > Project: PDFBox > Issue Type: Bug > Components: Rendering > Affects Versions: 2.0.18 > Reporter: Christian Appl > Priority: Major > Labels: PDFBox, PageDrawer > Attachments: screenshot-1.png, simple.pdf > > > Unrotatable Annotations are no longer rendered by the PageDrawer. > The issue can be reproduced using the attached "simple.pdf" and the following > code: > {code:java} > public static void main(String... args) { > File pdfFile = new File("pathto", "simple.pdf"); > BufferedImage actualImage = null; > try { > try (PDDocument document = PDDocument.load(pdfFile)) { > PDFRenderer pdfRenderer = new PDFRenderer(document); > pdfRenderer.setAnnotationsFilter(PDAnnotation::isPrinted); > pdfRenderer.setDefaultDestination(RenderDestination.VIEW); > actualImage = pdfRenderer.renderImage(0); > } > if (actualImage != null) { > ImageIO.write(actualImage, "png", new File("somePath", > "out.png")); > } > } catch (IOException e) { > e.printStackTrace(); > } > } > {code} > When setting the page rotation to 0 the annotation can be seen in the > "out.png", when selecting another rotation, it is gone. > I am assuming, that the following code in PageDrawer (Method: > showAnnotation(PDAnnotation annotation) Lines: 886 to 892) is not working as > expected. Maybe the rotation anchor should be set to a different position? > {code:java} > if (annotation.isNoRotate() && this.getCurrentPage().getRotation() != 0) { > PDRectangle rect = annotation.getRectangle(); > AffineTransform savedTransform =this.graphics.getTransform(); > > this.graphics.rotate(Math.toRadians((double)this.getCurrentPage().getRotation()), > (double)rect.getLowerLeftX(),(double)rect.getUpperRightY()); > super.showAnnotation(annotation); > this.graphics.setTransform(savedTransform); > } else { > super.showAnnotation(annotation); > } > {code} > The flags of the annotation are: > !screenshot-1.png! -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org For additional commands, e-mail: dev-h...@pdfbox.apache.org