FreeSpire和Itexsharp操作PDF获取PDF
最近遇到一个需求是通过选择的文件夹路径和输入的检索条件检索出该文件夹下文件名称和文件内容包括检索条件的所有文件并且展示到窗体上
word文档读取没有什么大问题,用NPOI就可以很容易的解决
但是PDF的读取就比较麻烦,后来查了一下,看到的有Spire和Itexsharp这两个插件可以读取,但是通过反复测试,Itexsharp无法获取PDf内容,只能创建新的pdf并写入内容,虽然Spire可以使用,但唯一的缺点就是不开源。
后来在VS插件库里面找到了FreeSpire这个免费开源的PDF操作插件,可以对PDF进行编辑,新增,删除,和读取,但是FreeSprie插件有个限制条件,操作和读取的PDF最多只能有10页,由于FreeSpire这个插件在根据文件路径定义对象时就会限制页数,但是FreeSpire没有获取PDF页数的参数,所以可以提前使用
itexsharp的
PdfReader reader = new PdfReader(pdf文件路径);
int iPageNum = reader.NumberOfPages;
这个方法获取pdf的页数
可以用来在使用FreeSpire时,提前获取操作的PDF页数,进行页数判断,避免在FreeSpire创建实例化对象时报异常
FreeSpire读取PDF
PDFReader reader = new PdfReader(pdf文件路径)
int iPageNum = reader.NumberOfPages;
if(iPageNum<=10){
//实例化pdfdocment对象
Spire.Pdf.PdfDocument doc = new Spire.Pdf.PdfDocument();
//加载pdf文件
doc.LoadFromFile(文件路径);
//实例化一个StringBuilder 对象
StringBuilder content = new StringBuilder();
//提取PDF所有页面的文本
foreach (PdfPageBase page in doc.Pages)
{
content.Append(page.ExtractText());
}
}
else{
continue;
}
这样就可以读取pdf中的文字内容
第一次发稿,多多支持,欢迎各位同行多多交流讨论