0

TextExtractor在 PDFClown 中使用该类时遇到问题,出现空白空格也称为“任意换行符”。这些字符是随机嵌入的,但在 Acrobat Reader 中会被忽略。因此,存在这些字符的行将在 Acrobat 中显示为单行,但如果我'\n'TextExtractor.ToString(...).

看来 PDF 小丑只是简单地接受任何空白字符并将其转换为单个空格,或' '. 有没有办法绕过这种转换,而是提取原始字符?

4

1 回答 1

1

经过更多研究,PDFClown 库似乎有很多错误。有几个问题:

  • 将大多数形式的空格字符转换为单个普通空格字符。
  • 插入空格而不是换行符。
  • 如果您尝试使用提供的覆盖来插入您自己的空格或换行符,则提取数组中字符到每个单独字符的框的内部映射将被破坏。
  • 无法正确解码所有嵌入字体。
  • 由于它无法正确解码嵌入的字体,它会默默地从提取的文本中省略字符。
  • 无法可靠地处理连字或连字分解。通常从提取的文本中默默地完全删除。

要直接解决我遇到的问题,您可以通过检查它们的边界矩形以查看它们是否与其他非空白字符重叠来检测并删除这些“错误”空白字符,但考虑到库的所有其他问题,我的建议是使用改用 PDFBox。

如果您使用 .NET 并且想使用PDFBox,则可以使用Tika On Dot Net,这是通过 IKVM 引入 .NET的Apache Tika项目。

Apache Tika 是其他库的集合,包括 PDFBox。Tika On Dot Net 目前有 PDFBox 1.8.10,还有一个 Nuget 包,可以轻松添加到您的项目中。

我有一个项目比截止日期提前了 1.5 周,因为所有这些问题都是在中途发现的,需要完全重写。只是一个抬头。

于 2016-05-24T19:06:17.700 回答