【问题标题】:Reading PDF text as hierarchical data将 PDF 文本作为分层数据读取
【发布时间】:2018-06-14 13:38:26
【问题描述】:

我正在尝试使用 c# 读取 PDF 文件,这种典型 PDF 的格式是带有页面标题、子标题和内容等的内容。数据更像是分层的,而不是扁平的。

我实际上想读取分层数据并如下所示:

我尝试了 iText Sharp,但我只能将每一页作为普通文本阅读,并且文本包含页眉、页脚、页码等,这对我来说是多余的。

有没有办法可以将 PDF 页面作为分层页面/内容阅读?

【问题讨论】:

  • 很难说,因为您没有提供代码或示例输入。
  • 您的 PDF 是带标签的 PDF 吗?如果没有,您的 PDF 不知道其内容中的任何层次结构。如果它是正确标记的 PDF,您可以轻松地将内容提取为 XML 文件。请注意,我假设您使用的是旧版本的 iText,因为您仍然在谈论“iTextSharp”。当我们两年多前迁移到 iText7 时,该名称已被“iText for .NET”取代。
  • 将第 2 页作为第 1 页的子项有意义吗?
  • @mkl 是的,正如我在我的问题和图片中提到的那样,这是有道理的,数据将以分层格式表示。
  • @BrunoLowagie 感谢您的洞察力,PDF 可能会或可能不会被标记,但让我有更多的选择来探索并可能引导我找到解决方案。是的,你是对的,虽然我在我的 VS2017 NuGet 项目中使用 iText 7/5,但我不确定我为什么说 iTextSharp,可能是我的大脑仍然是老派:)。顺便说一句,iText5/7 是开源的吗?你知道是否可以使用开源工具来阅读 PDF 吗?

标签: c# .net pdf itext


【解决方案1】:

没有。你会得到最接近的是'pdf to html'然后你可以阅读html标签。

你想要文本和布局。为大量解析做准备,“他们为什么要那样做??”时刻:)

对于大多数事情,我可以使用原始文本。它可能会被 LF 而不是 CRLF 拆分,但这很好。

【讨论】:

  • 感谢您的想法。我可以使用 iText5 或 iText7 将 pdf 转换为 html 吗?还是我应该使用任何其他软件?反正我现在正在检查。
  • 您的文件是否已正确标记?这决定了您问题的答案。
  • 很遗憾,我无法确定目标 PDF 是否被标记。
  • 别着急,我也不知道他说的'tagged'是什么意思,我也和电脑扯了很久。只是带有某种库的pdf2html,然后解析html。这将是一个混乱和努力,但它会工作:)
猜你喜欢
  • 1970-01-01
  • 2017-08-15
  • 2014-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多