2012-02-06 25 views
4

iTextで既存のPDFを修正しようとしています。私のコードは現在、テキストフィールドをうまく編集していますが、チェックボックスをチェックしたり、チェックを外すことはできません。iTextのチェックボックスに記入してください。

   PdfReader reader = new PdfReader(INPUTFILE); 
       int n = reader.getNumberOfPages(); 

       PdfStamper filledOutForm = new PdfStamper(reader, new FileOutputStream("WrittenForm.pdf")); 

       AcroFields fields = filledOutForm.getAcroFields(); 

       //not working 
       fields.setField("checkbox", "On"); 

       //working 
       fields.setField("textfield1", "infinite road"); 
       fields.setField("textfield2", "jayboy"); 


       filledOutForm.close(); 

どのようなアイデアですか?

String states[] = fields.getAppearanceStates("checkbox"); 

//prints array values - returns 'yes, no' 

System.out.println(Arrays.toString(states)); 

答えて

9

I saw hereは、あなたが使用して利用可能な状態をチェックする必要があるとして:

String[] states = fields.getAppearanceStates("checkbox"); 

そしてこのString[]

+0

非常に役に立ちます。 –

-2
filledOutForm.setFormFlattening(true); 
のオプションに応じて状態を設定を解決し

+2

このコードスニペットは問題を解決するかもしれませんが、[説明を含む](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)は本当にあなたの投稿の質を向上させるのに役立ちます。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。 – Bono

0
fields.getAppearanceStates("checkbox"); 

は、何らかの理由で私のチェックボックスの一部で正しい値を返しますが、これは空の配列を返します。 Acrobat Proのフォームを見ると、setFieldに送信する適切な文字列は、フィールドプロパティの[オプション]タブの[エクスポート値]と呼ばれています。あなたもそれを変更することができます。

関連する問題