2017-06-09 14 views
1

私はPDFBoxの値をPDFで設定するためにPDFBoxライブラリを使用しています。私はリストボックスに値を設定しようとしていてPDFBoxのPDListBoxに複数のオプションを設定するにはどうすればよいですか?

コードブロックは、結果で

public class App { 
public static void main(String[] args) { 
    App app = new App(); 
    app.test(); 
} 
public void test(){ 
    try { 
     InputStream resource = getClass().getResourceAsStream("/2.pdf"); 
     PDDocument pdfDocument = PDDocument.load(resource); 
     PDDocumentCatalog docCatalog = pdfDocument.getDocumentCatalog(); 
     PDAcroForm acroForm = docCatalog.getAcroForm(); 
     PDListBox listBox = (PDListBox) acroForm.getField("multiple_listbox"); 
     List<String> list = Arrays.asList("option 2", "option 1"); 
     System.out.println("Set value in listBox: " + list); 
     listBox.setValue(list); 
     System.out.println("Get Value from list box: " + listBox.getValue()); 
     pdfDocument.save("pdfupdate.pdf"); 
     pdfDocument.close(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

それは最初の値のみがPDFでList<String>から選択されることを示します。ここ
チェック結果:私はPDFで選択した複数の値を設定するにはどうすればよい


PDFBoxバージョン:2.0.6
ソースPDF:https://www.dropbox.com/s/5cbicbuwu0kjwlq/2.pdf?dl=0

+1

悪いニュース:ソースコードに「複数選択が設定されている場合、複数項目を強調表示する」というソースコードがあります。つまり、まだ実装されていません。回避策は、生成されたPDFがAdobe Readerのみで使用されている場合は、 'acroForm.setNeedAppearances(true)'を呼び出します。 –

+0

良いニュース:私は問題に取り組んでいます:https://issues.apache.org/jira/browse/PDFBOX-3828 –

+0

スナップショットでテストすることができます:https://repository.apache.org/content/groups /snapshots/org/apache/pdfbox/pdfbox-app/2.0.7-SNAPSHOT/ –

答えて

2

これは2.0.6までのPDFBoxのバグであり、問​​題PDFBOX-3828で修正されました。修正はバージョン2.0.7で、夏の終わり/秋2017にリリースされる予定です。待てない人はsnapshot version(Webページの一番下)を取得してください。

+0

あなたは私にPDFBoxバージョン2.0.7の正確なリリース日を教えてくれますか? –

+0

いいえできません。過去(https://archive.apache.org/dist/pdfbox/)に基づいて、リリースは2〜4ヶ月ごとに行われています。私たちは仕事後に余暇にこれを行う小さなチームであることをご理解ください。私たちの中には家族がいて、病気になったり、休暇に出たりするなど、リリースをすることは単なるjarファイルのコピーだけではありません。スナップショットを使用したくない場合は、2.0.6のソースコードを使用して変更を加え(問題のリンクを参照)、再構築してください。 P.S.緑色のチェックマークをクリックして、回答が正しいことを確認してください。 –

関連する問題