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

jsm*_*ars 2 c# pdf unicode itext itext7

我在 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();
    }
Run Code Online (Sandbox Code Playgroud)

但我遇到了异常:

iText.IO.IOException: '未找到 CMap iText.IO.Font.Cmap.UniJIS-UTF16-H。'

我已经四处寻找有关如何添加它的解决方案,但我还没有想出任何适用于日语字符的方法。如果有任何其他更适合的图书馆也可以。有什么帮助吗?

谢谢

mkl*_*mkl 5

特别是 CJK 脚本的编码 CMap 位于单独的包中。

对于 .Netitext7.font-asian通过 nuget使用。

对于 Javacom.itextpdf:font-asian通过 Maven使用。

这个包的存在对于Java 版本比对于.Net 版本更明显。