我正在玩Apache Tika从PDF文件中提取文本。我想知道如何使用Apache Tika获取字体大小,文本颜色,特定文本(几个单词)是否为斜体,粗体等样式信息?
甚至可以获得此类信息吗?
另外我想如果有可能使用Apache Tika获取表信息?表格开头,第一行开头,第一个单元格等信息
答案 0 :(得分:4)
使用像PDFTextStream这样的另一个api可能更方便。 Tika从pdf中提取原始文本信息,而PDFTextStream为您提供带有相关信息的结构化文本,如字符编码,高度,文本区域等。
答案 1 :(得分:1)
答案 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>
标记文本。