记 iTextSharp 提取中文的问题
2024-10-20 00:43:56
问题
下面的代码中 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);
附件
Tags
iTextSharp pdf
iTextAsian.dll 2.1
iTextAsian-all-2.1.zip
Chinese 汉字 中文 日文 韩文
最新文章
- sleep() 和 wait() 的区别
- shell 判断条件
- JAVA函数的返回值类型详解以及生成随机数的例题
- js 参数的 引用与值传递
- 导出cluster log
- 创建LIST分区
- 高质量程序设计指南C/C++语言——C++/C程序设计入门(4)
- 将dll放进exe[.Net]
- Python基础 - 关键字
- linux查看CPU和内存信息
- [置顶] 使用Android OpenGL ES 2.0绘图之五:添加运动
- Dynamics CRM2016 Supported versions of Internet Explorer and Microsoft Edge
- java基础编程题练习(二)
- Angularjs 滚动条控制
- BuildTool
- 【Django】关于ORM的使用
- VS 代码整理插件推荐:CodeMaid
- Hibernate学习笔记三:常用数据库操作语句
- sencha touch 在视图中显示一个html页面
- hdfs基本操作-python接口