4

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

甚至有可能获得这种类型的信息吗?

另外我想是否可以使用 Apache Tika 获取表信息?表格开头、第一行开头、第一个单元格等信息。

4

3 回答 3

3

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

于 2014-02-20T08:13:42.717 回答
1

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

例子

v.0.2.0

于 2018-01-27T11:44:22.907 回答
0

使用 mupdf 将 pdf 转换为 Scalable Vector Graphics (svg) xml 格式将为您提供所需的信息。

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

或在这里: 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

在我见过的所有情况下,每行文本的字体、大小、样式、颜色和页面坐标都是相同的。除了包含在 svg 文件中的下划线和删除线,<paths>与文本位于同一坐标系中。因此,您可以开发一些代码来解析 xml 并使用相应的<u> </u><del> </del>相应的标记文本。

于 2018-07-05T20:06:59.057 回答