PDFBOX从我的html字段填写文档

时间:2017-11-25 13:26:04

标签: pdf pdfbox

我遇到了PDFBOX的问题。

所以我创建了一个简单的代码:

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错误。

1 个答案:

答案 0 :(得分:1)

所以,最后,问题在你的帮助下解决了。

首先,我必须知道当我“下载”我要从HTML表单中填写的值时,我需要在pdfbox中创建一个字段(表单)并填充它。

其次,我需要将PDType0Font.load()用于特殊字符(UTF 8)。

由于