[
https://issues.apache.org/jira/browse/PDFBOX-4094?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16364537#comment-16364537
]
Maruan Sahyoun edited comment on PDFBOX-4094 at 2/14/18 6:16 PM:
-----------------------------------------------------------------
[~lehmi] are we fine with taking that patch without an ICLA? IMHO it's small
enough.
[~mveron] thanks for the contribution. I'll apply it later tomorrow with some
minor changes.
- the {{AnnotationsFilter}} shouldn't be part of the
{{org.apache.pdfbox.filter}} package as this is related to io. I'll put it in
the {{.interactive.annotation}} package
- I'll add the setter/getter to {{PageDrawer}} too as the line {{for
(PDAnnotation annotation :
getPage().getAnnotations(getRenderer().getAnnotationsFilter()))}} introduces a
dependency on {{PageRenderer}}. Given the comment in the source code of
{{PageDrawer}} we might be removing the {{PageRenderer}} at some point in time
as a member in {{PageDrawer}}.
Again thank you very much for your help
was (Author: msahyoun):
[~lehmi] are we fine with taking that patch without an ICLA? IMHO it's small
enough.
[~mveron] thanks for the contribution. I'll apply it later tomorrow with some
minor changes.
- the {{AnnotationsFilter}} shouldn't be part of the
{{org.apache.pdfbox.filter}} package as this is related to io. I'll put it in
the {{.interactive.annotation}} package
- I'll add the setter/getter to {{PageDrawer}} too as the line {{for
(PDAnnotation annotation :
getPage().getAnnotations(getRenderer().getAnnotationsFilter()))}} introduces a
dependency on {{PageRenderer}}. Given the comment in the source code of
{{PageDrawer}} we might be removing the {{PageRenderer}} at some point in time
as a member on {{PageDrawer}}.
Again thank you very much for your help
> Add support for a flag disabling the rendering of PDF annotations in
> PDFRenderer
> --------------------------------------------------------------------------------
>
> Key: PDFBOX-4094
> URL: https://issues.apache.org/jira/browse/PDFBOX-4094
> Project: PDFBox
> Issue Type: Wish
> Components: Rendering
> Affects Versions: 2.0.8
> Reporter: Maxime Veron
> Assignee: Maruan Sahyoun
> Priority: Minor
> Fix For: 2.0.9, 3.0.0 PDFBox
>
> Attachments:
> 0001-PDFBOX-4094-comment-Modify-PDFRenderer-in-order-to-a.patch
>
>
> Regardless if annotations are supposed to be printed or not on the PDF, would
> it not be interesting to possess a flag allowing to choose if annotations
> should be printed on top of the document pages?
>
> Here is a diff of a very rough implementation of it :
>
> {code:java}
> diff --git
> a/pdfbox/src/main/java/org/apache/pdfbox/rendering/PDFRenderer.java
> b/pdfbox/src/main/java/org/apache/pdfbox/rendering/PDFRenderer.java
> --- a/pdfbox/src/main/java/org/apache/pdfbox/rendering/PDFRenderer.java
> +++ b/pdfbox/src/main/java/org/apache/pdfbox/rendering/PDFRenderer.java
> @@ -35,6 +35,9 @@ public class PDFRenderer
> protected final PDDocument document;
> // TODO keep rendering state such as caches here
>
> + // parameter used to know if the rendering should include annotations
> + private boolean renderAnnotations = true;
> +
> /**
> * Creates a new PDFRenderer.
> * @param document the document to render
> @@ -224,4 +227,14 @@ public class PDFRenderer
> {
> return new PageDrawer(parameters);
> }
> +
> + public void setRenderAnnotations(boolean render)
> + {
> + this.renderAnnotations = render;
> + }
> +
> + public boolean renderAnnotations()
> + {
> + return renderAnnotations;
> + }
> }
> diff --git a/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
> b/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
> --- a/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
> +++ b/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
> @@ -195,11 +195,13 @@ public class PageDrawer extends PDFGraphicsStreamEngine
>
> processPage(getPage());
>
> - for (PDAnnotation annotation : getPage().getAnnotations())
> - {
> - showAnnotation(annotation);
> + if (getRenderer().renderAnnotations())
> + {
> + for (PDAnnotation annotation : getPage().getAnnotations())
> + {
> + showAnnotation(annotation);
> + }
> }
> -
> graphics = null;
> }
>
> {code}
> And an exemple of a use case:
> {code:java}
> PDDocument doc = getPDDocument();
> PDFRenderer pdfRenderer = new PDFRenderer(doc);
> pdfRenderer.setRenderAnnotations(false);
> pdfRenderer.renderImage(page);
>
> {code}
> By default, this would be keeping the same behavior as it used to (aka :
> print the annotations) but possess an opt-out feature.
>
> Best regards,
> M.Veron
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]