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 项目。
Apache Tika 是其他库的集合,包括 PDFBox。 Tika On Dot Net 目前有 PDFBox 1.8.10,还有一个 Nuget 包,可以轻松添加到您的项目中。
我有一个项目超过了截止日期 1.5 周,因为所有这些问题都是在中途发现的,需要完全重写。请注意。
我在 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 项目。
Apache Tika 是其他库的集合,包括 PDFBox。 Tika On Dot Net 目前有 PDFBox 1.8.10,还有一个 Nuget 包,可以轻松添加到您的项目中。
我有一个项目超过了截止日期 1.5 周,因为所有这些问题都是在中途发现的,需要完全重写。请注意。