使用pdfstamper修改现有文档

时间:2017-01-30 05:05:11

标签: java itext pdfstamper

我有一个半静态和半动态的pdf,它可以增长多个页面。我在Adobe LiveCycle中创建了静态部分,并使用itext创建了动态部分。表单的动态部分是一个表,它必须根据跨多个页面的输入进行扩展。该表格在两个部分都有acrofields。

我使用了columntext和pdfstamper将内容添加到现有的pdf中,并且表动态增长,这正常工作。问题是

  1. 在每个表格单元格中,需要添加一个acrofield。我使用pdfcell事件来创建它,但是经过一些谷歌搜索,我只能使用pdfwriter找到代码,但不能使用pdf压模。

  2. 在第一页上,如何限制表格内容,使其不会到页面末尾,我可以在底部插入页码?

  3. 我需要在表格的末尾添加一个签名字段。我如何知道动态表结束的坐标?

  4. 我的动态表部分的代码片段:

    ColumnText column = new ColumnText(stamper.getOverContent(1));
    Rectangle rectPage1 = new Rectangle(792, 270);
    column.setSimpleColumn(rectPage1);
    column.addElement(table);
    int pagecount = 1;
    Rectangle rectPage2 = new Rectangle(792, 540);
    int status = column.go();
    while (ColumnText.hasMoreText(status) ) {
    status = triggerNewPage(stamper, pagesize, column, rectPage2,   ++pagecount);
    }
    
    public int triggerNewPage(PdfStamper stamper, Rectangle pagesize, ColumnText column, Rectangle rect, int pagecount) throws DocumentException {
    stamper.insertPage(pagecount, pagesize);
    PdfContentByte canvas = stamper.getOverContent(pagecount);
    column.setCanvas(canvas);
    column.setSimpleColumn(rect);
    return column.go();
    }
    

0 个答案:

没有答案