You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ja...@apache.org on 2015/05/16 01:01:36 UTC

svn commit: r1679657 - in /pdfbox/trunk: examples/src/main/java/org/apache/pdfbox/examples/fdf/ pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/ pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/ pdfbox/src/test/java/org/apache/pdfbox/...

Author: jahewson
Date: Fri May 15 23:01:36 2015
New Revision: 1679657

URL: http://svn.apache.org/r1679657
Log:
PDFBOX-2459: Introduce type safety for setValue()

Modified:
    pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/fdf/SetField.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFField.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDCheckbox.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDChoice.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDComboBox.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDField.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDListBox.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDNonTerminalField.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDPushButton.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDRadioButton.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDSignatureField.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDTextField.java
    pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/MultilineFieldsTest.java

Modified: pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/fdf/SetField.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/fdf/SetField.java?rev=1679657&r1=1679656&r2=1679657&view=diff
==============================================================================
--- pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/fdf/SetField.java (original)
+++ pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/fdf/SetField.java Fri May 15 23:01:36 2015
@@ -18,12 +18,10 @@ package org.apache.pdfbox.examples.fdf;
 
 import java.io.File;
 import java.io.IOException;
-
 import org.apache.pdfbox.pdmodel.PDDocument;
 import org.apache.pdfbox.pdmodel.PDDocumentCatalog;
 import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm;
 import org.apache.pdfbox.pdmodel.interactive.form.PDCheckbox;
-import org.apache.pdfbox.pdmodel.interactive.form.PDChoice;
 import org.apache.pdfbox.pdmodel.interactive.form.PDComboBox;
 import org.apache.pdfbox.pdmodel.interactive.form.PDField;
 import org.apache.pdfbox.pdmodel.interactive.form.PDListBox;
@@ -56,11 +54,7 @@ public class SetField
         {
             if (field instanceof PDCheckbox)
             {
-                ((PDCheckbox) field).setValue(value);
-            }
-            else if (field instanceof PDChoice)
-            {
-                ((PDChoice) field).setValue(value);
+                ((PDCheckbox) field).setValue(value.equals("Yes"));
             }
             else if (field instanceof PDComboBox)
             {
@@ -83,7 +77,6 @@ public class SetField
         {
             System.err.println("No field found with name:" + name);
         }
-
     }
 
     /**

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFField.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFField.java?rev=1679657&r1=1679656&r2=1679657&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFField.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFField.java Fri May 15 23:01:36 2015
@@ -226,7 +226,6 @@ public class FDFField implements COSObje
      * PDTextStream: Textfields
      *
      * @return The value of the field.
-     *
      * @throws IOException If there is an error getting the value.
      */
     public Object getValue() throws IOException
@@ -255,6 +254,37 @@ public class FDFField implements COSObje
     }
 
     /**
+     * Returns the COS value of this field.
+     * 
+     * @return The COS value of the field.
+     * @throws IOException If there is an error getting the value.
+     */
+    public COSBase getCOSValue() throws IOException
+    {
+        COSBase value = field.getDictionaryObject( COSName.V );
+        if( value instanceof COSName )
+        {
+            return value;
+        }
+        else if( value instanceof COSArray )
+        {
+            return value;
+        }
+        else if( value instanceof COSString || value instanceof COSStream )
+        {
+            return value;
+        }
+        else if( value != null )
+        {
+            throw new IOException( "Error:Unknown type for field import" + value );
+        }
+        else
+        {
+            return null;
+        }
+    }
+    
+    /**
      * You should pass in a string, or a java.util.List of strings to set the
      * value.
      *

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDCheckbox.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDCheckbox.java?rev=1679657&r1=1679656&r2=1679657&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDCheckbox.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDCheckbox.java Fri May 15 23:01:36 2015
@@ -68,15 +68,15 @@ public final class PDCheckbox extends PD
      */
     public void check() throws IOException
     {
-        setValue("Yes"); // todo: need type safety
+        setValue(true);
     }
 
     /**
      * Unchecks the check box.
      */
-    public void unCheck()
+    public void unCheck() throws IOException
     {
-        dictionary.setItem(COSName.AS, COSName.OFF);
+        setValue(false);
     }
 
     /**
@@ -95,21 +95,20 @@ public final class PDCheckbox extends PD
     {
         return getValue() ? "Yes" : "Off";
     }
-    
-    @Override
-    public void setValue(String value) throws IOException
+
+    /**
+     * Sets the checked value of this field.
+     *
+     * @param value True if checked
+     * @throws IOException if the value could not be set
+     */
+    public void setValue(boolean value) throws IOException
     {
-        dictionary.setName(COSName.V, value);
+        COSName name = value ? COSName.YES : COSName.OFF;
+        dictionary.setItem(COSName.V, name);
         
         // update the appearance state (AS)
-        if (value == null)
-        {
-            dictionary.setItem(COSName.AS, COSName.OFF);
-        }
-        else
-        {
-            dictionary.setName(COSName.AS, value);
-        }
+        dictionary.setItem(COSName.AS, name);
         
         applyChange();
     }

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDChoice.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDChoice.java?rev=1679657&r1=1679656&r2=1679657&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDChoice.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDChoice.java Fri May 15 23:01:36 2015
@@ -270,7 +270,7 @@ public abstract class PDChoice extends P
     /**
      * This will set the indices of the selected options - the 'I' key.
      * <p>
-     * This method is preferred over {@link #setValues(List)} for choice fields which
+     * This method is preferred over {@link #setValue(List)} for choice fields which
      * <ul>
      *  <li>do support multiple selections</li>
      *  <li>have export values with the same value</li>
@@ -405,13 +405,29 @@ public abstract class PDChoice extends P
     {
         dictionary.setFlag(COSName.FF, FLAG_COMBO, combo);
     }
+
+    /**
+     * Sets the selected value of this field.
+     *
+     * @param value The name of the selected item.
+     * @throws IOException if the value could not be set
+     */
+    public void setValue(String value) throws IOException
+    {
+        dictionary.setString(COSName.V, value);
+        
+        // remove I key for single valued choice field
+        setSelectedOptionsIndex(null);
+        
+        applyChange();
+    }
     
     /**
-     * setValues sets the entry "V" to the given values.
+     * Sets the entry "V" to the given values. Requires {@link #isMultiSelect()} to be true.
      * 
      * @param values the list of values
      */    
-    public void setValues(List<String> values) throws IOException
+    public void setValue(List<String> values) throws IOException
     {
         if (values != null && !values.isEmpty())
         {

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDComboBox.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDComboBox.java?rev=1679657&r1=1679656&r2=1679657&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDComboBox.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDComboBox.java Fri May 15 23:01:36 2015
@@ -16,7 +16,6 @@
  */
 package org.apache.pdfbox.pdmodel.interactive.form;
 
-import java.io.IOException;
 import org.apache.pdfbox.cos.COSDictionary;
 import org.apache.pdfbox.cos.COSName;
 
@@ -72,30 +71,4 @@ public final class PDComboBox extends PD
     {
         dictionary.setFlag(COSName.FF, FLAG_EDIT, edit);
     }
-    
-    @Override
-    public void setValue(String value) throws IOException
-    {
-        if (value != null)
-        {
-            // check if the options contain the value to be set is
-            // only necessary if the edit flag has not been set.
-            // If the edit flag has been set the field allows a custom value.
-            if (!isEdit() && getOptions().indexOf(value) == -1)
-            {
-                throw new IllegalArgumentException("The list box does not contain the given value.");
-            }
-            else
-            {
-                dictionary.setString(COSName.V, value);
-                // remove I key for single valued choice field
-                setSelectedOptionsIndex(null);
-            }
-        }
-        else
-        {
-            dictionary.removeItem(COSName.V);
-        }
-        applyChange();
-    }
 }

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDField.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDField.java?rev=1679657&r1=1679656&r2=1679657&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDField.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDField.java Fri May 15 23:01:36 2015
@@ -21,8 +21,6 @@ import org.apache.pdfbox.cos.COSArray;
 import org.apache.pdfbox.cos.COSBase;
 import org.apache.pdfbox.cos.COSDictionary;
 import org.apache.pdfbox.cos.COSName;
-import org.apache.pdfbox.cos.COSStream;
-import org.apache.pdfbox.cos.COSString;
 import org.apache.pdfbox.pdmodel.common.COSObjectable;
 import org.apache.pdfbox.pdmodel.fdf.FDFField;
 import org.apache.pdfbox.pdmodel.interactive.action.PDFormFieldAdditionalActions;
@@ -152,25 +150,6 @@ public abstract class PDField implements
     public abstract String getValueAsString();
     
     /**
-     * Set the value of the "V" entry. The "V" entry is an inheritable attribute.
-     * 
-     * The different field types do require specific object types for their value
-     * e.g. for RadioButtons the V entry needs to be a name object. This needs to be handled by the
-     * individual classes.
-     * 
-     * Trying to set the value for a {@link PDPushButton} field will lead to an
-     * {@link IllegalArgumentException} as PDPushButton fields do not support setting the
-     * entry although, common to all field types, the DV entry shall not be set.
-     * 
-     * As a result it might be necessary to check the type of the value before
-     * reusing it.
-     * 
-     * @param value The new field value.
-     * @throws IOException if there is an error setting the field value.
-     */    
-    public abstract void setValue(String value) throws IOException;
-    
-    /**
      * sets the field to be read-only.
      * 
      * @param readonly The new flag for readonly.
@@ -269,23 +248,10 @@ public abstract class PDField implements
      */
     public void importFDF(FDFField fdfField) throws IOException
     {
-        Object fieldValue = fdfField.getValue();
-        int fieldFlags = getFieldFlags();
-
+        COSBase fieldValue = fdfField.getCOSValue();
         if (fieldValue != null)
         {
-            if (fieldValue instanceof COSString)
-            {
-                setValue(((COSString) fieldValue).getString());
-            }
-            else if (fieldValue instanceof COSStream)
-            {
-                setValue(((COSStream) fieldValue).getString());
-            }
-            else
-            {
-                throw new IOException("Unknown field type:" + fieldValue.getClass().getName());
-            }
+            dictionary.setItem(COSName.V, fieldValue);
         }
         Integer ff = fdfField.getFieldFlags();
         if (ff != null)
@@ -296,7 +262,8 @@ public abstract class PDField implements
         {
             // these are suppose to be ignored if the Ff is set.
             Integer setFf = fdfField.getSetFieldFlags();
-
+            int fieldFlags = getFieldFlags();
+            
             if (setFf != null)
             {
                 int setFfInt = setFf;

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDListBox.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDListBox.java?rev=1679657&r1=1679656&r2=1679657&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDListBox.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDListBox.java Fri May 15 23:01:36 2015
@@ -16,7 +16,6 @@
  */
 package org.apache.pdfbox.pdmodel.interactive.form;
 
-import java.io.IOException;
 import org.apache.pdfbox.cos.COSDictionary;
 import org.apache.pdfbox.cos.COSName;
 
@@ -76,27 +75,4 @@ public final class PDListBox extends PDC
             dictionary.removeItem(COSName.TI);
         }
     }
-    
-    @Override
-    public void setValue(String value) throws IOException
-    {
-        if (value != null)
-        {
-            if (getOptions().indexOf(value) == -1)
-            {
-                throw new IllegalArgumentException("The list box does not contain the given value.");
-            }
-            else
-            {
-                dictionary.setString(COSName.V, value);
-                // remove I key for single valued choice field
-                setSelectedOptionsIndex(null);
-            }
-        }
-        else
-        {
-            dictionary.removeItem(COSName.V);
-        }
-        applyChange();
-    }
 }

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDNonTerminalField.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDNonTerminalField.java?rev=1679657&r1=1679656&r2=1679657&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDNonTerminalField.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDNonTerminalField.java Fri May 15 23:01:36 2015
@@ -182,15 +182,17 @@ public class PDNonTerminalField extends
     }
 
     /**
-     * @inheritDoc
+     * Sets the value of this field. This may be of any kind which is valid for this field's
+     * children.
      *
      * <p><b>Note:</b> while non-terminal fields <b>do</b> inherit field values, this method returns
      * the local value, without inheritance.
      */
-    @Override
-    public void setValue(String value)
+    public void setValue(COSBase object) throws IOException
     {
-        dictionary.setString(COSName.V, value);
+        dictionary.setItem(COSName.V, object);
+        // todo: propagate change event to children?
+        // todo: construct appearances of children?
     }
 
     /**

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDPushButton.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDPushButton.java?rev=1679657&r1=1679656&r2=1679657&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDPushButton.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDPushButton.java Fri May 15 23:01:36 2015
@@ -88,13 +88,4 @@ public class PDPushButton extends PDButt
     {
         return "";
     }
-    
-    @Override
-    public void setValue(String value)
-    {
-        if (value != null && !value.isEmpty())
-        {
-            throw new IllegalArgumentException("A PDPushButton shall not use the V entry in the field dictionary");
-        }
-    }
 }

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDRadioButton.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDRadioButton.java?rev=1679657&r1=1679656&r2=1679657&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDRadioButton.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDRadioButton.java Fri May 15 23:01:36 2015
@@ -154,8 +154,13 @@ public final class PDRadioButton extends
     {
         return getValue();
     }
-    
-    @Override
+
+    /**
+     * Sets the selected radio button, given its name.
+     * 
+     * @param value Name of radio button to select
+     * @throws IOException if the value could not be set
+     */
     public void setValue(String value) throws IOException
     {
         dictionary.setName(COSName.V, value);

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDSignatureField.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDSignatureField.java?rev=1679657&r1=1679656&r2=1679657&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDSignatureField.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDSignatureField.java Fri May 15 23:01:36 2015
@@ -111,7 +111,7 @@ public class PDSignatureField extends PD
     }
 
     /**
-     * Add a signature dictionary to the signature field.
+     * Sets the value of this field to be the given signature.
      * 
      * @param value is the PDSignatureField
      */
@@ -120,13 +120,6 @@ public class PDSignatureField extends PD
         dictionary.setItem(COSName.V, value);
         applyChange();
     }
-    
-    @Override
-    public void setValue(String value)
-    {
-        // Signature fields don't support the strings for value
-        throw new IllegalArgumentException("Signature fields don't support a string for the value entry.");     
-    }
 
     /**
      * Returns the signature contained in this field.

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDTextField.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDTextField.java?rev=1679657&r1=1679656&r2=1679657&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDTextField.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDTextField.java Fri May 15 23:01:36 2015
@@ -222,9 +222,14 @@ public final class PDTextField extends P
             return ((COSString) fieldValue).getString();
         }
         return "";
-    }    
-    
-    @Override
+    }
+
+    /**
+     * Sets the plain text value of this field.
+     * 
+     * @param value Plain text
+     * @throws IOException if the value could not be set
+     */
     public void setValue(String value) throws IOException
     {
         dictionary.setString(COSName.V, value);

Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/MultilineFieldsTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/MultilineFieldsTest.java?rev=1679657&r1=1679656&r2=1679657&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/MultilineFieldsTest.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/form/MultilineFieldsTest.java Fri May 15 23:01:36 2015
@@ -19,11 +19,8 @@ package org.apache.pdfbox.pdmodel.intera
 
 import java.io.File;
 import java.io.IOException;
-import static junit.framework.TestCase.fail;
-
 import org.apache.pdfbox.pdmodel.PDDocument;
 import org.apache.pdfbox.rendering.TestPDFToImage;
-
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -51,43 +48,42 @@ public class MultilineFieldsTest
     @Test
     public void fillFields() throws IOException
     {
-        PDField field = (PDField) acroForm.getField("AlignLeft");
+        PDTextField field = (PDTextField) acroForm.getField("AlignLeft");
         field.setValue(TEST_VALUE);
 
-        field = (PDField) acroForm.getField("AlignMiddle");
+        field = (PDTextField) acroForm.getField("AlignMiddle");
         field.setValue(TEST_VALUE);
 
-        field = (PDField) acroForm.getField("AlignRight");
+        field = (PDTextField) acroForm.getField("AlignRight");
         field.setValue(TEST_VALUE);
 
-        field = (PDField) acroForm.getField("AlignLeft-Border_Small");
+        field = (PDTextField) acroForm.getField("AlignLeft-Border_Small");
         field.setValue(TEST_VALUE);
 
-        field = (PDField) acroForm.getField("AlignMiddle-Border_Small");
+        field = (PDTextField) acroForm.getField("AlignMiddle-Border_Small");
         field.setValue(TEST_VALUE);
 
-        field = (PDField) acroForm.getField("AlignRight-Border_Small");
+        field = (PDTextField) acroForm.getField("AlignRight-Border_Small");
         field.setValue(TEST_VALUE);
 
-        field = (PDField) acroForm.getField("AlignLeft-Border_Medium");
+        field = (PDTextField) acroForm.getField("AlignLeft-Border_Medium");
         field.setValue(TEST_VALUE);
 
-        field = (PDField) acroForm.getField("AlignMiddle-Border_Medium");
+        field = (PDTextField) acroForm.getField("AlignMiddle-Border_Medium");
         field.setValue(TEST_VALUE);
 
-        field = (PDField) acroForm.getField("AlignRight-Border_Medium");
+        field = (PDTextField) acroForm.getField("AlignRight-Border_Medium");
         field.setValue(TEST_VALUE);
 
-        field = (PDField) acroForm.getField("AlignLeft-Border_Wide");
+        field = (PDTextField) acroForm.getField("AlignLeft-Border_Wide");
         field.setValue(TEST_VALUE);
 
-        field = (PDField) acroForm.getField("AlignMiddle-Border_Wide");
+        field = (PDTextField) acroForm.getField("AlignMiddle-Border_Wide");
         field.setValue(TEST_VALUE);
 
-        field = (PDField) acroForm.getField("AlignRight-Border_Wide");
+        field = (PDTextField) acroForm.getField("AlignRight-Border_Wide");
         field.setValue(TEST_VALUE);
         
-        
         // compare rendering
         File file = new File(OUT_DIR, NAME_OF_PDF);
         document.save(file);