首页 新闻 会员 周边

Java PDFBox 向PDF文件中写入图片

0
悬赏园豆:20 [已解决问题] 解决于 2021-02-01 11:18

需求:向已有的PDF文件中的指定位置写入一张图片。
问题:图片写入成功,但是图片所在的页的文字全部消失了,只剩下写入后的图片。
已知:写入图片的位置有足够大的空白处。
期望:写入图片不会影响到原有的内容。

public class Test {
public static void main(String[] args) throws Exception {

    File file = new File("D:\\1\\test.pdf");
    PDDocument doc = PDDocument.load(file);
    PDPage myPage = doc.getPage(0);

    String imgFileName = "D:\\1\\test.jpg";
    PDImageXObject pdImage = PDImageXObject.createFromFile(imgFileName, doc);

    int iw = pdImage.getWidth();
    int ih = pdImage.getHeight();

    float offset = 20f;

    try (PDPageContentStream cont = new PDPageContentStream(doc, myPage)) {

        cont.drawImage(pdImage, offset, offset, iw, ih);
    }

    doc.save("D:\\1\\test2.pdf");
}

}

你学会了吗的主页 你学会了吗 | 菜鸟二级 | 园豆:202
提问于:2021-02-01 10:46
< >
分享
最佳答案
0

找到了解决办法,使用追加而不是默认的覆盖方式。

PDPageContentStream cont = new PDPageContentStream(doc, myPage,PDPageContentStream.AppendMode.APPEND,false,false);

你学会了吗 | 菜鸟二级 |园豆:202 | 2021-02-01 11:18
其他回答(1)
0

推荐Free Spire.PDF for Java,它也能够支持将图片插入到PDF文档中的指定位置,代码操作简单,效果也很好,有需要的可以试试。https://www.e-iceblue.cn/pdf_java_image_shapes/add-image-in-pdf-file-using-java.html 此链接是他们官网上的对应代码教程,写得很详细,同时还有很多其他操作PDF文档的功能和示例。

Tina_Tang | 园豆:346 (菜鸟二级) | 2021-06-01 11:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册