如何从PDF文件中读取日文字符?

3

我正在使用C#中的IText7解析一个包含日语字符的PDF文件,如下所示:

    public static string ExtractTextFromPDF(string filePath)
    {
        var pdfReader = new PdfReader(filePath);
        var pdfDoc = new PdfDocument(pdfReader);
        var sb = new StringBuilder();
        for (int page = 1; page <= pdfDoc.GetNumberOfPages(); page++)
        {
            var strategy = new SimpleTextExtractionStrategy();
            sb.Append(PdfTextExtractor.GetTextFromPage(pdfDoc.GetPage(page), strategy));
        }
        pdfDoc.Close();
        pdfReader.Close();
        return sb.ToString();
    }

但我遇到了异常:

iText.IO.IOException:“找不到CMap iText.IO.Font.Cmap.UniJIS-UTF16-H。”

我已经搜索了如何添加此内容的解决方案,但是对于日语字符,我没有找到有效的方法。如果有其他更适合的库也可以。有什么帮助吗?

谢谢。


你是否已经包含了 com.itextpdf:font-asian 依赖? - mkl
谢谢@mkl,我在搜索时没有安装该依赖项或找到任何参考资料,但这确实解决了问题,现在我的原始代码可以正确解析pdf文件。请将您的建议写成答案,我会将其标记为解决方案。谢谢! :) - jsmars
1个回答

7

特别针对CJK脚本的编码CMaps在一个单独的包中。

对于.Net,请通过Nuget使用itext7.font-asian

对于Java,请通过Maven使用com.itextpdf:font-asian

该包的存在对于Java版本.Net版本更加明显。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接