.net 下如何将文档文件(Word, Pdf等) 中的文本提取出来

.net 下如何将文档文件(Word, Pdf等) 中的文本提取出来


2024年5月4日发(作者:)

.net 下如何将文档文件(Word, Pdf等) 中的文本提取出来 - eaglet - 博客园

经常有人问我怎么将类似word,pdf这样的文档转换为文本然后索引,.net 这方面的解决

方案不是很多,为了方便大家,我花了一天时间自己做了一个。

Java 版本的 lucence 提供了一个 tika 的工具用于将 word, excel, pdf 等文档转换为文本,

然后进行索引。但这个工具没有 .net 版本,要在 .net 下用,需要用 ,很麻烦。而且

这个工具实际上底层是调用 POI 和 PDFParse 来转换的。从网上搜索到的信息看,POI 对 office

2007 以上版本的文档处理有问题,不知道最新版本是否解决了,我没有试过。 PDFParse 这个

东西,我用过 .net 版本,对中文不支持,不知道 Java 版本是否支持。

其实 .net 下完全不需要用这些开源解决方案来解决,因为微软提供了一个官方的解决方

案,这个解决方案叫 IFilter,这个过滤器是为 SQL SERVER 的全文索引设计的,但第三方软件

可以调用API来完成文档的提取工作。

为了方便大家,我把 IFilter 转换的功能封装到了一个开源的组件中去,大家可以到下面地

址去下载源码:HBTextParse.

调用很简单:

这个是提取文件中的文本到字符串的代码

if (alog() == ) { //要转换的文件

= me; //实例化 TextParse ,传入要转换的

文件路径 TextParse textParse = new TextParse(); //提取文件中

的文本,并输出 = tToString(); }

这个是将文件转换为文本文件的代码:

if (alog() == ) { try { //实例化

TextParse,传入要转换的文件的路径 TextParse textParse = new

TextParse(); //将文件转换到 me 指定

的文本文件中 tToFile(me); } catch

(Exception ex) { (e, "Error", ,

); } }

要注意的问题是提取 Pdf 文档,如果机器是 64为操作系统,必须要安装Adobe PDF

iFilter 9 for 64-bit platforms. 否则会报异常。这个问题我搞了将近一天才搞定。

支持的文档类型:

目前这个组件可以支持所有 Microsoft office 提供的文档类型,包括 *.rtf, *.doc, *.docx,

*.xls, *.xlsx, *.ppt, *.pptx 等等

除了微软Office的文档外,还可以转换

• html 文档:可以把html文档中的文本提取出来(不包含标签)

• Pdf 文档:我测试过,对中文支持没有问题

• Txt 文档

这个代码的核心部分是一个叫 FilterCode 的类。这个类是从/


发布者:admin,转转请注明出处:http://www.yc00.com/web/1714753354a2508953.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信