首页 文章

iText 中的图像定位 - Java

提问于
浏览
5

我正在尝试阅读一个 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 回答

  • 2

    您应该使用 PdfStamper 而不是 PdfWriter 和导入的页面。您的方法会抛弃所有交互式内容。你也可以在那里使用 sorifiend 的想法。

    要确定给定页面上文本的结束位置,请查看动作中的 iText,第 2 版示例ShowTextMargins,它解析 PDF 并广告显示文本边距的矩形。

  • 7

    试试这个:

    首先得到图像需要去的地方的 location/co-ords,然后简单地将下面的第二行添加到代码中,以便将图像插入到“X,Y”的位置

    Image image = Image.getInstance(String RESOURCE);
    image.setAbsolutePosition(X, Y);
    writer.getDirectContent().addImage(image);
    

    看一看工作示例:http://itextpdf.com/examples/iia.php?id=70

相关问题