PDFClown中的空空格转换

Empty whitespace conversion in PDFClown

我在 PDFClown 中使用 TextExtractor class 时遇到问题,出现空白 space 也称为 "discretionary newline"。这些字符随机嵌入但在 Acrobat Reader 中被忽略。因此,如果我将 '\n' 指定为 TextExtractor.ToString(...).[=14 中的换行符,则存在这些字符的行将在 Acrobat 中显示为单行,但在提取文本时会分成多行=]

看来 PDF clown 只是将任何白色 space 字符转换为单个 space 或 ' '。有没有办法绕过这种转换,从而提取原始字符?

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

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

直接回到我遇到的问题,您可以检测并删除这些 "false" 白色 space 字符,方法是检查它们的边界矩形,看看它们是否与其他非白色space 重叠] 字符,但考虑到库的所有其他问题,我建议改用 PDFBox。

如果您正在使用 .NET 并且想要使用通过 IKVM 转移到 .NET 的 PDFBox, you can use Tika On Dot Net which is the Apache Tika 项目。

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

我有一个项目超过了截止日期 1.5 周,因为所有这些问题都是在中途发现的,需要完全重写。请注意。