如何解决 PDFBox 没有 unicode 映射错误?

问题描述 投票:0回答:2

我有一个现有的 PDF 文件,我想使用 python 脚本将其转换为 Excel 文件。目前正在使用PDFBox,但是出现多个类似以下错误:

org.apache.pdfbox.pdmodel.font.PDType0Font toUnicode
No Unicode mapping for CID+24 (24) in font DroidSansFallback

我可以使用 pdfbox 或其他 java/python 脚本替换 droidsansfallback 字体或将字体替换为其他字体吗? 请帮忙。

java python unicode pdfbox
2个回答
0
投票

使用打印将 PDF 转换为 Microsoft pdf 文件并使用它。它将处理所有字体


0
投票

我最近在解析 PDF 中的文本时遇到了类似的情况

警告:AEDNQJ+Palatino-BoldItalic+2 字体中没有 112 (142) 的 Unicode 映射

这导致输出结果中缺少某些字符(例如 á)

M_s alta que los cielos,m_s honda que la mar,

(在文本中应包含字符 <á> 的位置添加下划线)

修复方法是重新生成嵌入所有字体的 PDF(例如 PDF/A),以便所有字体在文本提取时可用。

示例:

public String parsePdf(InputStream pdfStream) {

    try (PDDocument pdfDoc = PDDocument.load(pdfStream)) {
        
        PDFTextStripper textStripper = new PDFTextStripper();
        return textStripper.getText(pdfDoc);

    } catch(IOException e) {
        throw new ParsingException("Unable to load input pdf stream", e);
    }
}

Más alta que los cielos, más honda que la mar,

您可以使用 acrobat 或 macos 中的预览工具将现有 PDF 转换为 PDF/A。

© www.soinside.com 2019 - 2024. All rights reserved.