我正在尝试阅读一个 PDF 并将其数据复制到另一个 PDF 中。第一个 PDF 包含一些文本和图像,我希望在第二个 PDF 中写出一个图像,其中文本 ends(which 基本上是 PDF 文件的末尾)。现在它只是打印在顶部。我怎样才能做出这个改变?
PdfReader reader = null;
reader = new PdfReader(Var.input);
Document document=new Document();
PdfWriter writer = null;
writer = PdfWriter.getInstance(document,new FileOutputStream(Var.output));
PdfImportedPage page = writer.getImportedPage(reader, 1);
reader.close();
document.open();
PdfContentByte cb = writer.getDirectContent();
// Copy first page of existing PDF into output PDF
document.newPage();
cb.addTemplate(page, 0, 0);
// Add your new data / text here
Image image = null;
image = Image.getInstance (Var.qr);
document.add(image);
document.close();
2 回答
您应该使用 PdfStamper 而不是 PdfWriter 和导入的页面。您的方法会抛弃所有交互式内容。你也可以在那里使用 sorifiend 的想法。
要确定给定页面上文本的结束位置,请查看动作中的 iText,第 2 版示例ShowTextMargins,它解析 PDF 并广告显示文本边距的矩形。
试试这个:
首先得到图像需要去的地方的 location/co-ords,然后简单地将下面的第二行添加到代码中,以便将图像插入到“X,Y”的位置
看一看工作示例:http://itextpdf.com/examples/iia.php?id=70