Java 如何在现有pdf中追加数据?
我试图在Java应用程序中使用iText 7向PDF添加一些数据 我无法在追加模式下成功打开pdf。我在网上寻找了一些解决方案,但都与iText5有关(并且使用了不再存在的类)Java 如何在现有pdf中追加数据?,java,pdf,itext,itext7,Java,Pdf,Itext,Itext7,我试图在Java应用程序中使用iText 7向PDF添加一些数据 我无法在追加模式下成功打开pdf。我在网上寻找了一些解决方案,但都与iText5有关(并且使用了不再存在的类) 我能做什么?具体取决于您想要什么: 合并两个文档: 在文档末尾添加内容: 与之前类似,您可以创建一个新文档(到字节输出流),并将两者合并在一起 向现有页面添加内容: 这很难做到,因为这通常需要重新布局文档,目前没有PDF引擎可以做到这一点 在文档中填写表格: 向文档添加附件: 额外(3): 将内容添加到PDF中,在
我能做什么?具体取决于您想要什么:
与之前类似,您可以创建一个新文档(到字节输出流),并将两者合并在一起
这很难做到,因为这通常需要重新布局文档,目前没有PDF引擎可以做到这一点
将内容添加到PDF中,在现有内容的中间是非常困难的。 为了解原因,以下是有关如何在内部构建PDF文档的一些信息:
- PDF文档包含供查看器呈现的指令,而不是纯文本
- 指令及其参数分组在“对象”中
- 可以压缩对象以减小文件大小
- PDF文档保留所有这些对象的内部索引,称为外部参照表
- PDF文档中的索引使用字节偏移量告诉渲染器可以在何处(文件中)找到对象
还有一个事实是PDF不包含布局信息。如果您添加了一些新内容,而现有内容需要移动,则需要布局信息(什么对象组成一个句子?哪些句子组成一个段落?)。只有拥有布局信息,你才能明智地重新布局文档。它应该是第3个,这很难吗?如果我得到最后一页的文本,将其删除,然后将新文本添加到PDF页面,并将其附加到文档底部?@thenoobdeveloper这是noob无法做到的,因为他不懂PDF,“一个专家不会这么做,因为他非常了解PDF。”布鲁诺洛瓦吉说phrased@JorisSchellekens我们可以把这个短语放在一个框架里,挂在办公室的墙上:D