不同语言解析PDF内容都有各自的库,比如Java的pdfbox,.net的itextsharp。
c#解析PDF文本,关键代码可参考:
http://www.cnblogs.com/mahongbiao/p/7652788.html
此外也可使用OCR,关键代码可参考:
http://www.cnblogs.com/mahongbiao/p/3760867.html
这些类库解析PDF文本有一个弊端,就是可配置性不强,它们多数是用于PDF文件生成的,对于PDF文本内容的提取仅提供一两个函数供调用。
解析PDF文本,可使用xpdf,该工具为一命令行工具,因此可通过java或.net调用命令行执行。
c#调用示例代码:
1 Process p = new Process();
2 p.StartInfo.FileName = @"pdftotext.exe";
3 p.StartInfo.UseShellExecute = false;
4 p.StartInfo.RedirectStandardInput = true;
5 p.StartInfo.RedirectStandardOutput = true;
6 p.StartInfo.RedirectStandardError = true;
7 p.StartInfo.CreateNoWindow = true;
8 p.Start();
9 p.StandardInput.WriteLine("test.pdf test.txt");
10 p.StandardInput.AutoFlush = true;
11 p.WaitForExit();
12 p.Close();
在使用itextsharp或者pdfbox解析某PDF文件时,文本内容以竖排的形式输出,不易解析信息。
而使用xpdf,则可以指定-layout参数,将其按照页面显示的布局方式输出。
下图为PDF样式:
下图为pdfBox、itextsharp解析出的内容样式:
下图为xpdf设置了layout后的解析样式:
可以看出,使用xpdf解析出的内容较容易识别出有意义的数据项。
例子中的中文没有解析出来,可通过配置PDF中文字体解决,xpdf的另一个强项功能,就是它支持配置pdf字体,有些PDF内容通过itextsharp解析不出来的情况下,使用xpdf在配置了正确字体后可以解析出内容。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有