Author: msahyoun Date: Sun Jun 16 14:37:39 2019 New Revision: 1861459 URL: http://svn.apache.org/viewvc?rev=1861459&view=rev Log: PDFBOX-4573: add constructAppearances() to base class; add call to PageDrawer
Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAnnotation.java pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAnnotation.java URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAnnotation.java?rev=1861459&r1=1861458&r2=1861459&view=diff ============================================================================== --- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAnnotation.java (original) +++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAnnotation.java Sun Jun 16 14:37:39 2019 @@ -774,4 +774,14 @@ public abstract class PDAnnotation imple return null; } + /** + * Create the appearance entry for this annotation. Not having it may prevent display in some + * viewers. This method is for overriding in subclasses, the default implementation does + * nothing. + * + */ + public void constructAppearances() + { + } + } Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java?rev=1861459&r1=1861458&r2=1861459&view=diff ============================================================================== --- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java (original) +++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java Sun Jun 16 14:37:39 2019 @@ -100,6 +100,7 @@ import org.apache.pdfbox.pdmodel.interac import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink; import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationMarkup; import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationUnknown; +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAppearanceDictionary; import org.apache.pdfbox.pdmodel.interactive.annotation.PDBorderStyleDictionary; import org.apache.pdfbox.util.Matrix; import org.apache.pdfbox.util.Vector; @@ -1339,6 +1340,13 @@ public class PageDrawer extends PDFGraph { return; } + + PDAppearanceDictionary appearance = annotation.getAppearance(); + if (appearance == null || appearance.getNormalAppearance() == null) + { + // TODO: Improve memory consumption by passing a ScratchFile + annotation.constructAppearances(); + } super.showAnnotation(annotation);