利用Minidx Extract-Text Com组件从Word,Xls,Pdf……等文件中读取 后附C# 调用代码
来源:互联网 发布:泰捷网络机顶盒哪款好 编辑:程序博客网 时间:2024/06/05 22:49
在上面的微软Ifilter中有关于IFilter的基本概念的介绍,这里不再重复,另外在codeproject的Using IFilter in C#中,可以找到C#的实现并且可以下载到源代码。因为性能上的考虑,Minidx文件管理器的这一部分完全利用C++实现,并封装为Com组件,下面主要是对如何通过调用这一Com组件在自己的程序中实现Doc,Xls,Pdf,msg等等文本阅读等功能作一些说明。
●Demo压缩包构造(压缩包可以从这里下载)
demo_vb.zip———–demo_vb.sln 整个解决方案(solution)文件
|———demo_vb.suo 用户配置文件
|———demo_vb—-bin——–Debug—-demo_vb.exe Debug版本目标文件
|———Release—demo_vb.exe Release版本目标文件
|—My Project(忽略)
|—obj 编译生成的临时文件
|—demo_vb.vbproj 工程文件
|—ExtractText.dll 文本抽取Com组件
|—Form1.Designer.vb Demo的GUI文件
|—Form1.resx 资源文件
|—Form1.vb Demo的源代码文件
|—run.bat Com组件注册命令
●执行Demo
①、双击run.bat执行,注册Com组件
②、双击demo_vb\bin\Release或者demo_vb\bin\Debug目录下的demo_vb.exe
③、点“File”,选择对象文件
④、选中文件,查看抽取文本结果。(下面分别是中日英Word的抽取结果)
注意:抽取文本对象文件需要有读写权限,正在编辑中的文件抽取文本时可能会出错。
●Demo代码说明
首先当然需要导入Dll组件,下面的代码很简单,也都有注释,应该不难理解,这里不再累述,有什么不明白或者有什么问题的话,可以提出来一起探讨,:)
1: '-----------------------------
2: ' desc: Extract text from selected file
3: '-----------------------------
4: Private Sub SelectFileDialog_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles SelectFileDialog.FileOk
5: On Error GoTo ErrH
6:
7: ' get selected full-path file name
8: Dim sFile As String = SelectFileDialog.FileName
9:
10: ' set file name
11: txtFilePath.Text = sFile
12:
13: ' set ExtractText module
14: Dim te As ExtractTextLib.TextExtractor = New ExtractTextLib.TextExtractor
15: Dim sText As String
16: sText = te.ExtractText(sFile, MAX_EXTRACT_TEXT_SIZE)
17: Err.Clear()
18:
19: 'Me.FileLength.Text = Len(sText).ToString()
20: Me.ExtractText.Text = sText
21:
22: Exit Sub
23: ErrH:
24: MsgBox("Error extracting text from '" & sFile & "' Err=" & Err.Number & "-" & Err.Description & " in " & Err.Source)
25: End Sub
工程的DLL和Demo源代码从这里下载,C/C++调用的Demo还在制作中,有兴趣的高手们也可以制作Php,Delphi,C#等各种语言调用的Demo以供分享~~,实际上原理是一样的。有什么问题可以直接在这里留言或者在Minidx帮助论坛发贴寻找帮助。该模块可用于任何商业和非商业的用途,如果你愿意的话,可以发一个邮件给我告诉我这一模块被用在了你的项目中,那么当你取得成功的时候,我也可以向我的朋友们吹嘘一下,当然这不是必需的,:)
附C# 测试代码例子很简单一看就会
同上首先需要注册 regsvr32.exe 注册 ExtractText.dll
并从项目中引入该dll
核心代码如下:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog op = new OpenFileDialog();
if (op.ShowDialog(this) == System.Windows.Forms.DialogResult.OK)
{
this.textBox2.Text = op.FileName;
}
}
private void button2_Click(object sender, EventArgs e)
{
ExtractTextLib.TextExtractor extractor = new ExtractTextLib.TextExtractor();
this.textBox1.Text=extractor.ExtractText(this.textBox2.Text,(int)new System.IO.FileInfo(this.textBox2.Text).Length);
}
}
测试中发现对于pdf处理需要下载ifilter 相对于pdf 的关联 才能识别本地的adobe
ifilter pdf 下载地址
http://download.csdn.net/detail/wxw6782829/4107606
- 利用Minidx Extract-Text Com组件从Word,Xls,Pdf……等文件中读取 后附C# 调用代码
- VC 读取 doc,xls,ppt,pdf等格式的文件
- PHP 开启COM组件 读取word文件
- 求助:php 用windows COM组件调用openoffice接口实现word转pdf文件报错
- 从xls或者txt等格式的文件中读取编码码率以及PSNR
- 如何从c++中调用c#的com组件
- c# 中调用COM组件
- C#使用指定打印机打印Word,Excel等Office文件和打印PDF文件的代码
- 利用jxl读取xls文件
- 利用jxl读取xls文件
- C#调用iTextSharp组件生成PDF文件
- Android中调用第三方打开本地doc、pdf、ppt、text等文件功能的实现
- 在winform中利用外部程序打开pdf或者word等文件的方法
- C#中word转pdf代码
- 关于不调用word excel 等等的com对象生成doc文件或者xls文件
- 从JAVA直接读取EXCEL、WORD并生成PDF文件
- c#调用word com组件 替换书签套打
- java调用com组件将office文件转换成pdf
- ADO.NET 事务处理的定义
- 入门篇:Ubuntu用apache做web服务器
- MTK每日总结1
- Cocoa Fundamentals Guide-Category
- MTK的GUI 设计
- 利用Minidx Extract-Text Com组件从Word,Xls,Pdf……等文件中读取 后附C# 调用代码
- 飞鸽传书官方网站方式hook一些常见的枚举文件
- ORACLE 解锁表
- PHP中error_reporting()函数的用法
- CCS4.0下载地址共享以及破解文件
- DB Query Analyzer 中断SQL语句的执行
- 浅谈需求控制
- hibernate batch size & fetch
- cygwin和mingw的区别