利用Minidx Extract-Text Com组件从Word,Xls,Pdf……等文件中读取文本内容
2009-12-03 21:32
681 查看
利用MinidxExtract-TextCom组件从Word,Xls,Pdf……等文件中读取文本内容
ByMinidxer|December31,2007不少人对Google,Baidu等搜索引擎可以“找到”你放在服务器上的Word的Doc,Excel的xls以及Pdf等各种文件而感到惊叹不已,也有不少人发来邮件询问我
在上面的微软
●Demo压缩包构造(压缩包可以从
demo_vb.zip———–demo_vb.sln整个解决方案(solution)文件
|———demo_vb.suo 用户配置文件
|———demo_vb—-bin——–Debug—-demo_vb.exeDebug版本目标文件
|———Release—demo_vb.exeRelease版本目标文件
|—MyProject(忽略)
|—obj编译生成的临时文件
|—demo_vb.vbproj工程文件
|—ExtractText.dll文本抽取Com组件
|—Form1.Designer.vbDemo的GUI文件
|—Form1.resx资源文件
|—Form1.vbDemo的源代码文件
|—run.batCom组件注册命令
●执行Demo
①、双击run.bat执行,注册Com组件
②、双击demo_vb\bin\Release或者demo_vb\bin\Debug目录下的demo_vb.exe
③、点“File”,选择对象文件
④、选中文件,查看抽取文本结果。(下面分别是中日英Word的抽取结果)
注意:抽取文本对象文件需要有读写权限,正在编辑中的文件抽取文本时可能会出错。
●Demo代码说明
首先当然需要导入Dll组件,下面的代码很简单,也都有注释,应该不难理解,这里不再累述,有什么不明白或者有什么问题的话,可以提出来一起探讨,:)
'-----------------------------
[code]'desc:Extracttextfromselectedfile
'-----------------------------
PrivateSubSelectFileDialog_FileOk(ByValsenderAsSystem.Object,ByValeAsSystem.ComponentModel.CancelEventArgs)HandlesSelectFileDialog.FileOk
OnErrorGoToErrH
'getselectedfull-pathfilename
DimsFileAsString=SelectFileDialog.FileName
'setfilename
txtFilePath.Text=sFile
'setExtractTextmodule
DimteAsExtractTextLib.TextExtractor=NewExtractTextLib.TextExtractor
DimsTextAsString
sText=te.ExtractText(sFile,MAX_EXTRACT_TEXT_SIZE)
Err.Clear()
'Me.FileLength.Text=Len(sText).ToString()
Me.ExtractText.Text=sText
ExitSub
ErrH:
MsgBox("Errorextractingtextfrom'"&sFile&"'Err="&Err.Number&"-"&Err.Description&"in"&Err.Source)
EndSub
[/code]
工程的DLL和Demo源代码从
Topics:
你可能还对下列文章感兴趣:
看到了你的邮件,令我感动也令我吃惊。不说了,谢谢!
祝新年快乐!以后会常来和你学习,谢谢!
@qinai
呵呵,兄弟不用客气~~~~
不谈技术,只来拜年,新年快乐minidx
@sorryle
谢谢~~~新年快乐sorryle,呵呵
看不懂,先拜年~~~
@yiyix
呵呵,拜年拜年~~~
很厉害哦以后经常来看
@有图
谢谢~呵呵,欢迎经常来哦
tip-01/2/2008at9:39am
原来是这样的,hoho
学习中
pp-01/9/2008at9:42pm
Extract.dll和intero.ExtractTextLib.dll两个dll是什么关系?
com组件不提供接口说明,大家不指导如何开发啊
@pp
可以参照这里:http://blog.minidx.com/2008/01/10/373.html
intero.ExtractTextLib.dll是编译时生成的,忘记删掉了。
skybright-04/14/2008at3:51pm
我下了个vc2005的源代码为什么编译的时候有错——————–Configuration:demo_vc–Win32Debug——————–
Compiling…
demo_vc.cpp
e:\我的文档\demo_vc2005_wrap\demo_vc2005_wrap\demo_vc\demo_vc.cpp(16):errorC2059:syntaxerror:‘&&’
e:\我的文档\demo_vc2005_wrap\demo_vc2005_wrap\demo_vc\demo_vc.cpp(16):errorC2143:syntaxerror:missing‘;’before‘}’
e:\我的文档\demo_vc2005_wrap\demo_vc2005_wrap\demo_vc\demo_vc.cpp(16):errorC2143:syntaxerror:missing‘;’before‘}’
e:\我的文档\demo_vc2005_wrap\demo_vc2005_wrap\demo_vc\demo_vc.cpp(17):errorC2143:syntaxerror:missing‘;’before‘{’
e:\我的文档\demo_vc2005_wrap\demo_vc2005_wrap\demo_vc\demo_vc.cpp(17):errorC2447:missingfunctionheader(old-styleformallist?)
e:\我的文档\demo_vc2005_wrap\demo_vc2005_wrap\demo_vc\demo_vc.cpp(17):errorC2143:syntaxerror:missing‘;’before‘}’
Errorexecutingcl.exe.
skybright-04/14/2008at3:53pm
我刚学组件有些还不是很懂。谢谢指教!
@skybright
你用的是VS2005吗?
我这里编译没有问题啊
其实你可以自己创建一个工程,把
ExtractText.dll
ExtractText.h
ExtractText_i.c
以及demo_vc.cpp的相关几行代码复制过去,组件按照上面的说明注册一下就可以用了。
skybright-04/14/2008at4:33pm
我试试。。谢谢先!
heroyo-08/19/2008at9:47pm
您好:我在系統的Lucene全文檢索功能,取用您的ExtractText.dll元件,以截取txt、office格式的附件,很感謝您在網路上釋出這麼好用的軟件。
請問程式中,宣告MAX_EXTRACT_TEXT_SIZE變數時,指定64M做為讀取文本內容的上限,64M是不是經過測試,所訂立出來的讀取上限呢?或是什麼原因之下,而訂立64M呢?
謝謝!
heroyo-08/20/2008at12:11pm
另外請教一個問題,請問ExtractText.dll元件是如何產出的呢?
1.Microsft元件?2.您撰寫的元件?
@heroyo
关于第一个问题,请参考:
关于第二个问题,请参照正文开头的说明,
ExtractText.dll是基于微软的IFilter编写的Com组件。
icen-11/19/2008at2:40pm
您好!请问怎么运用在flashas3.0当中读取word并显示出来啊?
sky-06/5/2009at4:33pm
请问,针对Excel,有没有按照某个sheet,每一行的顺序提取出来的。
目前的方法,是一次性把所有信息提取出来,内容不知道是按照什么顺序提取出来的。
lwp-07/15/2009at1:56pm
您好:
我给您的minidxer@gmail.com邮箱发了封邮件请查收,需要您的帮助。
pang-08/6/2009at11:40am
关于从文件读取文本的问题咨询:
目前提取文档的接口如下:
ITextExtractor*te=NULL;
HRESULTCohr=CoCreateInstance(CLSID_TextExtractor,NULL,CLSCTX_INPROC_SERVER,IID_ITextExtractor,(void**)&te);
if(SUCCEEDED(Cohr)&&te)
{
te->ExtractText(fileName,0,&bstr);
te->Release();
}
在使用接口ExtractText析取文本的时候,文件的类型是通过fileName确定的,但我希望ExtractText增加一个参数:filetype(文件类型),这样我可以用自己指定的格式读取文本,例如:
我有一个text文件,文件名是a.text,但希望使用doc的方式来读取文件,目前我采用的措施是先重命名文件为a.doc,析取文本后再将文件改回a.text,操作比较麻烦,而如果接口添加关于文件类型的参数后,我就不用重命名了。
不知道您能否提供这样的接口,我目前的一个项目正需要这样的接口,如能提供将不胜感激!!!
@pang
增加这样的接口可以实现,不过由于个人时间等原因这个项目基本上处于停滞状态,实在抱歉。
tyq-10/12/2009at5:06pm
我想要一个VCDemo能给我发一个吗,谢谢
tyq-10/12/2009at5:07pm
我mail:tangyq169@sohu.com
可以从
Trackbacks
相关文章推荐
- 利用Minidx Extract-Text Com组件从Word,Xls,Pdf……等文件中读取 后附C# 调用代码
- JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例
- JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法
- JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法
- JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例
- JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例
- JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例
- JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例 .
- JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例
- JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例
- JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例
- JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例
- JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例
- 将网页上word、pdf、txt文件下载下来,解析成文本内容
- [Java] 利用xpdf库获取pdf文件的指定范围文本内容
- [Java] 利用xpdf库获取pdf文件的指定范围文本内容
- 利用PDFBox提取pdf文件文本内容的分析
- java操作office和pdf文件:读取word,excel和pdf文档内容
- [Java] 利用xpdf库获取pdf文件的指定范围文本内容
- java操作office和pdf文件java读取word,excel和pdf文档内容