【问题标题】:How to get style information of elements in PDF using Apache Tika?如何使用 Apache Tika 获取 PDF 中元素的样式信息?
【发布时间】:2013-10-14 06:41:50
【问题描述】:

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

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

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

【问题讨论】:

  • 你怎么称呼蒂卡? Tika-App CLI?爪哇?什么选项/代码等?
  • 我正在使用 Tika-API,带有默认选项的 java 代码。
  • 那还是比较模糊...你提供的是什么 ContentHandler?

标签: pdf pdfbox apache-tika


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    Example

    v.0.2.0

    【讨论】:

      【解决方案3】:

      使用 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

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

      【讨论】:

        猜你喜欢
        • 2022-09-22
        • 2012-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多