使用itextsharp从pdf中提取文本返回空字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用itextsharp从pdf中提取文本返回空字符串相关的知识,希望对你有一定的参考价值。
我有一个pdf file。安装一些字体后,可以在Edge浏览器或adobe reader中提取文本。请告诉我如何使用itextsharp(最新版本5.x)提取文本。我用这个命令。空文本正在返回。但该文件有8页文字。
var reader = new PdfReader(bytes);
var pages = reader.NumberOfPages;
for (int i = 1; i <= pages; i++)
{
var t = PdfTextExtractor.GetTextFromPage(reader, i, new SimpleTextExtractionStrategy());
text += t;
}
The PDF
乍一看,PDF似乎是由OCR程序进行的OCR,该程序没有意识到页面旋转了180°。
例如,第二页上的OCR程序以PDF查看器显示为左下角的方式开始:
并在此承认
epnq eoⅢ9時u ez `9P...
押印S ’句OP JuP9A...
eA I臥O9叩Od n^Z小no...
这不是那么糟糕,例如epnq eoⅢ...
与旋转180°的...mce bude
并不完全不同。
OCR软件似乎对CJK字形具有一定的亲和力;这种印象因使用Adobe-Japan1-2 ROS和90ms-RKSJ-H编码的字体而得到加强。
Text extraction
但是,考虑到上述所有信息,我有一些疑问
安装一些字体后,可以在Edge浏览器或adobe reader中提取文本。
至少我怀疑无论安装了多少字体,都可以提取与实际文本类似的任何内容。另一方面,Adobe Reader和Edge开箱即用这里提取从旋转字母识别的奇怪文本。
iText
我对iText的观察不同,而OP报告说
空文本正在返回
我得到了很多CJK字形(我添加了亚洲jar,但这可能会有所不同)。不幸的是,不是通过检查PDF找到的那些。
据我所知,在iText开发到版本5.5.x(含)期间,Encoding + ROS的文本提取从未成为焦点,特别是90ms-RKSJ-H的混合单字节/双字节编码可能不受支持。
以上是关于使用itextsharp从pdf中提取文本返回空字符串的主要内容,如果未能解决你的问题,请参考以下文章