You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ad...@apache.org on 2010/11/23 18:50:21 UTC

svn commit: r1038227 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation: PDAnnotation.java PDAnnotationMarkup.java

Author: adam
Date: Tue Nov 23 17:50:20 2010
New Revision: 1038227

URL: http://svn.apache.org/viewvc?rev=1038227&view=rev
Log:
PDFBOX-902: ClassCastException caused by unhandled Markup Annotations.
Patch contributed by Kevin Jackson

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAnnotation.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAnnotationMarkup.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAnnotation.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAnnotation.java?rev=1038227&r1=1038226&r2=1038227&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAnnotation.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAnnotation.java Tue Nov 23 17:50:20 2010
@@ -138,6 +138,15 @@ public abstract class PDAnnotation imple
             {
                annot = new PDAnnotationWidget( annotDic );
             }
+            else if( subtype.equals( PDAnnotationMarkup.SUB_TYPE_FREETEXT ) ||
+                    subtype.equals( PDAnnotationMarkup.SUB_TYPE_POLYGON ) ||
+                    subtype.equals( PDAnnotationMarkup.SUB_TYPE_POLYLINE ) ||
+                    subtype.equals( PDAnnotationMarkup.SUB_TYPE_CARET ) ||
+                    subtype.equals( PDAnnotationMarkup.SUB_TYPE_INK ) ||
+                    subtype.equals( PDAnnotationMarkup.SUB_TYPE_SOUND ))
+            {
+                annot = new PDAnnotationMarkup( annotDic );
+            }
             else
             {
                 annot = new PDAnnotationUnknown( annotDic );

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAnnotationMarkup.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAnnotationMarkup.java?rev=1038227&r1=1038226&r2=1038227&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAnnotationMarkup.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/PDAnnotationMarkup.java Tue Nov 23 17:50:20 2010
@@ -26,15 +26,40 @@ import java.io.IOException;
 import java.util.Calendar;
 
 /**
- * This class represents the additonal fields of a Markup type Annotation.
- *
+ * This class represents the additonal fields of a Markup type Annotation.  See
+ * section 12.5.6 of ISO32000-1:2008 (starting with page 390) for details on
+ * annotation types.
  *
  * @author Paul King
  * @version $Revision: 1.1 $
  */
-public abstract class PDAnnotationMarkup extends PDAnnotation
+public class PDAnnotationMarkup extends PDAnnotation
 {
-
+    /**
+     * Constant for a FreeText type of annotation.
+     */
+    public static final String SUB_TYPE_FREETEXT = "FreeText";
+    /**
+     * Constant for an Polygon type of annotation.
+     */
+    public static final String SUB_TYPE_POLYGON = "Polygon";
+    /**
+     * Constant for an PolyLine type of annotation.
+     */
+    public static final String SUB_TYPE_POLYLINE = "PolyLine";
+    /**
+     * Constant for an Caret type of annotation.
+     */
+    public static final String SUB_TYPE_CARET = "Caret";
+    /**
+     * Constant for an Ink type of annotation.
+     */
+    public static final String SUB_TYPE_INK = "Ink";
+    /**
+     * Constant for an Sound type of annotation.
+     */
+    public static final String SUB_TYPE_SOUND = "Sound";
+  
     /*
      * The various values of the reply type as defined in the PDF 1.7 reference
      * Table 170