Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id D9821200C2F for ; Mon, 6 Mar 2017 17:49:13 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id D81C6160B76; Mon, 6 Mar 2017 16:49:13 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 2D39C160B66 for ; Mon, 6 Mar 2017 17:49:13 +0100 (CET) Received: (qmail 31405 invoked by uid 500); 6 Mar 2017 16:49:12 -0000 Mailing-List: contact commits-help@pdfbox.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@pdfbox.apache.org Delivered-To: mailing list commits@pdfbox.apache.org Received: (qmail 31396 invoked by uid 99); 6 Mar 2017 16:49:12 -0000 Received: from Unknown (HELO svn01-us-west.apache.org) (209.188.14.144) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 06 Mar 2017 16:49:12 +0000 Received: from svn01-us-west.apache.org (localhost [127.0.0.1]) by svn01-us-west.apache.org (ASF Mail Server at svn01-us-west.apache.org) with ESMTP id A244D3A05B4 for ; Mon, 6 Mar 2017 16:49:11 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1785686 - in /pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel: fdf/FDFField.java interactive/form/PDField.java Date: Mon, 06 Mar 2017 16:49:11 -0000 To: commits@pdfbox.apache.org From: msahyoun@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20170306164911.A244D3A05B4@svn01-us-west.apache.org> archived-at: Mon, 06 Mar 2017 16:49:14 -0000 Author: msahyoun Date: Mon Mar 6 16:49:11 2017 New Revision: 1785686 URL: http://svn.apache.org/viewvc?rev=1785686&view=rev Log: PDFBOX-3596: handle string values from FDF/XFDF import properly; update appearance stream after value update Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFField.java pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDField.java Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFField.java URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFField.java?rev=1785686&r1=1785685&r2=1785686&view=diff ============================================================================== --- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFField.java (original) +++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFField.java Mon Mar 6 16:49:11 2017 @@ -250,6 +250,7 @@ public class FDFField implements COSObje public COSBase getCOSValue() throws IOException { COSBase value = field.getDictionaryObject(COSName.V); + if (value instanceof COSName) { return value; @@ -288,7 +289,7 @@ public class FDFField implements COSObje } else if (value instanceof String) { - cos = COSName.getPDFName((String) value); + cos = new COSString((String) value); } else if (value instanceof COSObjectable) { Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDField.java URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDField.java?rev=1785686&r1=1785685&r2=1785686&view=diff ============================================================================== --- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDField.java (original) +++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDField.java Mon Mar 6 16:49:11 2017 @@ -23,6 +23,9 @@ 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.COSArrayList; import org.apache.pdfbox.pdmodel.common.COSObjectable; import org.apache.pdfbox.pdmodel.fdf.FDFField; import org.apache.pdfbox.pdmodel.interactive.action.PDFormFieldAdditionalActions; @@ -237,10 +240,37 @@ public abstract class PDField implements void importFDF(FDFField fdfField) throws IOException { COSBase fieldValue = fdfField.getCOSValue(); - if (fieldValue != null) + + if (fieldValue != null && this instanceof PDTerminalField) + { + PDTerminalField currentField = (PDTerminalField) this; + + if (fieldValue instanceof COSName) + { + currentField.setValue(((COSName) fieldValue).getName());; + } + else if (fieldValue instanceof COSString) + { + currentField.setValue(((COSString) fieldValue).getString()); + } + else if (fieldValue instanceof COSStream) + { + currentField.setValue(((COSStream) fieldValue).toTextString()); + } + else if (fieldValue instanceof COSArray && this instanceof PDChoice) + { + ((PDChoice) this).setValue(COSArrayList.convertCOSStringCOSArrayToList((COSArray) fieldValue)); + } + else if (fieldValue != null) + { + throw new IOException("Error:Unknown type for field import" + fieldValue); + } + } + else if (fieldValue != null) { dictionary.setItem(COSName.V, fieldValue); } + Integer ff = fdfField.getFieldFlags(); if (ff != null) {