我在使用PDFBox 2.0.13的PDFTextStripper提取PDF文本时遇到了问题。更具体地说,过于接近的行被合并在一起。例如:
第一行有文本“signfieldbig”,第二行包含下划线,但是PDFTextStripper将其解析为“s_i_g_n_fi_e_ld_b_ig_ _______”(它将两行合并成了一行)。我尝试了多种设置(不同的lineSeparator、treshold等),但没有帮助。这两行每次都会合并,我不能简单地从文本中删除所有不必要的字符,因为我正在寻找此占位符的位置以创建签名字段。
更新:我刚刚意识到造成这个问题的原因-在原始文件中,并没有两个由换行符分隔的正常行,而是一个带有下划线和手动放置的文本区域“placeholder”的行。但是,PDF查看器(将其视为文本)或其他PDF库(iText 2.x)将其解析为两个单独的行...
更新:我刚刚意识到造成这个问题的原因-在原始文件中,并没有两个由换行符分隔的正常行,而是一个带有下划线和手动放置的文本区域“placeholder”的行。但是,PDF查看器(将其视为文本)或其他PDF库(iText 2.x)将其解析为两个单独的行...
PDFTextStripper
忽略了换行符。原始的 Word 文件中,存在换行符(表示有两行文本),在转换为 PDF 文件后,有两行文本,在文本查看器中查看 PDF 文件时显示为两行,即使使用另一个 PDF 库(旧版 iText 2.x)解析 PDF 文件也会显示为两行...只有 PDFBox 将它们合并在一起。为什么它忽略了换行符却像 OCR 一样工作呢? - mi0setSortByPosition(false)
可能会有所帮助。 - mkl