原文

问题

下面的代码中 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 汉字 中文 日文 韩文

记 iTextSharp 提取中文的问题的更多相关文章

  1. 使用Python提取中文字符

    #功能:国际化测试,用于提取应用设计包中的中文字符,并输出report#解压---筛选---整理路径---提取中文---输出报告 ################################### ...

  2. js正则提取数字小数,提取中文,提取英文

    var value="污染物:PM2.5"; //提取中文 console.log(value.replace(/[^\u4E00-\u9FA5]/g,'')); //提取英文 c ...

  3. SQL Server 从字符串中提取中文、英文、数字

    --[提取中文] IF OBJECT_ID('dbo.fun_getCN') IS NOT NULL DROP FUNCTION dbo.fun_getCN GO create function db ...

  4. iTextSharp 提取签名图像

    原文 本文使用 iTextSharp 5.5.13.2,记录使用 iTextSharp 提取图片时,获得的知识点. pdf 中的签名并不是单纯的一张图片,它是由一张基础的底色图和一张蒙版图片组成.需要 ...

  5. 利用sfntly的sfnttool.jar提取中文字体

    雨忆博客中提到了sfntly(具体介绍可以看:https://code.google.com/p/sfntly/),利用其中sfnttool.jar就可以提取只包含指定字符的字体,如果想在页面中通过@ ...

  6. unity插件,从一段文字中提取中文并去重

    using System.Collections.Generic; using System.Text.RegularExpressions; using UnityEditor; using Uni ...

  7. python re 正则提取中文

    需求: 提取文本中的中文和数字字母(大小写都要),即相当于删除所有标点符号. 其中new是原字符串 news = re.findall(r'[\u4e00-\u9fa5a-zA-Z0-9]',new)

  8. iTextSharp带中文转换出来的PDF文档显示乱码

    刚才有写一个小练习<Html代码保存为Pdf文件>http://www.cnblogs.com/insus/p/4323224.html.马上有网友说,当截取块有中文时,保存的pdf文件将 ...

  9. 记 iTextSharp 剪裁 PDF 指定区域的方法

    原文 引用 itextsharp 5.5.13.2 itextsharp.xtra 5.5.13.2 方法 /// <summary> /// 截取pdf文件,例如把A4截出指定的A6区域 ...

随机推荐

  1. html简单响应式滚动条置顶

    简单响应式滚动条置顶 一般的,让页面出现滚动条的常见方法有: overflow:auto||overflow:scroll 或者overflow-x水平滚动条和overflow-y垂直滚动条 那么现在 ...

  2. 《JavaScript Dom编程艺术》读书笔记(二)

    算术操作符 加减乘除这些算术操作中的每一种都必须借助于相应的操作符才能完成.操作符是JavaScript为完成各种操作而定义的一些符号.等号(=).加号(+).减号(-).乘号(*).除号(/). 下 ...

  3. 前端网络安全——前端CSRF

    CSRF:Cross Site Request Forgy(跨站请求伪造) 用户打开另外一个网站,可以对本网站进行操作或攻击.容易产生传播蠕虫. CSRF攻击原理: 1.用户先登录A网站 2.A网站确 ...

  4. java中Object类是怎么回事,干嘛使的?举例说明!

    Object类的作用:m a r k - t o-        w i n: 在java中,因为所有的类都有共性,所以java的缔造者们把java设计成这样:所有的类都是Object类的直接或间接子 ...

  5. Jar 包下载以及 maven jar 包配置

    学习内容: jar包下载是我们必须掌握的一个内容,不管是使用Maven项目还是其他项目,一般都需要引入外部的 jar 包 jar包下载 下载地址(打不开网址的直接百度搜索 maven reposito ...

  6. Java在方法中定义可变参数类型

    学习目标: 掌握可变参数的应用 学习内容: 1.定义 在方法中传递数组有一种更简单的方式--方法的可变参数,其本质是一个语法糖,目的是让开发者写代码更简单. 2.语法 [修饰符] 返回值类型 方法名称 ...

  7. 基于LAMP离线部署zabbix3.2.11

    zabbix是个什么东西这里不再赘述,先安装lamp再安装zabbix. 1.   安装依赖插件(把下面PHP那些依赖库全部都装了) #yum install -y gcc gcc-c++ opens ...

  8. nmtui 工具使用的话,需要开启NetworkManager(网卡文件不存在ens192)

    环境采样: [root@k3master network-scripts]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) ...

  9. Warmup小记

    什么是warmup 热身,在刚刚开始训练时以很小的学习率进行训练,使得网络熟悉数据,随着训练的进行学习率慢慢变大,到了一定程度,以设置的初始学习率进行训练,接着过了一些inter后,学习率再慢慢变小: ...

  10. Java实现负载均衡算法--轮询和加权轮询

    1.普通轮询算法 轮询(Round Robin,RR)是依次将用户的访问请求,按循环顺序分配到web服务节点上,从1开始到最后一台服务器节点结束,然后再开始新一轮的循环.这种算法简单,但是没有考虑到每 ...