微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

itext 7 (java) 将新页面上的图像添加到现有 pdf 文档的末尾

如何解决itext 7 (java) 将新页面上的图像添加到现有 pdf 文档的末尾

我是 itext 7 的新手。我有一个包含不同内容文档列表,我想将这些文档合并到一个 PDF 中。内容类型为 PDF、JPG 和 PNG。 我的问题是,一旦合并 PDF 和图像,图像就会覆盖目标 PDF 的已插入内容。 如何将每张图片添加到目标 PDF 的新页面

这是我的代码

<div style="text-align: center;"><a class="info_button" href="">Here is a button-text</a>
</div>
<div style="font-size: 10px; text-align: right; margin-bottom: 20px;">powered by companyname</div>

合并 PDF 只能很好地工作,但每次合并图像时我都会得到这个:

enter image description here

带有粉色的图像被放置在上一个 PDF 的文本上

解决方法

在您的代码中,您通过 Document completeDocument 添加图像,但通过底层 PdfDocument pdfDocument 添加 pdf。因此,completeDocument 不知道添加的 pdf,在其当前页面上继续,并在导入的页面上绘制。

要确保每张图片都添加到当前最后一张之后的新页面上,您必须告诉 completeDocument 移动其当前页面:

case "JPG":
case "PNG":
    ImageData data = ImageDataFactory.create(inhalt);
    Image image = new Image(data);
    completeDocument.add(new AreaBreak(AreaBreakType.LAST_PAGE));
    completeDocument.add(new AreaBreak(AreaBreakType.NEXT_PAGE));
    completeDocument.add(image);
    break;

例如比较 testMergeLikeAndreasHuber 中的测试 testMergeLikeAndreasHuberImprovedCopyPdfsAndImages 及其输出。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。