您的位置:首页 > 其它

VC 读取 doc,xls,ppt,pdf等格式的文件

2014-02-27 14:32 751 查看
相关网站:http://minidx.com/

如何使用VC 读取doc,xls,ppt等文件.给大家介绍一种方法,非常方便,简单,实用。

文章是从http://blog.minidx.com/2008/01/10/373.html转过来的,还有其它更详细的,大家可以直接访问[b]http://minidx.com/,如果打开不了,就把***(没有***的同学点这里)开着,就OK了。[/b]

●Demo(VC++)源代码从VC2003Demo,VC2005Demo,VB.net下载,实在上不了国外网站的同学,直接到我的资源里去下点击打开链接(三个包都在里面).相关文档资料分类中的“Doc,Xls,Pdf等文件中抽取文本的Com组件及Demo(VC++)源代码”)

●执行Demo

①、双击run.bat执行,注册Com组件





②、双击demo_vb\bin\Release或者demo_vb\bin\Debug目录下的demo_vb.exe





③、点“File”,选择对象文件





④、选中文件,查看抽取文本结果。(下面分别是中日英Word的抽取结果)









注意:抽取文本对象文件需要有读写权限,正在编辑中的文件抽取文本时可能会出错。

●实际调用方法:

①、复制下面三个文件到自己工程的相应目录下

・ExtractText.dll

・ExtractText.h

・ExtractText_i.c

②、在需要的文件中用下面的代码引入

#include “ExtractText.h”

#include “ExtractText_i.c”

③、抽取文本部分代码:

1:  ITextExtractor *te = NULL;

2:  // Declare and HRESULT and a pointer to the Simple_ATL interface

3:  HRESULT            hr;

4:

5:  // Now we will intilize COM

6:  hr = CoInitialize(0);

7:  BSTR fileName = ::SysAllocString(strFileName);

8:  if(SUCCEEDED(hr))

9:  {

10:  hr = CoCreateInstance( CLSID_TextExtractor, NULL, CLSCTX_INPROC_SERVER,

11:  IID_ITextExtractor, (void**) &te);

12:

13:  hr = te->ExtractText(fileName, (long)lFileSize, &cval);

14:  if( cval ) txt_extract_text.SetWindowText(cval);

15:

16:  hr = te->Release();

17:  }

18:  // Uninitialize COM

19:  CoUninitialize();


当然,也可以通过GetProcAddress的方式导入函数,函数的接口请参照ExtractText.h,LoadLibrary方式的使用方法也很简单,有兴趣的可以自己做着试试看,这里不再重复说明了。同样的,有什么问题可以直接在这里留言或者在Minidx帮助论坛发贴寻找帮助。该模块可用于任何商业和非商业的用途,如果你愿意的话,可以发一个邮件给我告诉我这一模块被用在了你的项目中,那么当你取得成功的时候,我也可以向我的朋友们吹嘘一下,当然这不是必需的,:)

注意:如果需要获取PDF内容的同学,这里需要注意,必须得去下载PDF的Ifiter,这里提供一个地址,点击打开链接,地址上V4.1,V5.0,V6.0,经过我的测试,只有安装完V6.0的版本,读取PDF才是OK的。但是V6.0的有9M多。当然还可以去下载其它的

PDF的Ifiter,不过一般都是收费的,哪位朋友如果有免收费的,体积小的,可以发我邮箱一个不胜感激(邮箱地址:763098346@QQ.com)或者私信我也行.祝大家顺利.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: