C# iText 7提取字符串时出现的文本乱码

C# iText 7提取字符串时出现的文本乱码,c#,pdf,itext7,C#,Pdf,Itext7,我想从日文PDF中提取字符串。 然而,结果却是乱七八糟的。 我该怎么做,或者我做错了什么 iText.IO.Util.ResourceUtil.AddToResourceSearch("itext.font_asian.dll"); using (PdfReader reader = new PdfReader(pdfPath)) using (var doc = new PdfDocument(reader)) { var rect = new Rectangle(100, 100,

我想从日文PDF中提取字符串。
然而,结果却是乱七八糟的。
我该怎么做,或者我做错了什么

iText.IO.Util.ResourceUtil.AddToResourceSearch("itext.font_asian.dll");
using (PdfReader reader = new PdfReader(pdfPath))
using (var doc = new PdfDocument(reader))
{
    var rect = new Rectangle(100, 100, 800, 800);

    var filter = new TextRegionEventFilter(rect);

    var pageCount = doc.GetNumberOfPages();

    for (int i = 1; i <= pageCount; i++)
    {
        ITextExtractionStrategy strategy = new FilteredTextEventListener(new LocationTextExtractionStrategy(), filter);
        var page = doc.GetPage(i);
        var str1 = PdfTextExtractor.GetTextFromPage(page, strategy);
    }
}
iText.IO.Util.ResourceUtil.AddToResourceSearch(“iText.font\u asian.dll”);
正在使用(PdfReader读取器=新PdfReader(pdfPath))
使用(var文档=新PDF文档(读卡器))
{
var rect=新矩形(100100800800);
var filter=newtextregioneventfilter(rect);
var pageCount=doc.GetNumberOfPages();

对于(int i=1;i您做的一切都是对的。在
7.0.4
之前,文本提取功能对于某些CID字体确实存在问题。现在在
7.0.5-SNAPSHOT
中,此问题已修复,不再重现


当前快照版本的NuGet软件包可以从下载。

您做得很好。在
7.0.4
之前,某些CID字体的文本提取功能确实存在问题。现在在
7.0.5-snapshot
中,此问题已修复,不再重现


可以从下载具有当前快照版本的NuGet软件包。

如“当我查看字符串时使用了错误的编码?”或如“当我从PDF查看器复制/粘贴文本时得到了相同的乱码结果?”中所述的乱码。您的问题太不完整,无法回答。请显示PDF。字体是否有toUnicode映射?(如果这些问题对您来说太难回答,我们真的需要查看PDF以便我们自己检查。)感谢您的评论。我很抱歉我的问题不好。PDF文件是作为链接编写的,但为了清晰起见,我对其进行了编辑。(您能下载吗?)关于复制和粘贴:我可以从Acrobat Reader中显示的PDF中选择一个字符串并将其粘贴到记事本中。我将从现在开始研究编码。toUnicode映射是否可以从PdfDocument(PdfPage?)中获得?我也将研究此问题。如“我在查看字符串时使用了错误的编码”中所述或者像“我从PDF查看器复制/粘贴文本时得到相同的乱码结果?”中的乱码。您的问题太不完整,无法回答。请向我们展示PDF。字体是否有toUnicode地图?(如果这些问题对您来说太难回答,我们确实需要查看PDF,以便我们自己检查。)谢谢你的评论。很抱歉我的问题不好。PDF文件是作为链接编写的,但为了清晰起见我对其进行了编辑。(你能下载吗?)关于复制和粘贴:我可以从Acrobat Reader中显示的PDF中选择一个字符串并将其粘贴到记事本中。我将从现在开始研究编码。toUnicode映射是否可以从PdfDocument(PdfPage)中获得?我也会对此进行调查。非常感谢。已经确认它可以用7.0.5-SNAPSHOT正常提取。嗨,Alexey@Alexey,我正在尝试使用上面的代码行,当调用GetTextFromPage方法时,它会抛出一个异常,如“找不到CMap iText.IO.Font.CMap.UniJIS-UTF16-H”。您能告诉我如何解决此问题吗。@DadapeerPvg是否添加了字体亚洲软件包依赖项?是的,之前添加了字体亚洲软件包依赖项,但它仍然引发了该异常。我从nuget软件包管理器重新安装了软件包,然后问题得到了解决。非常感谢。经确认,它可以使用7.0.5正常提取-SNAPSHOT.Hi-Alexey@Alexey,我正在尝试使用上面的代码行,当调用GetTextFromPage方法时,它会抛出一个异常,如“找不到CMap iText.IO.Font.CMap.UniJIS-UTF16-H”。您能告诉我如何解决此问题吗。@DadapeerPvg是否添加了字体亚洲软件包依赖项?是的,之前添加了字体亚洲软件包依赖项,但它仍引发该异常。我从nuget软件包管理器重新安装了软件包,然后问题得到解决。