大发3D

大发3D
cms大发3D网站系统、政府cms定制开发

广州网站建设大发3D-阅速大发3D

报纸大发3D网站内容大发3D一体化报刊软件联系电话
/
http://hinaidori.com/
广州网站建设大发3D
您当前位置:首页>网站技术

网站技术

利用acrobat sdk提取pdf文档内容

大发3D时间:2019/5/18 13:45:28  作者:Admin  阅读:20  

0x00 背景

HackingTeam泄漏事件影响颇大,415.77G的内容大多是邮件内容,分析起来比较麻烦,因而被大多数人忽略。网上有很多邮件分析的文章HT邮件分析,主要是针对邮件关联进行分析,若对邮件内容进行分析则需提取邮件附件中的内容,再针对内容做进一步分析。本文背景其实与上文无关,只是借此提升逼格,下面将介绍如何利用acrobat SDK提取pdf文档内容。

0x01 acrobat导入

只要安装了Adobe Acrobat,就能在其安装目录下找到acrobat.tlb,其中包含了adobe大发3D提供的接口,可对pdf进行各种操作参考文档,使用类向导将其导入。

提取文本内容需导入CAcroApp、CAcroAVDoc、CAcroAVPageView、CAcroPDPage、CAcroPDTextSelect、CAcroHiliteList。

0x02 提取文档内容

大发3D首先需要”打开”pdf,核心代码如下:

CAcroApp *pAcrpApp = new CAcroApp;

COleException e;

pAcrpApp->CreateDispatch("AcroExch.App",&e);

CAcroAVDoc *pAvdoc = new CAcroAVDoc;

大发3DpAvdoc->CreateDispatch("AcroExch.AVDoc",&e);

//打开pdf,其中PDFName为全路径

if (!pAvdoc->Open(PDFName,NULL))

{

printf("open pdf failed");

...

return 0;

}

大发3D打开文档后,通过pAvdoc可选择页数(默认为第一页),创建高亮板(CAcroHiliteList),将选择页数的内容加入高亮板,然后就可以从中提取出该页的内容,核心代码如下:

大发3DCAcroAVPageView pageView;

CAcroPDPage page;

CAcroPDTextSelect* textSelect = new CAcroPDTextSelect;

CAcroHiliteList* hilite = new CAcroHiliteList;

大发3Dlong selectionSize;

大发3DpageView.AttachDispatch(pAvdoc->GetAVPageView(),TRUE);

 

大发3Dhilite->CreateDispatch("AcroExch.HiliteList");

if (hilite)

{

//设置为第一页

大发3DpageView.GoTo(0);

/*

这里是设置高亮板的大小

由于没有找到如何在设置高亮板前获取该页内容长度的方法,所以采用设置成极大的长度

大发3D如有朋友知道方法,欢迎提出相互学习

*/

大发3Dhilite->Add(0,4000);

page.AttachDispatch(pageView.GetPage(), TRUE);

textSelect->AttachDispatch(page.CreateWordHilite(hilite->m_lpDispatch));

大发3DpAvdoc->SetTextSelection(textSelect->m_lpDispatch);

selectionSize = textSelect->GetNumText();

大发3Dif (selectionSize && strText.GetLength() < 4000)

{

for(int i = 0;i < selectionSize;i ++)

{

大发3DstrText += textSelect->GetText(i);

}

}

}

大发3D要完整提取出文档中的全部内容,可通过CAcroPDDoc获取pdf总页数,然后利用pageView.GoTo循环每一页,下面给出的完整工程将不包含此部分代码。

相关文章
acrobat
sdk
cms大发3D系统购买咨询
扫描关注 广州阅速软件大发3D有限大发3D
扫描关注 广州阅速大发3D