www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 工業(yè)控制 > 電子設(shè)計自動化
[導讀]PDF介紹PDF是“Portable Document Format 可移植文檔格式”的縮寫,它是Adobe公司開發(fā)的一種電子文檔格式,已經(jīng)成為國際通用的電子文檔交換事實標準。PDF文件可以在各種平臺下閱讀、編輯、發(fā)布。該文件格式支持字體、

PDF介紹

PDF是“Portable Document Format 可移植文檔格式”的縮寫,它是Adobe公司開發(fā)的一種電子文檔格式,已經(jīng)成為國際通用的電子文檔交換事實標準。PDF文件可以在各種平臺下閱讀、編輯、發(fā)布。該文件格式支持字體、圖像、甚至任何附件的嵌入。

Adobe公司提供了兩種軟件用于處理PDF文檔,分別是Acrobat及Acrobat Reader:前者功能強大,不僅能閱讀,還可以創(chuàng)建或編輯PDF文檔,但要收費;后者只具備閱讀功能,為免費軟件。

用ActiveX控件顯示PDF文件

Acrobat(Reader)提供了一個ActiveX控件pdf.ocx(7.x版本為AcroPDF.dll),可以在用戶程序中實現(xiàn)PDF文件的顯示。對于老版本的軟件(4.x及以前的版本),只需按照ActiveX控件的標準編程步驟即可:

(1)把控件pdf.ocx加入VC項目,并生成控件類

(2)把控件放置在對話框上,或者調(diào)用控件類的成員函數(shù)Create創(chuàng)建控件對象

(3)調(diào)用控件的屬性或方法打開PDF文件

由于這不屬于本文要討論的內(nèi)容,詳情請參考《Visual C++技術(shù)內(nèi)幕》中“使用ActiveX控件”一章,這里不再贅述。

但是對于新版軟件(5.x/6.x/7.x),上述方法不再適用:新版控件不是一個完整意義上的ActiveX控件,它缺少生成控件類所必需的類型庫信息,無法把控件加入VC項目。

在這種情況下,需要調(diào)用函數(shù)CWnd::CreateControl來創(chuàng)建控件對象,然后獲取控件的IDispatch接口指針,通過該指針訪問控件的屬性及方法。

直接用IDispatch指針調(diào)用控件的屬性及方法是一件極其繁瑣的工作,好在新版軟件提供了類型庫,可以用它生成一個自動化組件驅(qū)動類(從COleDispatchDriver派生)。借助該類,可以大大簡化對控件屬性及方法的調(diào)用。

雖然可以用控件顯示PDF文件,但它只是一個代理,真正的工作還是由Acrobat(Reader)完成的,因此必須安裝這兩種軟件中的一個。

實現(xiàn)步驟

以下以Acrobat(Reader)5.x/6.x為例,介紹如何用新版控件實現(xiàn)PDF文件的顯示。

運行VC,新建一個基于對話框的MFC應用程序ViewPDF,在設(shè)置生成選項時,選中“ActiveX Controls”,其余使用缺省值即可。生成后,刪除對話框中的所有控件。

接下來創(chuàng)建自動化組件驅(qū)動類:打開類向?qū)?,點擊“Add Class”按鈕,在彈出的菜單中選擇“From a type library”,用類型庫文件pdf.tlb產(chǎn)生所需的組件類,該文件位于Acrobat軟件安裝目錄下的ActiveX子目錄。

編輯ViewPDFDlg.h,為類CViewPDFDlg添加兩個數(shù)據(jù)成員:#include "pdf.h" // 組件類的頭文件
class CViewPDFDlg : public CDialog
{
 protected:
_DPdf m_drvPDF; // PDF組件驅(qū)動對象,_DPdf是我們剛生成的組件類
CWnd m_wndPDF; // PDF控件窗口
... ...在類成員函數(shù)CViewPDFDlg::OnInitDialog中插入下列語句:// 為主窗口添加WS_CLIPCHILDREN風格,否則控件顯示不正常
ModifyStyle(0, WS_CLIPCHILDREN);
// 獲取對話框的客戶區(qū)矩形
CRect rt;
GetClientRect(&rt);
// 利用CWnd::CreateControl創(chuàng)建PDF控件窗口
// Acrobat (Reader) 5.x/6.x的控件類ID為"PDF.PdfCtrl.5",7.x為"AcroPDF.PDF.1"
m_wndPDF.CreateControl("PDF.PdfCtrl.5", NULL, WS_CHILD | WS_VISIBLE, rt, this, 0);
// 獲取IDispatch接口指針
LPUNKNOWN lpUnknown = m_wndPDF.GetControl Unknown();
LPDISPATCH lpDispatch;
lpUnknown->QueryInterface(IID_IDispatch, (void**)&lpDispatch);
// 把獲得的接口指針傳遞給組件驅(qū)動對象m_drvPDF,通過它調(diào)用控件的屬性和方法
// 當m_drvPDF銷毀時,會自動釋放接口指針
m_drvPDF.AttachDispatch(lpDispatch);
// 彈出一個“打開”對話框,選擇要顯示的PDF文件
CFileDialog dlg(TRUE);
if (dlg.DoModal() == IDOK)
 // 利用控件的方法LoadFile讀取并顯示PDF文件
 m_drvPDF.LoadFile(dlg.GetPathName());
else
 OnCancel(); // 退出編譯運行程序,選擇要顯示的PDF文件,效果如圖1所示。

圖1
對于Acrobat(Reader)7.x,實現(xiàn)步驟基本與上相同,區(qū)別在于:

(1) 使用AcroPDF.dll生成自動化組件驅(qū)動類,得到的類名為IAcroAXDocShim,頭文件為acropdf.h。

(2) 創(chuàng)建控件窗口時,類ID為AcroPDF.PDF.1。

除了上面用到的LoadFile外,控件還提供了許多有用的方法,常見的有:

Print 打印文件
setZoom 設(shè)置頁面的百分比
setShowToolbar 顯示/隱藏工具欄
gotoFirstPage 跳轉(zhuǎn)到第一頁
gotoLastPage 跳轉(zhuǎn)到最后一頁
gotoNextPage 跳轉(zhuǎn)到下一頁
gotoPreviousPage 跳轉(zhuǎn)到上一頁



來源:ks991次

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉