如何使用Apache Tika获取PDF格式的元素样式信息?

时间:2013-10-07 15:48:50

标签: pdf pdfbox apache-tika

我正在玩Apache Tika从PDF文件中提取文本。我想知道如何使用Apache Tika获取字体大小,文本颜色,特定文本(几个单词)是否为斜体,粗体等样式信息?

甚至可以获得此类信息吗?

另外我想如果有可能使用Apache Tika获取表信息?表格开头,第一行开头,第一个单元格等信息

3 个答案:

答案 0 :(得分:4)

使用像PDFTextStream这样的另一个api可能更方便。 Tika从pdf中提取原始文本信息,而PDFTextStream为您提供带有相关信息的结构化文本,如字符编码,高度,文本区域等。

答案 1 :(得分:1)

我使用https://pdfclown.org进行流文本块和字体高度提取:

Example

v.0.2.0

答案 2 :(得分:0)

使用mupdf将pdf转换为可缩放矢量图形(svg)xml格式将为您提供所需的信息。

在此处下载mupdf工具: http://artifex.com/developers-mupdf-download/mupdf-download-resources/ 并选择GNU AGPL许可

或者在这里: https://mupdf.com/downloads/

详细信息: https://mupdf.com/index.html

下载可执行文件后,应将mupdf可执行文件的路径添加到PATH环境变量中。

然后您可以从命令行界面(CLI)使用以下内容转换pdf(注意-每页将有一个单独的svg文件):

mutool convert -F svg -O text=text -o "your_pdf_pg.svg" your_pdf.pdf

更多CLI详细信息: https://mupdf.com/docs/manual-mutool-convert.html

在我所看到的所有情况下,信息相同的每一行文本的字体,大小,样式,颜色和页面坐标。除了下划线和删除线以外,这些下划线和删除线在文本所在的坐标系中以<paths>的形式包含在svg文件中。因此,您可以开发一些代码来解析xml,并分别使用相应的<u> </u><del> </del>标记文本。