PDF itext TOC 生成
我必须将多个 PDF 文档合并为一个 PDF 文档。除此之外,我还必须生成目录。原始文档将包含具有特定样式的文本(例如 H1)。此特殊文本成为目录的一部分。
曾使用 iText 合并多个 PDF 文件。我无法找到示例/API 解析文档以查找具有样式 H1 的所有内容。 生成 TOC 是下一个挑战。
I have to merge multiple PDF documents into a single PDF document. Besides this, I have to generate TOC. The original documents will contain text with a specific style (say H1). This special text becomes part of TOC.
Have used iText for merging multiple PDF files. I am unable to find example/API on parsing the document to find all the contents having style H1.
Generating TOC is next challenge.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你不知道。 PDF 没有样式。它们具有“当前图形状态”,其中包括:
所以首先你必须跟踪所有这些东西(iText 主要可以为你做)。然后,您必须确定“H1”文本有多大,并锁定该尺寸屏幕尺寸中的所有文本,同时考虑 CTM、文本矩阵和字体大小(iText 会再次为您做这件事,IIRC) )。
为了让像您这样的人的生活更加精彩,您正在查看的文本完全有可能根本不是文本。它可能是路径,也可能是位图……此时您需要 OCR,而且我认为您不会通过 OCR 获得太多大小信息。
您需要编写一个 TextRenderListener 来确定给定文本片段的最终大小(以及它是否是最后一段文本的一部分)并过滤掉所有太小的内容。然后,您将根据找到的文本构建目录。
You don't. PDFs don't have styles. They have "current Graphic State", which includes:
So first you have to track all this stuff (which iText can mostly do for you). Then you have to determine how big "H1" text is, and latch on to all the text that is in that size screen size, taking the CTM, text matrix, and font size into account (which iText will do for you again, IIRC).
And just to make life more exciting for folks like yourself, it's entirely possible that the text you're looking at isn't text at all. It could be paths, or a bitmap... at which point you need OCR, and I don't think you'll get much in the way of size info with OCR.
You'll need to write a
TextRenderListener
that determines the final size of a given piece of text (and whether or not its a part of the last piece) and filter out all the stuff that's too small. You'll then build your TOC based on the text you find.