原文

问题

下面的代码中 currentText 能提取到大部分汉字

但是字体为 Non-Embedded Font: AdobeSongStd-Light(Horizontal) 的汉字提取不到

PdfReader pdfReader = new PdfReader(@"E:\Desktop\file.pdf");
var currentText = string.Empty;
for (int i = 0; i < pdfReader.NumberOfPages; i++)
{
currentText += PdfTextExtractor.GetTextFromPage(pdfReader, i + 1, new LocationTextExtractionStrategy());
}

解决办法

增加 iTextSharp 的中文,韩文,日文字体包

//1. 我使用的iTextSharp 5.5.13.2
//2. 引用 iTextAsian.dll 2.1 版本和iTextAsianCmaps.dll 1.0 版本
//3. 读取pdf前加载字体包
StreamUtil.AddToResourceSearch(System.Reflection.Assembly.Load("iTextAsian"));
StreamUtil.AddToResourceSearch(System.Reflection.Assembly.Load("iTextAsianCmaps"));

读取某个文本域的值

RenderFilter[] filter = { new RegionTextRenderFilter(new System.util.RectangleJ(393, 676,1, 1)) };//即使选取了一个很小的1*1区域,只要这个区域在这个文本域内,也能读取到整个文本内容
ITextExtractionStrategy strategy =
new FilteredTextRenderListener(
new LocationTextExtractionStrategy(), filter);
currentText += PdfTextExtractor.GetTextFromPage(pdfReader, pageNum, strategy);

附件

iTextAsianCmaps.dll

iTextAsian.dll

Tags

iTextSharp pdf

iTextAsian.dll 2.1

iTextAsian-all-2.1.zip

Chinese 汉字 中文 日文 韩文

最新文章

  1. sleep() 和 wait() 的区别
  2. shell 判断条件
  3. JAVA函数的返回值类型详解以及生成随机数的例题
  4. js 参数的 引用与值传递
  5. 导出cluster log
  6. 创建LIST分区
  7. 高质量程序设计指南C/C++语言——C++/C程序设计入门(4)
  8. 将dll放进exe[.Net]
  9. Python基础 - 关键字
  10. linux查看CPU和内存信息
  11. [置顶] 使用Android OpenGL ES 2.0绘图之五:添加运动
  12. Dynamics CRM2016 Supported versions of Internet Explorer and Microsoft Edge
  13. java基础编程题练习(二)
  14. Angularjs 滚动条控制
  15. BuildTool
  16. 【Django】关于ORM的使用
  17. VS 代码整理插件推荐:CodeMaid
  18. Hibernate学习笔记三:常用数据库操作语句
  19. sencha touch 在视图中显示一个html页面
  20. hdfs基本操作-python接口

热门文章

  1. 【精】多层PCB层叠结构
  2. USB与电池切换电路图
  3. canvas实现平铺水印
  4. 【promise| async/await】代码的控制力
  5. java中Object类的finalize的用法
  6. Java中的反射以及简单运用(原理+例子)
  7. Idea导出jar包和使用自定义API
  8. CommonsCollection4反序列化链学习
  9. drf中的请求与响应
  10. JS/TS项目里的Module都是什么?