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/06/27 16:21:44 UTC
svn commit: r1834518 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDTextAppearanceHandler.java
Author: tilman
Date: Wed Jun 27 16:21:44 2018
New Revision: 1834518
URL: http://svn.apache.org/viewvc?rev=1834518&view=rev
Log:
PDFBOX-3353: support /UpArrow and /UpLeftArrow
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDTextAppearanceHandler.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDTextAppearanceHandler.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDTextAppearanceHandler.java?rev=1834518&r1=1834517&r2=1834518&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDTextAppearanceHandler.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDTextAppearanceHandler.java Wed Jun 27 16:21:44 2018
@@ -58,6 +58,8 @@ public class PDTextAppearanceHandler ext
SUPPORTED_NAMES.add(PDAnnotationText.NAME_RIGHT_ARROW);
SUPPORTED_NAMES.add(PDAnnotationText.NAME_RIGHT_POINTER);
SUPPORTED_NAMES.add(PDAnnotationText.NAME_CROSS_HAIRS);
+ SUPPORTED_NAMES.add(PDAnnotationText.NAME_UP_ARROW);
+ SUPPORTED_NAMES.add(PDAnnotationText.NAME_UP_LEFT_ARROW);
}
public PDTextAppearanceHandler(PDAnnotation annotation)
@@ -81,7 +83,7 @@ public class PDTextAppearanceHandler ext
{
//TODO Comment, Key
// BBox values:
- // key 18 18
+ // Key 13 18
// Comment 18 18
return;
}
@@ -140,6 +142,12 @@ public class PDTextAppearanceHandler ext
case PDAnnotationText.NAME_CROSS_HAIRS:
drawCrossHairs(annotation, contentStream);
break;
+ case PDAnnotationText.NAME_UP_ARROW:
+ drawUpArrow(annotation, contentStream);
+ break;
+ case PDAnnotationText.NAME_UP_LEFT_ARROW:
+ drawUpLeftArrow(annotation, contentStream);
+ break;
default:
break;
}
@@ -492,6 +500,48 @@ public class PDTextAppearanceHandler ext
contentStream.fillAndStroke();
}
+ private void drawUpArrow(PDAnnotationText annotation, final PDAppearanceContentStream contentStream)
+ throws IOException
+ {
+ adjustRectAndBBox(annotation, 17, 20);
+
+ contentStream.setMiterLimit(4);
+ contentStream.setLineJoinStyle(1);
+ contentStream.setLineCapStyle(0);
+ contentStream.setLineWidth(0.59f); // value from Adobe
+
+ contentStream.moveTo(1, 7);
+ contentStream.lineTo(5, 7);
+ contentStream.lineTo(5, 1);
+ contentStream.lineTo(12, 1);
+ contentStream.lineTo(12, 7);
+ contentStream.lineTo(16, 7);
+ contentStream.lineTo(8.5f, 19);
+ contentStream.closeAndFillAndStroke();
+ }
+
+ private void drawUpLeftArrow(PDAnnotationText annotation, final PDAppearanceContentStream contentStream)
+ throws IOException
+ {
+ adjustRectAndBBox(annotation, 17, 17);
+
+ contentStream.setMiterLimit(4);
+ contentStream.setLineJoinStyle(1);
+ contentStream.setLineCapStyle(0);
+ contentStream.setLineWidth(0.59f); // value from Adobe
+
+ contentStream.transform(Matrix.getRotateInstance(Math.toRadians(45), 8, -4));
+
+ contentStream.moveTo(1, 7);
+ contentStream.lineTo(5, 7);
+ contentStream.lineTo(5, 1);
+ contentStream.lineTo(12, 1);
+ contentStream.lineTo(12, 7);
+ contentStream.lineTo(16, 7);
+ contentStream.lineTo(8.5f, 19);
+ contentStream.closeAndFillAndStroke();
+ }
+
private void drawRightArrow(PDAnnotationText annotation, final PDAppearanceContentStream contentStream)
throws IOException
{