2017-05-26 7 views
3

私は、既存のPDFにjavaのpdfスタンパーを使って書き込もうとしていますが、何らかの理由でpdfにテキストが描画されているように見えるチェックボックスがあります。Java PDFスタンパーはチェックボックスの下に書いています

over.beginText(); 
over.setFontAndSize(bf, 11); 
over.setTextMatrix(169, 322); 
over.showText("X"); 
over.endText(); 
+0

どこからやり直しますか? – Jan

+0

コードを更新しました。他のコードを追加する必要があるかどうかを教えてください。 – King

+0

今のところよく見えます。チェックボックスの位置にXを置くと(その下にのみ表示されます)、そのチェックボックスを選択したいのと同じように聞こえるでしょうか? – Jan

答えて

1

まず第一に:あなたのPDFでのフォームフィールドの上に

反復し、設定する有効な値を見つけるテキストを描画するための

PdfReader reader = new PdfReader(Testing.getImagePath() + "form.pdf"); 
File dir = new File(Testing.getResourcePath() + id + "/"); 
String destination = Testing.getResourcePath() + id + "form" + id + ".pdf"; 
File exist = new File(destination); 

dir.mkdirs(); 
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(destination)); 
stamper.setFormFlattening(true); 
PdfContentByte over; 
over = stamper.getOverContent(1); 

コード:PDFファイルを読むための

コード:

 AcroFields form = stamper.getAcroFields(); 
     for(Entry<String, Item> field : form.getFields().entrySet()) { 
      System.out.println(field.getKey() + ": " + field.getValue()); 
      String[] values = form.getAppearanceStates(field.getKey()); 
      StringJoiner sb = new StringJoiner(","); 
      for (String value : values) { 
       sb.add(value); 
      } 
      System.out.println("Possible Options: " + sb.toString()); 
     } 

これで許容値を設定してチェックボックスを選択できるようになりました:

 form.setField("myCheckbox", "myYesValue"); 
+0

エラーの取得 - 「このAcroFieldsインスタンスは読み取り専用です。 – King

+1

AcroFieldsはどこから手に入りましたか? Stamper /作家または読者から(この場合、彼らは読取り専用になります)。編集中のコードをあなたの質問に共有しますか? – Jan

+0

ええ私はpdfからidを出力するために別のコードを使い、スタンパーの代わりにリーダーから読み取っていました。ありがとう! – King

関連する問題