c#实现将pdf转文本的示例分享
本文导语: 如何解析PDF文件在.NET中从PDF文件里提取文本的几种主要方法有: 1、Microsoft 的 IFilter 接口 和 Adobe 的 IFilter 实现; 2、iTextSharp; 3、PDFBox。 不幸的是这些 PDF 解析方案都不完美。我们将在下面讨论这些方法。 Adobe PDF IFilter 为了使...
如何解析PDF文件
在.NET中从PDF文件里提取文本的几种主要方法有:
1、Microsoft 的 IFilter 接口 和 Adobe 的 IFilter 实现;
2、iTextSharp;
3、PDFBox。
不幸的是这些 PDF 解析方案都不完美。我们将在下面讨论这些方法。
Adobe PDF IFilter
为了使用 IFilter 接口来解析 PDF 文件,你需要:
Windows 2000 或者后续版本
Adobe Acrobat 或 Reader 7.0.5+ (或单独的 Adobe PDF IFilter [adobe.com])
IFilter COM 封装类 [dotlucene.net]
样例代码:
using IFilter;
public static string ExtractTextFromPdf(string path) {
return DefaultParser.Extract(path);
}
缺点:
使用了不可靠的 COM 互操作来处理 IFilter 接口 (并且组合 IFilter COM、 Adobe PDF IFilter 特别麻烦)。
需要在目标系统上单独安装 Adobe IFilter。如果你需要对其它人发布可索引的解决方案,会很痛苦。
iTextSharp
iTextSharp(http://sourceforge.net/projects/itextsharp/) 是一个 Java 的PDF 操作库iText(http://itextpdf.com/) 的.NET输出。它主要着眼于编辑PDF而不是阅读,但它当然也支持从PDF中提取文本(尽管有点大材小用)。
例程:
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
public static string ExtractTextFromPdf(string path)
{
using (PdfReader reader = new PdfReader(path))
{
StringBuilder text = new StringBuilder();
for (int i = 1; i