人妻无码中文字幕永久在线,99RE6这里有精品热视频,国产成人综合色就色综合 ,蜜臀av在线观看

新聞建站cms系統(tǒng)、政府cms系統(tǒng)定制開發(fā)

廣州網(wǎng)站建設(shè)公司-閱速公司

asp.net新聞發(fā)布系統(tǒng)、報紙數(shù)字報系統(tǒng)方案
/
http://www.jdki.com.cn/
廣州網(wǎng)站建設(shè)公司
您當(dāng)前位置:首頁>網(wǎng)站技術(shù)

網(wǎng)站技術(shù)

利用acrobat sdk提取pdf文檔內(nèi)容

發(fā)布時間:2019/5/18 13:45:28  作者:Admin  閱讀:1592  

廣告:

0x00 背景

HackingTeam泄漏事件影響頗大,415.77G的內(nèi)容大多是郵件內(nèi)容,分析起來比較麻煩,因而被大多數(shù)人忽略。網(wǎng)上有很多郵件分析的文章HT郵件分析,主要是針對郵件關(guān)聯(lián)進(jìn)行分析,若對郵件內(nèi)容進(jìn)行分析則需提取郵件附件中的內(nèi)容,再針對內(nèi)容做進(jìn)一步分析。本文背景其實與上文無關(guān),只是借此提升逼格,下面將介紹如何利用acrobat SDK提取pdf文檔內(nèi)容。

0x01 acrobat導(dǎo)入

只要安裝了Adobe Acrobat,就能在其安裝目錄下找到acrobat.tlb,其中包含了adobe公司提供的接口,可對pdf進(jìn)行各種操作參考文檔,使用類向?qū)⑵鋵?dǎo)入。

提取文本內(nèi)容需導(dǎo)入CAcroApp、CAcroAVDoc、CAcroAVPageView、CAcroPDPage、CAcroPDTextSelect、CAcroHiliteList。

0x02 提取文檔內(nèi)容

首先需要”打開”pdf,核心代碼如下:

CAcroApp *pAcrpApp = new CAcroApp;

COleException e;

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

CAcroAVDoc *pAvdoc = new CAcroAVDoc;

pAvdoc->CreateDispatch("AcroExch.AVDoc",&e);

//打開pdf,其中PDFName為全路徑

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

{

printf("open pdf failed");

...

return 0;

}

打開文檔后,通過pAvdoc可選擇頁數(shù)(默認(rèn)為第一頁),創(chuàng)建高亮板(CAcroHiliteList),將選擇頁數(shù)的內(nèi)容加入高亮板,然后就可以從中提取出該頁的內(nèi)容,核心代碼如下:

CAcroAVPageView pageView;

CAcroPDPage page;

CAcroPDTextSelect* textSelect = new CAcroPDTextSelect;

CAcroHiliteList* hilite = new CAcroHiliteList;

long selectionSize;

pageView.AttachDispatch(pAvdoc->GetAVPageView(),TRUE);

 

hilite->CreateDispatch("AcroExch.HiliteList");

if (hilite)

{

//設(shè)置為第一頁

pageView.GoTo(0);

/*

這里是設(shè)置高亮板的大小

由于沒有找到如何在設(shè)置高亮板前獲取該頁內(nèi)容長度的方法,所以采用設(shè)置成極大的長度

如有朋友知道方法,歡迎提出相互學(xué)習(xí)

*/

hilite->Add(0,4000);

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

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

pAvdoc->SetTextSelection(textSelect->m_lpDispatch);

selectionSize = textSelect->GetNumText();

if (selectionSize && strText.GetLength() < 4000)

{

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

{

strText += textSelect->GetText(i);

}

}

}

要完整提取出文檔中的全部內(nèi)容,可通過CAcroPDDoc獲取pdf總頁數(shù),然后利用pageView.GoTo循環(huán)每一頁,下面給出的完整工程將不包含此部分代碼。

廣告:

相關(guān)文章
acrobat
sdk
cms新聞系統(tǒng)購買咨詢
掃描關(guān)注 廣州閱速軟件科技有限公司
掃描關(guān)注 廣州閱速科技