0
我遇到了PDFBOX的問題。PDFBOX從我的html字段填充文檔
所以我創建了一個簡單的代碼:
public class DelegationsPdf{
public Delegations getPDF(Delegations delegations) throws IOException{
PDDocument delegation = new PDDocument();
PDDocumentCatalog catalog = delegation.getDocumentCatalog();
PDAcroForm pdAcroForm = catalog.getAcroForm();
PDPage page = new PDPage();
delegation.addPage(page);
page = delegation.getPage(0);
PDPageContentStream content = new PDPageContentStream(delegation, page);
content.beginText();
content.setFont(PDType1Font.TIMES_ROMAN, 20);
content.setLeading(14.5f);
content.newLineAtOffset(275, 750);
content.showText("Delegations");
content.endText();
content.beginText();
content.newLineAtOffset(50 ,650);
content.setFont(PDType1Font.TIMES_ROMAN, 12);
content.showText("Worker:");
content.endText();
// FILL THE FIELD
content.beginText();
PDField name = pdAcroForm.getField(delegations.getName());
content.newLineAtOffset(100 ,650);
content.setFont(PDType1Font.TIMES_ROMAN, 12);
pdAcroForm.getFields().add(name);
content.endText();
content.close();
delegation.save("C:/delegation.pdf");
delegation.close();
return delegations;
}
所以請妥善告訴我爲什麼下注釋字段代碼「/加場」不工作?它從我的授權類獲取關於名稱的信息。你可以幫我嗎?當我運行這個並單擊按鈕時,我得到NULL的錯誤。
當然它是空的。 'pdAcroForm.getField(delegations.getName());'不會返回任何東西,因爲你的文檔沒有任何字段。順便說一句你的代碼很混亂。一個PDDocument對象應該被命名爲「document」或「delegationDocument」,而不是「delegation」。 PDField應該被稱爲「字段」而不是「名稱」。 –
我建議你看一下https://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/interactive/form/,它展示瞭如何創建一個表單。 –
哦,是的,我發現我必須添加字段。名字被我改變了,因爲我想知道什麼是錯的。 所以..首先,當我創建一個模板時,我需要創建表單並將其添加到那裏(從apache svn上的示例 - FillFormField?)。但是我怎樣才能添加每個領域的位置? – Kondziowsky