我能够在现有的pdf文档中插入一个Image,但问题是,
我正在使用以下代码.
List<PDPage> pages = pdDoc.getDocumentCatalog().getAllPages();
if(pages.size() > 0){
PDJpeg img = new PDJpeg(pdDoc, in);
PDPageContentStream stream = new PDPageContentStream(pdDoc,pages.get(0));
stream.drawImage(img, 60, 60);
stream.close();
}
Run Code Online (Sandbox Code Playgroud)
我希望第一页上的图像.
ipa*_*lic 10
PDFBox是一个用于处理PDF文件的低级库.您负责更多高级功能.因此,在此示例中,您将图像(60, 60)从文档的左下角开始.这是做什么的stream.drawImage(img, 60, 60);.
如果要将图像移动到其他位置,则必须计算并提供所需位置(可能来自使用的尺寸page.findCropBox(),或手动输入您的位置).
至于文本,PDF文档元素是绝对定位的.重新流动文本,浮动或类似的东西没有低级功能.如果你写你的文字在图片上方,它会在你的图像上写的.
最后,为了使您的页面变为白色 - 您正在创建新的内容流,因此会覆盖页面的原始页面.您应该附加到已有的流.
相关的是:
PDPageContentStream stream = new PDPageContentStream( pdDoc, pages.get(0));
Run Code Online (Sandbox Code Playgroud)
你应该做的是这样称呼它:
PDPageContentStream stream = new PDPageContentStream( pdDoc, pages.get(0), true, true);
Run Code Online (Sandbox Code Playgroud)
第一个true是是否附加内容,最后true(这里不重要)是否是压缩流.
查看PDFBox源提供的AddImageToPDF示例.
| 归档时间: |
|
| 查看次数: |
18285 次 |
| 最近记录: |