You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2025/10/07 12:16:15 UTC
svn commit: r1929000 - pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering
Author: tilman
Date: Tue Oct 7 12:16:15 2025
New Revision: 1929000
Log:
PDFBOX-5660: optimize, as suggested by Valery Bokov; closes #277
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
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java Tue Oct 7 12:16:11 2025 (r1928999)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java Tue Oct 7 12:16:15 2025 (r1929000)
@@ -104,6 +104,7 @@ import org.apache.pdfbox.pdmodel.interac
import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation;
import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationUnknown;
import org.apache.pdfbox.pdmodel.interactive.annotation.PDAppearanceDictionary;
+import org.apache.pdfbox.pdmodel.interactive.annotation.PDAppearanceEntry;
import org.apache.pdfbox.util.Matrix;
import org.apache.pdfbox.util.Vector;
@@ -1559,14 +1560,17 @@ public class PageDrawer extends PDFGraph
if (annotation.isNoRotate() && getCurrentPage().getRotation() != 0)
{
appearance = annotation.getAppearance();
- if (appearance != null && appearance.getNormalAppearance() != null &&
- appearance.getNormalAppearance().isStream() &&
- hasTransparency(appearance.getNormalAppearance().getAppearanceStream()))
- {
- // PDFBOX-4744: avoid appearances with transparency groups until we have fixed
- // the rendering. A real solution should probably be
- // in PDFStreamEngine.processAnnotation().
- annotation.constructAppearances();
+ if (appearance != null)
+ {
+ PDAppearanceEntry appearanceEntry = appearance.getNormalAppearance();
+ if (appearanceEntry != null && appearanceEntry.isStream() &&
+ hasTransparency(appearanceEntry.getAppearanceStream()))
+ {
+ // PDFBOX-4744: avoid appearances with transparency groups until we have fixed
+ // the rendering. A real solution should probably be
+ // in PDFStreamEngine.processAnnotation().
+ annotation.constructAppearances();
+ }
}
PDRectangle rect = annotation.getRectangle();
AffineTransform savedTransform = graphics.getTransform();