【问题标题】:How to parse pdfs with java, which where generated with latex (to get the structure like chapters or sections)如何使用 java 解析 pdf,其中使用 Latex 生成(以获得章节或部分的结构)
【发布时间】:2012-10-28 19:14:50
【问题描述】:

我有一个问题。我正在尝试从 pdf 文档中提取结构化文本。由于 pdf 通常没有结构,我想我可以开始解析用乳胶生成的 pdf,它应该有一些结构。

您知道我可以使用 Latex 生成的 pdf 中的任何模式来解析 pdf 吗?

【问题讨论】:

  • 虽然我怀疑你会发现一些非常好的模式,但如果你更严格地定义环境,机会可能会增加。上次我接触 LaTeX 时,从 LaTeX 创建 PDF 有不同的路径:通过 TeX 设备独立文件,即 LaTeX -> DVI -> [PS ->] PDF,直接通过 LaTeX -> PDF。如果有模式,那么对于那些不同的路径,它们肯定是不同的。模式还可能取决于所涉及软件的版本。

标签: java parsing pdf latex structure


【解决方案1】:

查看PDF Box,用于从 PDF 文档中解析文本。或者您可以使用Apache Tika,它提供对多种文档类型的解析,具有标准接口(可能有点矫枉过正)。我不建议尝试手动执行此操作。

【讨论】:

  • 感谢您的快速回复。我看了一下 iText、PDFBox 和 Apache Tika。我能够从 pdf 文件中解析出内容。问题是我想构建类似树的东西,其中内容被结构化为部分和子部分等。
【解决方案2】:

商业解决方案 Infty 阅读器

http://www.sciaccess.net/en/InftyReader/index.html

在试用模式下,识别仅限于一页 每次,每天 5 页。

用终端

  • 快速而肮脏的解决方案,这可能需要大量尝试和错误。

    1. 您的 pdf 必须是可解析的

      • pdftotext 'your-file.pdf' your-file.txt
    2. 您的 pdf 中需要一个模式(例如每张幻灯片的版权)

      • sed -n '/<PATTERN>/{n;n;n;p}' your-file.txt | awk '!x[$0]++' > your-file-structure.txt
      • 更改 {n;n;n;p},因为它当前正在打印 p 下一个 下一个 下一个 n;n;n 模式之后的行
      • awk '!x[$0]++' 删除重复项

【讨论】:

    猜你喜欢
    • 2021-05-30
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2020-02-06
    • 2011-12-26
    • 1970-01-01
    • 2011-04-28
    • 1970-01-01
    相关资源
    最近更新 更多