我有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;
}
答案 0 :(得分:2)
乍一看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编码的字体而得到加强。
但是,考虑到上述所有信息,我有一些疑问
安装某些字体后,可以在Edge浏览器或adobe reader中提取文本。
至少我怀疑无论安装了多少字体,都可以提取与实际文本类似的内容。另一方面,这里的Adobe Reader和Edge开箱即用,提取了从旋转字母识别的奇怪文本。
我对iText的观察不同,而OP报告
正在返回空文本
我得到了很多CJK字形(但我添加了亚洲jar,这可能会有所不同)。不幸的是,不是通过检查PDF找到的那些。
据我记忆,在iText开发到版本5.5.x(含)期间,Encoding + ROS的文本提取从未成为焦点,特别是90ms的混合单字节/双字节编码 - 可能不支持RKSJ-H。