code: public String getFieldValue(String name) {
          PdfDictionary field = (PdfDictionary)fields.get(name);
          if (field == null)
              return null;
          PdfObject v = getPdfObject(field.get(PdfName.V));
          if (v == null)
              return null;
          if (v.isName())
              return PdfName.decodeName(((PdfName)v).toString());
          else if (v.isString()) {
              PdfString vs = (PdfString)v;
              if (encoding == null || vs.getEncoding() != null)
                  return vs.toUnicodeString();
              byte b[] = vs.getBytes();
              if (b.length >= 2 && b[0] == (byte)254 && b[1] == (byte)255)
                  return vs.toUnicodeString();
              try {
                  if (encoding.equals(PdfName.SHIFT_JIS))
                      return new String(b, "SJIS");
                  else if (encoding.equals(PdfName.UHC))
                      return new String(b, "MS949");
                  else if (encoding.equals(PdfName.GBK))
                      return new String(b, "GBK");
                  else if (encoding.equals(PdfName.BIGFIVE))
                      return new String(b, "Big5");
              }
              catch (Exception e) {
              }
              return vs.toUnicodeString();
          }
          return null;
      }
docs: Gets the field value or <CODE>null</CODE> if the field does not
  exist or has no value defined.
  @param name the fully qualified field name
  @return the field value or <CODE>null</CODE>