999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

超聲探頭校準(zhǔn)中信息管理自動化的研究

2015-01-29 02:57:56孫景峰劉慧英唐瑞琨
電子設(shè)計(jì)工程 2015年13期
關(guān)鍵詞:方法

孫景峰,劉慧英,周 新,唐瑞琨,紀(jì) 超

(西北工業(yè)大學(xué) 陜西 西安 710072)

計(jì)量工作的最后要根據(jù)檢定數(shù)據(jù)出具檢定證書,該證書格式相對固定,只是其中的數(shù)據(jù)、圖表等不同,對于重復(fù)性的檢定工作,每次手工編寫證書,既浪費(fèi)時間又容易出錯。因此,自動生成規(guī)范準(zhǔn)確的Word證書具有重要的應(yīng)用價值。鑒于檢定證書的特殊性,未經(jīng)允許不得部分復(fù)制,若將可編輯的Word文檔轉(zhuǎn)換成圖片格式,既方便查看又可避免隨意更改。概述Word自動化原理的基礎(chǔ)之上,在Visual C++2008平臺下,導(dǎo)入Word 2010的類庫,在程序中調(diào)用OLE自動化對象的方法來改變其屬性以完成對Word文檔的自動化操作。

采用文檔模板技術(shù),避免了反復(fù)執(zhí)行相同操作;綜合運(yùn)用書簽定位和光標(biāo)跳轉(zhuǎn)等方法,實(shí)現(xiàn)圖表、文字并茂的規(guī)范檢定證書的自動生成,減少了錯誤率并有效地提高了工作效率。同時利用Microsoft Office提供的虛擬打印機(jī)組件,將Word文檔轉(zhuǎn)換為TIFF或JPEG等圖片格式,實(shí)現(xiàn)了文檔批量圖片化。

1 Word自動化原理概述

1.1 OLE自動化

OLE(Object Linking and Embedding,對象鏈接與嵌入)自動化是Windows應(yīng)用程序操縱另一個程序的一種機(jī)制。該技術(shù)允許在一個程序的內(nèi)部操控另一個程序所提供的對象,被操控的一端稱為自動化服務(wù)器或自動化對象,操控的一端稱為自動化控制器或自動化客戶端。自動化服務(wù)器是一個擁有IDispatch接口的特殊組件,自動化控制器通過IDispatch接口可以調(diào)用自動化對象的所有方法和屬性。以Microsoft Word為例,其自動化模型可簡化為如圖1所示。

圖1 Word自動化模型Fig.1 Model of word automation

1.2 MFC對自動化對象的支持

自動化技術(shù)有自己的一套數(shù)據(jù)類型,在使用自動化對象時必須使用自動化兼容的數(shù)據(jù)類型[1-2]。自動化對象使用的基本數(shù)據(jù)類型為VARIANT結(jié)構(gòu)類型,該結(jié)構(gòu)包含兩個有意義的域:一是數(shù)據(jù)的確切類型,二是具體數(shù)據(jù)或數(shù)據(jù)指針。MFC對VARIANT數(shù)據(jù)類型進(jìn)行封裝提供了COleVariant類。對于每一個自動化兼容的數(shù)據(jù)類型,COleVariant類都有相應(yīng)的構(gòu)造函數(shù)。需要引起注意的是在使用COleVariant類時[3],很多方法的參數(shù)為可選,但不能為空,此時可使用如下的COleVariant對象:

COleVariant covOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);

這個對象的值的確切類型為VT_ERROR,具體值為DISP_E_PARAMNOTFOUND,即被標(biāo)記為可選參數(shù)。更重要的是,MFC也對自動化服務(wù)器的IDispatch接口進(jìn)行了封裝,提供了COleDispatchDriver類來處理該接口。編程者只需要定義COleDispatchDriver子類的對象,然后訪問該對象的成員函數(shù),改變對象的屬性即可完成自動化操作。MFC庫封裝了所有自動化對象所必需的一些代碼,編程者只需把注意力集中在對象的方法和屬性上面,不必過多關(guān)注自動化對象的參數(shù)處理以及調(diào)用傳遞過程。

2 Word自動化功能的實(shí)現(xiàn)

2.1 Word中的自動化對象

Word本身提供了對象庫(Object Library)文件,在Visual C++2008下,導(dǎo)入Word 2010安裝路徑下的類庫MSWORD.OLB,使之成為VC中可用的類文件,在程序中即可調(diào)用Word中相應(yīng)的OLE對象,如Application對象、Documents對象等[4-6]。每一個對象都有自己的方法和屬性,都包含了Word的部分功能。事實(shí)上,對Word文檔的每一次可視操作都與修改對象有關(guān)。為了更有邏輯,更有層次地操作Word,Microsoft把應(yīng)用(Application)按邏輯功能劃分為如圖所示的樹形結(jié)構(gòu),構(gòu)成了Word對象模型。

圖2 Word對象的層次結(jié)構(gòu)Fig.2 Hierarchy of word objects

2.2 數(shù)據(jù)庫支持

為了實(shí)現(xiàn)檢定數(shù)據(jù)信息的快速錄入,在后臺維護(hù)一個ADO數(shù)據(jù)庫,建立了檢定儀器表、制造單位表、檢定依據(jù)表及檢定員表等作為生成檢定證書的必要參數(shù),供生成證書時選擇,從而避免了每次手工輸入。文檔模板亦可視為數(shù)據(jù)庫的擴(kuò)展部分,在程序外部設(shè)計(jì)好文檔風(fēng)格,充分利用Word手工編輯證書的靈活性,減少代碼量,提高了執(zhí)行效率。

2.3 證書生成實(shí)例

以自動生成證書部分為例,介紹在VC中Word的自動化創(chuàng)建和數(shù)據(jù)填充功能的實(shí)現(xiàn)。實(shí)例的內(nèi)容來自于為某公司研發(fā)的超聲設(shè)備自動檢定系統(tǒng),在檢定工作的最后,根據(jù)檢定數(shù)據(jù)出具檢定證書。其原理如圖3所示,以下將按照創(chuàng)建順序給出主要實(shí)現(xiàn)步驟。

圖3 文檔自動生成原理圖Fig.3 Schematic diagram of word automation

2.3.1 創(chuàng)建工程,引入類庫

創(chuàng)建一個基于對話框的工程,在工程中導(dǎo)入Word類型庫,根據(jù)需要添加相應(yīng)接口即生成對應(yīng)的類,如CApplication類,CDocument0類,CSelection類,CBookmarks類等,再包含相關(guān)頭文件。

2.3.2 初始化COM庫

OLE自動化技術(shù)建立在COM基礎(chǔ)之上,只是簡化了COM的一些底層實(shí)現(xiàn)細(xì)節(jié)。因此,在項(xiàng)目的應(yīng)用程序類的InitInstance()成員函數(shù)中,調(diào)用AfxOleInit()函數(shù),完成COM初始化。

2.3.3 創(chuàng)建Word服務(wù)并引用模板

要操作Word,首先要創(chuàng)建Word服務(wù),之后再通過Add方法引用模板,即:

wordDocs=wordApp.get_Documents();

COleVariant WordTemplate=_T("D:\檢定證書_模板.dot");

wordDoc=wordDocs.Add(&WordTemplate,covOptional,covOptional,covOptional);

2.3.4 填寫內(nèi)容

與手動操作Word一樣,先要將光標(biāo)移動到目標(biāo)位置,填寫的內(nèi)容才有意義。書簽定位法與光標(biāo)跳轉(zhuǎn)法相結(jié)合能達(dá)到理想的效果。此處以填寫表格內(nèi)容為例,首先用Selection對象的Goto()方法使光標(biāo)跳轉(zhuǎn)至指定書簽位置,然后采用光標(biāo)移動的方法,完成表格內(nèi)容填寫工作[7]。

wordSel=wordApp.get_Selection();

wordSel.GoTo (COleVariant((short)wdGoToBookmark),COleVariant((short)0),COleVariant((short)0),

COleVariant(_T("bk_SentBy"))); //轉(zhuǎn)到書簽處

wordSel.TypeText(m_strSentBy);//填寫送檢單位名稱

wordSel.MoveDown(COleVariant((short)wdLine),COleVariant((short)1),COleVariant((short)0));

不論是文字錄入,表格填寫還是圖片的插入,都可以采用這種方法實(shí)現(xiàn)精準(zhǔn)定位。經(jīng)過以上步驟,即可自動生成規(guī)范、美觀的證書文檔。

2.3.5 運(yùn)行界面

程序運(yùn)行界面如圖4所示。

圖4 程序運(yùn)行界面Fig.4 Interface of the program

3 文檔圖片化

檢定證書具有法律效力,未經(jīng)書面許可不得部分復(fù)制。將Word版本證書轉(zhuǎn)換為圖片格式發(fā)布可以防止使用者輕易改變證書內(nèi)容,對版權(quán)保護(hù)起到積極作用。

將Word文檔手動轉(zhuǎn)換為圖片格式的方法較多。文獻(xiàn)[8]提出了一種在WPS文字中安裝“輸出為圖片格式”插件的方法,不適合MSWord環(huán)境;文獻(xiàn)[9]提出了在Word中將文本選擇性粘貼為增強(qiáng)型圖元文件的方法實(shí)現(xiàn)文檔圖片化,該法一次最多只能轉(zhuǎn)換一頁文檔;文獻(xiàn)[10]提出了借助于第三方虛擬打印技術(shù)將文檔轉(zhuǎn)換為圖片的方法,值得借鑒。綜合考慮兼容性、簡便程度及能否批量轉(zhuǎn)換等因素,本文采取調(diào)用MS Office 2010提供的Microsoft Office Document Image Writer虛擬打印機(jī)的方法,將Word文檔批量轉(zhuǎn)換為TIFF或JEPG等格式的圖片文件。實(shí)現(xiàn)流程及核心代碼如下。

圖5 文檔圖片化流程圖Fig.5 Flow chart of document imaging

1)得到系統(tǒng)默認(rèn)打印機(jī)名稱并保存;

PRINTDLG printDlg; //該結(jié)構(gòu)包含了打印對話框中的所有信息

AfxGetApp()->GetPrinterDeviceDefaults(&printDlg);

lpDevMode= (LPDEVMOD)::GlobalLock (printDlg.hDevMode);

strDefualtDev=lpDevMode->dmDeviceName;

2)設(shè)定新的默認(rèn)打印機(jī)

::SetDefaultPrinter(_T("Microsoft Office Document Image Writer"));

3)取得默認(rèn)打印機(jī)的屬性,根據(jù)需要修改屬性,如打印分辨率、打印方向等;

調(diào)用DocumentProperties()函數(shù)設(shè)置打印機(jī)屬性,并用API函數(shù)SetPrinter()使更改生效。

4)打印到文件

調(diào)用文檔的PrintOut方法,其中第一個參數(shù)設(shè)為False,表示非后臺打印,即使關(guān)閉word,打印也不會停止;第四個參數(shù)為保存路徑;第四個參數(shù)指定輸出文件的路徑和文件名;第十一個參數(shù)為True,表示打印到文件。

5)還原默認(rèn)打印設(shè)備

::SetDefaultPrinter(strDefualtDev);

6)退出 Word

wordDoc.Close(covFalse,covOptional,covOptional);//關(guān)閉文檔,不保存

wordApp.Quit(covOptional,covOptional,covOptional);//退出Word

wordDoc.ReleaseDispatch();//斷開與Word服務(wù)器的關(guān)聯(lián)

wordApp.ReleaseDispatch();

上述方法實(shí)現(xiàn)了在不阻塞程序運(yùn)行的情況下,靜默地將Word文檔批量轉(zhuǎn)換為多張圖片并保存在一個圖像文件中,避免了對用戶的不良打擾,在保護(hù)證書版權(quán)的同時,便于證書歸檔及查看。圖6為生成的圖片格式證書。為了保證插入文字后格式依然規(guī)整,圖4中“送檢單位”及以下各欄是由去掉邊框的表格構(gòu)成。

圖6 圖片格式的檢定證書Fig.6 Image format of verification certificate

4 結(jié)論

本文在闡釋W(xué)ord自動化編程原理的基礎(chǔ)上,例舉了一個在VC平臺下,基于OLE技術(shù)的應(yīng)用案例,展示了書簽定位與光標(biāo)跳轉(zhuǎn)技術(shù)在生成規(guī)范文檔上的靈活性;利用Office自帶的虛擬打印機(jī)組件,實(shí)現(xiàn)了不借助第三方軟件支持,將Word文檔批量轉(zhuǎn)換為圖片的功能,解決了工程實(shí)踐上的突出問題。本文對工程中的報表生成有很大的參考價值,同時為版權(quán)保護(hù)提供了一個簡便高效的方法。

[1]潘愛民.COM原理與應(yīng)用[M].北京:清華大學(xué)出版社,1999.

[2]金良鋒,周文詳.WORD試驗(yàn)報告的自動生成[J].中國測試技術(shù),2007,33(4):112-115.JIN Liang-feng,ZHOU Wen-xiang.Auto generation of experiment report in Word form[J].China Measurement Technology,2007,33(4):112-115.

[3]徐格寧,馮曉蕾,陶元芳,等.基于COM+VC+Word技術(shù)的產(chǎn)品設(shè)計(jì)說明書自動化研究[J].中國工程機(jī)械學(xué)報ISTIC,2009,7(3):294-299.XUGe-ning,FENGXiao-lei,TAOYuan-fang,et al.Automation on product design manual via COM,VC and Word[J].Chinese Journal of Construction Machiner,2009,7(3):294-299.

[4]車曉波,王知學(xué),王磊.在實(shí)現(xiàn) Word自動化操作中書簽的應(yīng)用[J].信息技術(shù),2013(8):148-150.CHE Xiao-bo,WANG Zhi-xue,WANG Lei.Application of bookmark in Word automatic opetation[J].Information Technology,2009,26(9):123-125.

[5]陳特放,方斌.VC平臺下基于OLE的Word自動化操作應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件,2009,26(9):123-125.CHEN Te-fang,FANG Bin.Applying OLE-based word automation on VC platform[J].Computer Application and Software,2009,26(9):123-125.

[6]熊瑜容,柴毅,王淑娟,等.基于VC++的WORD文檔自動生成技術(shù)[J].計(jì)算機(jī)時代,2010(1):52-54.XIONGYu-rong,CHAI Yi,WANG Shu-juan,et va.Word document automatically generated technology based on VC++[J].Computer Era,2010(1):52-54.

[7]劉春雷,吳重光.用 VC實(shí)現(xiàn) Word自動化操作的研究與應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2004,25(9):1594-1596.LIU Chun-lei,WU Chong-guang.Study and realization of Word automation operation in VC[J].Computer Engineering and Design,2004,25(9):1594-1596.

[8]劉長德.文檔轉(zhuǎn)圖片,打印、保護(hù)兩相宜 [J].電腦愛好者,2010(3):16-16.LIU Chang-de.Document to image[J].Computer fans,2010(3):16-16.

[9]長江水.利用Word實(shí)現(xiàn)文檔轉(zhuǎn)圖片[J].電腦迷,2011(12):63-63.CHANGJiang-shui.Implementation of document transfer into pictures with Word[J].Computer Fans,2011(12):63-63.

[10]王杰.將Word文檔“打印”為圖片[J].網(wǎng)友世界,2011(22):33-34.WANG Jie.Word document printed as a picture[J].Net world,2011(22):33-34.

猜你喜歡
方法
中醫(yī)特有的急救方法
中老年保健(2021年9期)2021-08-24 03:52:04
高中數(shù)學(xué)教學(xué)改革的方法
河北畫報(2021年2期)2021-05-25 02:07:46
化學(xué)反應(yīng)多變幻 “虛擬”方法幫大忙
變快的方法
兒童繪本(2020年5期)2020-04-07 17:46:30
學(xué)習(xí)方法
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
最有效的簡單方法
山東青年(2016年1期)2016-02-28 14:25:23
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 国产成人高清亚洲一区久久| 国产99视频精品免费视频7| 国产午夜福利在线小视频| 国产成人精品一区二区不卡| 四虎在线高清无码| 亚洲一级毛片| 91免费在线看| 国产精品久久久久久影院| 99这里只有精品免费视频| 欧美亚洲香蕉| 久久视精品| 国产中文一区a级毛片视频| 精品一区二区三区视频免费观看| 色婷婷综合激情视频免费看| 亚洲青涩在线| 国产欧美高清| 久草青青在线视频| 黄片一区二区三区| 免费国产不卡午夜福在线观看| 国产毛片高清一级国语| 综合五月天网| 亚洲精品视频免费| 特级aaaaaaaaa毛片免费视频| 中文字幕资源站| 国产精品福利在线观看无码卡| 91在线精品免费免费播放| 日本亚洲欧美在线| 高清久久精品亚洲日韩Av| 中文字幕永久视频| 日韩在线播放欧美字幕| 亚洲永久色| 国产日韩欧美视频| 婷婷伊人久久| 日本三级黄在线观看| 欧美国产三级| 日韩大片免费观看视频播放| 九九久久精品免费观看| 国产日本欧美在线观看| 日韩欧美国产成人| 亚洲天堂成人| 久久国产热| 久久99久久无码毛片一区二区| 欧洲熟妇精品视频| 国产欧美视频综合二区| 欧美专区在线观看| 91视频99| 欧美日韩第三页| 尤物在线观看乱码| 99re免费视频| 色婷婷天天综合在线| 欧洲日本亚洲中文字幕| 97视频精品全国在线观看| 中字无码av在线电影| 欧美国产综合视频| 亚洲福利视频一区二区| 亚洲无限乱码一二三四区| 又黄又湿又爽的视频| 中文字幕永久在线观看| 老司机aⅴ在线精品导航| 久久综合丝袜长腿丝袜| 在线精品视频成人网| 亚洲综合久久一本伊一区| 91精品专区| 色综合激情网| 国产男人的天堂| 亚洲中文字幕无码mv| 国产精品lululu在线观看| 日韩av手机在线| 精品国产乱码久久久久久一区二区| 高h视频在线| 欧美成人日韩| 亚洲视频a| 国产欧美精品午夜在线播放| 干中文字幕| 成年女人a毛片免费视频| 亚洲码一区二区三区| 亚洲色图欧美在线| 国产永久在线视频| 国产精品无码AV中文| 狠狠亚洲五月天| 2021天堂在线亚洲精品专区| 国产精品毛片在线直播完整版|