PDF itext TOC生成

时间:2011-04-13 10:04:24

标签: pdf itext tableofcontents

我必须将多个PDF文档合并为一个PDF文档。除此之外,我还要生成TOC。原始文档将包含具有特定样式的文本(例如H1)。此特殊文本成为TOC的一部分。

使用iText合并多个PDF文件。我无法在解析文档时找到示例/ API以查找样式为H1 的所有内容。 生成TOC是下一个挑战。

1 个答案:

答案 0 :(得分:0)

你没有。 PDF没有样式。他们有“当前的图形状态”,其中包括:

  • 当前转换矩阵(CTM)。
  • stroke&填充颜​​色
  • 剪切路径
  • font&大小
  • 其他文本状态填充(字符间距,字间距,前导,文本渲染模式......)
    • 包括与CTM结合的单独文本转换矩阵。

首先,你必须跟踪所有这些东西(iText主要为你做的)。然后你必须确定“H1”文本的大小,并锁定所有大小屏幕大小的文本,考虑CTM,文本矩阵和字体大小(iText将再次为你做这些,IIRC )。

只是为了让像你这样的人生活更加精彩,你所看到的文字完全有可能根本不是文字。它可能是路径,也可能是位图......此时你需要OCR,我认为你不会对OCR的尺寸信息有太大影响。

你需要写一个TextRenderListener来确定给定文本的最终大小(以及它是否是最后一篇文章的一部分)并过滤掉所有太小的东西。然后,您将根据找到的文本构建TOC。