-->

Java PDFBox 向PDF文件中写入图片

2021-02-01 10:55发布

问题:

需求:向已有的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");
}

}

回答1:

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

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



标签: java pdfbox