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 2018/01/18 19:24:58 UTC
svn commit: r1821545 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDSquareAppearanceHandler.java
Author: tilman
Date: Thu Jan 18 19:24:58 2018
New Revision: 1821545
URL: http://svn.apache.org/viewvc?rev=1821545&view=rev
Log:
PDFBOX-3353: add logging, simplify
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=1821545&r1=1821544&r2=1821545&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 Thu Jan 18 19:24:58 2018
@@ -18,11 +18,13 @@
package org.apache.pdfbox.pdmodel.interactive.annotation.handlers;
import java.io.IOException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.pdfbox.cos.COSArray;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation;
-import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationSquareCircle;
+import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationSquare;
import org.apache.pdfbox.pdmodel.interactive.annotation.PDAppearanceContentStream;
import org.apache.pdfbox.pdmodel.interactive.annotation.PDBorderStyleDictionary;
@@ -32,7 +34,8 @@ import org.apache.pdfbox.pdmodel.interac
*/
public class PDSquareAppearanceHandler extends PDAbstractAppearanceHandler
{
-
+ private static final Log LOG = LogFactory.getLog(PDSquareAppearanceHandler.class);
+
public PDSquareAppearanceHandler(PDAnnotation annotation)
{
super(annotation);
@@ -52,31 +55,33 @@ public class PDSquareAppearanceHandler e
float lineWidth = getLineWidth();
try
{
- PDAppearanceContentStream contentStream = getNormalAppearanceAsContentStream();
- contentStream.setStrokingColorOnDemand(getColor());
- boolean hasBackground = contentStream
- .setNonStrokingColorOnDemand(((PDAnnotationSquareCircle) getAnnotation()).getInteriorColor());
-
- handleOpacity(((PDAnnotationSquareCircle) getAnnotation()).getConstantOpacity());
-
- contentStream.setBorderLine(lineWidth, ((PDAnnotationSquareCircle) getAnnotation()).getBorderStyle());
-
- // the differences rectangle
- // TODO: this only works for border effect solid. Cloudy needs a different approach.
- setRectDifference(lineWidth);
-
- // Acrobat applies a padding to each side of the bbox so the line is completely within
- // the bbox.
- PDRectangle borderEdge = getPaddedRectangle(getRectangle(),lineWidth/2);
- contentStream.addRect(borderEdge.getLowerLeftX() , borderEdge.getLowerLeftY(),
- borderEdge.getWidth(), borderEdge.getHeight());
-
- contentStream.drawShape(lineWidth, hasBackground);
-
- contentStream.close();
- } catch (IOException e)
+ PDAnnotationSquare annotation = (PDAnnotationSquare) getAnnotation();
+ try (PDAppearanceContentStream contentStream = getNormalAppearanceAsContentStream())
+ {
+ contentStream.setStrokingColorOnDemand(getColor());
+ boolean hasBackground = contentStream
+ .setNonStrokingColorOnDemand(annotation.getInteriorColor());
+
+ handleOpacity(annotation.getConstantOpacity());
+
+ contentStream.setBorderLine(lineWidth, annotation.getBorderStyle());
+
+ // the differences rectangle
+ // TODO: this only works for border effect solid. Cloudy needs a different approach.
+ setRectDifference(lineWidth);
+
+ // Acrobat applies a padding to each side of the bbox so the line is completely within
+ // the bbox.
+ PDRectangle borderEdge = getPaddedRectangle(getRectangle(),lineWidth/2);
+ contentStream.addRect(borderEdge.getLowerLeftX(), borderEdge.getLowerLeftY(),
+ borderEdge.getWidth(), borderEdge.getHeight());
+
+ contentStream.drawShape(lineWidth, hasBackground);
+ }
+ }
+ catch (IOException e)
{
- e.printStackTrace();
+ LOG.error(e);
}
}
@@ -109,7 +114,7 @@ public class PDSquareAppearanceHandler e
// here and removed from the individual handlers.
float getLineWidth()
{
- PDAnnotationSquareCircle annotation = (PDAnnotationSquareCircle) getAnnotation();
+ PDAnnotationSquare annotation = (PDAnnotationSquare) getAnnotation();
PDBorderStyleDictionary bs = annotation.getBorderStyle();