由于特殊字体,使用iTextSharp提取PDF内容失败

时间:2018-03-24 03:33:03

标签: c# itext extract cjk

我可以使用以下代码从大多数PDF文件中提取内容。

        PdfReader pdfReader = new PdfReader(Path);

        for (int page = 1; page <= pdfReader.NumberOfPages; page++)
        {
            ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
            string currentText = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy); 
        }

Failed extraction file Property

我试图在线寻找解决方案。我认为this可能对我有用。

 StreamUtil.AddToResourceSearch(
            System.Reflection.Assembly.Load("iTextAsian")
        );
        StreamUtil.AddToResourceSearch(
            System.Reflection.Assembly.Load("iTextAsianCmaps")
        );

Result 但它仍然无法奏效。 如果有人能帮助我,我将不胜感激。

我上传了pdf文件。

1 个答案:

答案 0 :(得分:0)

我使用此NUnit测试测试了从文档中提取文本:

[Test]
public void ExtractText易城数据运营商报告()
{
    StreamUtil.AddToResourceSearch(System.Reflection.Assembly.Load("iTextAsian"));
    StreamUtil.AddToResourceSearch(System.Reflection.Assembly.Load("iTextAsianCmaps"));
    Console.Out.Write("Text Extraction - 易城数据运营商报告.pdf\n\n");
    var pdfReader = new PdfReader(@"d:\Issues\stackoverflow\Extract PDF content failed using iTextSharp because of special fonts\易城数据运营商报告.pdf");
    var pageText = PdfTextExtractor.GetTextFromPage(pdfReader, 1, new SimpleTextExtractionStrategy());
    Console.Out.Write("Content: {0}", pageText);
}

iTextAsian.dll和iTextAsianCmaps.dll都已添加到项目参考中。

输出:

Testname:   ExtractText易城数据运营商报告
Testergebnis:   Erfolgreiche
Ergebnis StandardOutput:    
Text Extraction - 易城数据运营商报告.pdf

Content: 【易城数据】运营商报告 
1. 星级评估
2. 申请人基本信息
3. 运营商基本信息
4. 风险信息扫描
5. 通信记录相关

20180304221448070909 2018-03-04 22:14:48
风险等级评估:低 信用量划分:608
身份特征星级:★★★☆☆ 消费能力星级:★★☆☆☆
通信行为星级:★☆☆☆☆ 人脉关系星级:★★★☆☆
姓名:李延峰 性别:男
年龄:29 手机号:15063976462
身份证:370211198908240056
未能获取运营商注册的身份证
与运营商注册的姓名【**峰】明文匹配
手机号: 15063976462 运营商类型: 中国移动
姓名: **峰 身份证号:
邮箱: 地址:
会员等级: 2 积分值: 0分
在网时长: 21月 套餐类型:
可用余额: 44.16 手机归属地: 山东青岛
主要活动区域: 本地活动时间占比:100%
运营商关键信息匹配 未能获取运营商注册的身份证
与运营商注册的姓名【**峰】明文匹配
风险:低
入网时长检查 入网时长大于6个月 风险:低
申请人黑名单命中检查 手机号未在黑名单中出现
身份证未在黑名单中出现
风险:低
紧急联系人黑名单命中检查 未知
黑名单通信记录 共与null个号码通信 风险:低
紧急联系人通信记录 无输入信息 未知
民间借贷通信记录 未发现 风险:低
金融机构通信记录
【招商银行】
被叫0次共0分钟 主叫1次共6分钟
【近24小时】
未发现
【1-7天】
未发现
【7-30天】
未发现
【30-90天】
1个号码 联系1次 共6分钟
【90-180天】
未发现
风险:低
信用卡机构通信记录
【招商银行】
被叫0次共0分钟 主叫2次共7分钟
【近24小时】
未发现
【1-7天】
未发现
【7-30天】
未发现
【30-90天】
1个号码 联系2次 共7分钟
【90-180天】
未发现
风险:低
P2P平台与互联网小贷通信记录 未发现 风险:低
P2P平台与互联网小贷联系记录 未发现 风险:低

我使用iText for .Net(aka iTextSharp)版本5.5.13.0,iTextAsian.dll 2.1.0.0和iTextAsianCmaps.dll 1.0.0.0。该测试在Visual Studio Community 2017中使用当前的NUnit引用运行。