2014-07-18 107 views
1

我使用iText通過我的應用程序動態創建一些PDF文件,我需要使用多個組件(TextField,CheckBox,RadioButtons等),然後將值提交給服務器。但是,其中一個要求是,用戶需要能夠選擇和發送文件以及其他值。我沒有找到這方面的具體組成部分,所以我要求在這種情況下提供一些幫助。通過iText PDF發送文件到服務器?

有沒有辦法創建某種輸入文件,文件選擇器等,並將其附加到生成的PDF文件?然後將這個選定的文件發送到服務器?

感謝

回答

0

這是官方文檔中的例子我book的第9章FdfServlet解釋,更具體。但是,在本例中,我們將文件選擇字段添加到現有PDF中,因此我舉例說明了從頭開始創建文檔時如何創建這樣的字段:FileSelectionExample

文件選擇字段是與其他文本字段一樣創建,但必須使用setOptions()方法設置標誌。如果你想有一個文件選擇出現,你也必須添加JavaScript操作:

TextField file = new TextField(writer, new Rectangle(36, 788, 559, 806), "myfile"); 
file.setOptions(TextField.FILE_SELECTION); 
PdfFormField upload = file.getTextField(); 
upload.setAdditionalActions(PdfName.U, PdfAction.javaScript(
      "this.getField('myfile').browseForFileToSubmit();", writer)); 
writer.addAnnotation(upload); 

在完整的例子,我也加入了第二場,並與browseForFileToSubmit()方法選擇文件後,我將焦點設置到那個其他領域。我這樣做是因爲文件名只有在文件選擇字段失去焦點後才能看到。

+0

布魯諾,謝謝你的回答,它真的幫助我在這個領域。但是,我在服務器端獲取文件時遇到了一些問題。我懷疑這是提交按鈕的問題,甚至是創建的PDF。我目前使用的提交如下:submit.setAction(PdfAction.createSubmitForm(url,null,0));但文件字段返回爲空。有什麼建議麼?謝謝 – user2230377

+0

事實上,它現在起作用了。我更改了一個更新的庫,我嘗試了這個例子。現在唯一的問題是如何獲取文件名,但我認爲它是可管理的。謝謝! – user2230377

相關問題