Author: tilman Date: Sat Jan 4 11:40:09 2020 New Revision: 1872317 URL: http://svn.apache.org/viewvc?rev=1872317&view=rev Log: PDFBOX-4730: consider /OC before rendering images or forms (and transparency groups), similar to what we already do with annotations
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java?rev=1872317&r1=1872316&r2=1872317&view=diff ============================================================================== --- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java (original) +++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java Sat Jan 4 11:40:09 2020 @@ -79,6 +79,7 @@ import org.apache.pdfbox.pdmodel.graphic import org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject; import org.apache.pdfbox.pdmodel.graphics.form.PDTransparencyGroup; import org.apache.pdfbox.pdmodel.graphics.image.PDImage; +import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; import org.apache.pdfbox.pdmodel.graphics.optionalcontent.PDOptionalContentGroup; import org.apache.pdfbox.pdmodel.graphics.optionalcontent.PDOptionalContentGroup.RenderState; import org.apache.pdfbox.pdmodel.graphics.optionalcontent.PDOptionalContentMembershipDictionary; @@ -937,6 +938,11 @@ public class PageDrawer extends PDFGraph @Override public void drawImage(PDImage pdImage) throws IOException { + if (pdImage instanceof PDImageXObject && + isHiddenOCG(((PDImageXObject) pdImage).getOptionalContent())) + { + return; + } Matrix ctm = getGraphicsState().getCurrentTransformationMatrix(); AffineTransform at = ctm.createAffineTransform(); @@ -1325,6 +1331,10 @@ public class PageDrawer extends PDFGraph @Override public void showForm(PDFormXObject form) throws IOException { + if (isHiddenOCG(form.getOptionalContent())) + { + return; + } if (isContentRendered()) { super.showForm(form); @@ -1334,6 +1344,10 @@ public class PageDrawer extends PDFGraph @Override public void showTransparencyGroup(PDTransparencyGroup form) throws IOException { + if (isHiddenOCG(form.getOptionalContent())) + { + return; + } if (!isContentRendered()) { return;