我有一张印章,上面有复选标记和当前日期。
我需要使用 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/