You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ms...@apache.org on 2018/02/02 19:02:25 UTC
svn commit: r1823000 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDSquareAppearanceHandler.java
Author: msahyoun
Date: Fri Feb 2 19:02:24 2018
New Revision: 1823000
URL: http://svn.apache.org/viewvc?rev=1823000&view=rev
Log:
PDFBOX-4092: adjust BBox and Matrix when there was no AP at all to match the new /Rect
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDSquareAppearanceHandler.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDSquareAppearanceHandler.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDSquareAppearanceHandler.java?rev=1823000&r1=1822999&r2=1823000&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDSquareAppearanceHandler.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDSquareAppearanceHandler.java Fri Feb 2 19:02:24 2018
@@ -17,6 +17,7 @@
package org.apache.pdfbox.pdmodel.interactive.annotation.handlers;
+import java.awt.geom.AffineTransform;
import java.io.IOException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -66,7 +67,7 @@ public class PDSquareAppearanceHandler e
handleOpacity(annotation.getConstantOpacity());
- contentStream.setBorderLine(lineWidth, annotation.getBorderStyle());
+ contentStream.setBorderLine(lineWidth, annotation.getBorderStyle());
// handle the border box
//
@@ -87,6 +88,13 @@ public class PDSquareAppearanceHandler e
// TODO: this only works for border effect solid. Cloudy needs a different approach.
annotation.setRectDifferences(lineWidth/2);
annotation.setRectangle(addRectDifferences(getRectangle(), annotation.getRectDifferences()));
+
+ // when the normal appearance stream was generated BBox and Matrix have been set to the
+ // values of the original /Rect. As the /Rect was changed that needs to be adjusted too.
+ annotation.getNormalAppearanceStream().setBBox(getRectangle());
+ AffineTransform transform = AffineTransform.getTranslateInstance(-getRectangle().getLowerLeftX(),
+ -getRectangle().getLowerLeftY());
+ annotation.getNormalAppearanceStream().setMatrix(transform);
}
else
{