java - 我有一张印章,上面有复选标记和当前日期。我需要使用itext和java将此图章添加到pdf中的所有页面

标签 java itext pdfstamper

我有一张印章,上面有复选标记和当前日期。
我需要使用 itext 和 java 单击按钮将此图章添加到 pdf 中的所有页面。
印章是一种具有文本字段的表单,其中使用 JavaScript 自动输入日期。

PdfReader reader = new PdfReader(src);
PdfReader s_reader = new PdfReader(stationery);
// Create the stamper
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
// Add the stationery to each page
PdfImportedPage page = stamper.getImportedPage(s_reader, 1);
int n = reader.getNumberOfPages();
PdfContentByte background;
for (int i = 1; i <= n; i++) {
    background = stamper.getUnderContent(i);
    background.addTemplate(page, 0, 0);
}
// Close the stamper
stamper.close();
reader.close();
s_reader.close();

现在,如何从 pdf 中获取保存的图章(表单),向其添加当前日期以及如何将此图章添加到 Pdf 文档的所有页面?
需要 JavaScript 吗?

最佳答案

创建 pdf

private static final Font headerFont = new Font(Font.FontFamily.TIMES_ROMAN, 9,
            Font.BOLD, BaseColor.BLACK);
Document document = new Document(PageSize.A4, 20, 20, 120, 50);
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(realPath + "/PdfTable.pdf"));
        writer.setBoxSize("art", new Rectangle(36, 54, 559, 788));
        HeaderFooterOfPdf event = new HeaderFooterOfPdf(batchDate);
        writer.setPageEvent(event);
        document.open();
//to create table
PdfPTable vppTable = new PdfPTable(new float[]{3, 7, 9, 3, 5, 3, 3, 3, 4});
        vppTable.setWidthPercentage(100f);
//pdf table header
        vppTable.addCell(new PdfPCell(new Phrase("Your column name", headerFont)));
        vppTable.addCell(new PdfPCell(new Phrase("Your column name", headerFont)));
        vppTable.setHeaderRows(1);

//to add cell data
PdfPCell slNoCell = new PdfPCell(new Phrase("your data", contentFont));
            slNoCell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            slNoCell.setPaddingLeft(15f);
            vppTable.addCell(slNoCell);

document.add(vppTable);
document.close();

HeaderFooterOfPdf 类

public class HeaderFooterOfPdf extends PdfPageEventHelper{

public HeaderFooterOfPdf(String batchDate){
        this.batchDate = batchDate;
    }

@Override
    public void onOpenDocument(PdfWriter writer, Document document) {
    }

@Override
    public void onStartPage(PdfWriter writer, Document document) {
//do what you want to enter on header
}

@Override
    public void onEndPage(PdfWriter writer, Document document) {
//do what you want to enter on footer
}
}

关于java - 我有一张印章,上面有复选标记和当前日期。我需要使用itext和java将此图章添加到pdf中的所有页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26398371/

相关文章:

java - 重新加载数据的问题

java - Itext 7 分割段落

java - 如何追踪 iText api 升级问题?

itext - 导入 PDF 位置 PDFStamper

java - 在 selenium webdriver 中,我可以点击保存按钮然后页面被保存但是它没有显示这样的元素错误消息无法继续

Java 从 SQL 数组获取结果集失败

java - 使用 ByteArrayOutputStream 时,Itext PdfStamper getOverContent 返回 null

java - iText - 读取复选框值

javascript - GWT 2.6.0 - 未捕获 java.lang.ClassCastException

java - iText unicode 字体问题