itextpdf : 合并 pdf 文件

itextpdf : merge pdf files

itextpdf 是否可以像这样合并两个 pdf 文件

  1. pdf-file-1: 1 页 3 行文字

  2. pdf-file-2: 1 页 9 行文字

结果:

pdf-file-3: 1 页 12 行文本,pdf-file-1pdf-file-2

的合并结果

Is it possible with itextpdf to merge two pdf files like this...

正如 Bruno 在他的评论中解释的那样,PDF 通常对它们显示的文本几乎一无所知,它们对章节、部分、段落、专栏等一无所知。它们甚至不一定知道行文本;我们认为的一条线可能是在一些抽象坐标处绘制的小块文本的松散集合。

因此,从相关 PDF 的内部来看,您的问题甚至可能没有意义。

不过,如果您重新制定它,一些类似的问题确实有意义,例如

Is it possible with iTextPdf to merge two pdf files like this

  1. pdf-file-1: 1 page with content which only fills a small part of the page, e.g. only the top half

  2. pdf-file-2: 1 page also with content which only fills a small part of the page, e.g. only the top half

results :

pdf-file-3: 1 page with the content of pdf-file-1 at the top and that of pdf-file-2 right below it, merging results of pdf-file-1 and pdf-file-2

这确实是可能的,尤其是使用iText 是可能的。虽然此功能不是 iText 的显式功能,但 iText 确实提供了一个低级 API,它可以很容易地实现此类合并功能,例如:

  • 中的 PdfDenseMergeTool 完全按照上面描述的方式进行操作,它将尽可能多的源页面内容放在目标页面上;和
  • 中介绍的 PdfVeryDenseMergeTool 做得更多,它甚至拆分源页面内容以将更多内容压缩到目标页面上。

但请注意,这些 类 并没有经过多年的使用和改进而变得坚固,它们只是概念证明,某些极端情况仍需考虑。

特别是他们只考虑实际页面内容,而不是注释或类似的活动内容。另一方面,他们甚至将绘制在空白页面上的白色矩形视为内容。每个页面最初填充为白色的 PDF 被认为是完全完整的,尽管实际上是可见的