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/01 17:41:59 UTC
svn commit: r1822893 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAnnotationCaret.java
Author: msahyoun
Date: Thu Feb 1 17:41:59 2018
New Revision: 1822893
URL: http://svn.apache.org/viewvc?rev=1822893&view=rev
Log:
PDFBOX-4092: support setting, getting the /RD value (margin) for Caret annotation
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAnnotationCaret.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAnnotationCaret.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAnnotationCaret.java?rev=1822893&r1=1822892&r2=1822893&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAnnotationCaret.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAnnotationCaret.java Thu Feb 1 17:41:59 2018
@@ -15,7 +15,10 @@
*/
package org.apache.pdfbox.pdmodel.interactive.annotation;
+import org.apache.pdfbox.cos.COSArray;
+import org.apache.pdfbox.cos.COSBase;
import org.apache.pdfbox.cos.COSDictionary;
+import org.apache.pdfbox.cos.COSFloat;
import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.io.ScratchFile;
import org.apache.pdfbox.pdmodel.interactive.annotation.handlers.PDAppearanceHandler;
@@ -50,6 +53,48 @@ public class PDAnnotationCaret extends P
}
/**
+ * This will set the margin between the annotations "outer" rectangle defined by
+ * /Rect and the boundaries of the underlying caret.
+ *
+ * @param margin
+ */
+ public void setMargins(float margin) {
+ setMargins(margin, margin, margin, margin);
+ }
+
+ /**
+ * This will set the margin between the annotations "outer" rectangle defined by
+ * /Rect and the boundaries of the underlying caret.
+ *
+ * @param margin
+ */
+ public void setMargins(float marginLeft, float marginTop, float marginRight, float marginBottom)
+ {
+ COSArray margins = new COSArray();
+ margins.add(new COSFloat(marginLeft));
+ margins.add(new COSFloat(marginTop));
+ margins.add(new COSFloat(marginRight));
+ margins.add(new COSFloat(marginBottom));
+ getCOSObject().setItem(COSName.RD, margins);
+ }
+
+ /**
+ * This will get the margin between the annotations "outer" rectangle defined by
+ * /Rect and the boundaries of the underlying caret.
+ *
+ * @return the margins. If the entry hasn't been set defaults to 0 on all sides.
+ */
+ public float[] getMargins()
+ {
+ COSBase margin = getCOSObject().getItem(COSName.RD);
+ if (margin instanceof COSArray)
+ {
+ return ((COSArray) margin).toFloatArray();
+ }
+ return new float[]{0f, 0f, 0f, 0f};
+ }
+
+ /**
* Set a custom appearance handler for generating the annotations appearance streams.
*
* @param caretAppearanceHandler