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视频在线精品免费观看6| 久久精品无码专区免费| 国产无吗一区二区三区在线欢| 成人午夜亚洲影视在线观看| 91蜜芽尤物福利在线观看| 成色7777精品在线| 无码中文字幕乱码免费2| 日韩一区二区在线电影| 又爽又大又黄a级毛片在线视频| 久热99这里只有精品视频6| 欧美成人精品在线| 亚洲中文字幕在线精品一区| 欧美人人干| 亚洲香蕉久久| 亚洲资源在线视频| www.av男人.com| 毛片网站观看| 亚洲国产成人自拍| 71pao成人国产永久免费视频| 国产成人亚洲毛片| jizz在线观看| 国产一区二区三区夜色| 亚洲国产综合精品一区| V一区无码内射国产| 在线a网站| 久久国产精品麻豆系列| 久久免费视频6| 毛片基地视频| 成人无码一区二区三区视频在线观看| 欧美啪啪网| 99国产精品一区二区| 国产精品自在拍首页视频8| 日韩在线1| 91色在线观看| 直接黄91麻豆网站| 国产精鲁鲁网在线视频| 青草免费在线观看| 99999久久久久久亚洲| 日韩一区二区在线电影| 免费一极毛片| 国产精品久久自在自线观看| 国产无码制服丝袜| 97国内精品久久久久不卡| 91视频99| 久热99这里只有精品视频6| 日韩 欧美 小说 综合网 另类| 欧美日韩国产在线播放| 国产香蕉国产精品偷在线观看| 国产麻豆91网在线看| 99久久精品国产麻豆婷婷| 久久综合成人| 少妇被粗大的猛烈进出免费视频| 国产女人18水真多毛片18精品| 一级毛片免费高清视频| 国产福利免费视频| 亚洲三级影院| 三级毛片在线播放| 2020国产精品视频| 亚洲v日韩v欧美在线观看| 囯产av无码片毛片一级| 国产美女叼嘿视频免费看| 久久综合五月婷婷| 91久久精品国产| www.国产福利| 久久这里只有精品8| 91精品日韩人妻无码久久| www.亚洲一区二区三区| jizz亚洲高清在线观看| 嫩草国产在线| 中文字幕精品一区二区三区视频 | 波多野结衣爽到高潮漏水大喷| 四虎影视8848永久精品| 伊人欧美在线| 欧美成人免费午夜全| 无码福利日韩神码福利片| 五月婷婷丁香综合| 一本久道热中字伊人| 亚洲综合二区| 国产麻豆va精品视频| 欧美日一级片|