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

自動化技術(shù)在批量打印方面的應(yīng)用

2014-03-25 01:37:37
電子測試 2014年15期
關(guān)鍵詞:程序設(shè)置

張 園

(陜西職業(yè)技術(shù)學(xué)院,西安,710100)

自動化技術(shù)在批量打印方面的應(yīng)用

張 園

(陜西職業(yè)技術(shù)學(xué)院,西安,710100)

辦公環(huán)境中經(jīng)常需要打印大量文件。打印過程中需要根據(jù)文件格式、幅面大小來調(diào)用相關(guān)程序、選擇打印機并設(shè)置打印參數(shù),人工操作耗時耗力。為了解決以上問題,筆者采用AHK腳本語言編寫了程序,通過AutoHotKey程序的自動化技術(shù)實現(xiàn)了批量打印功能。運行該腳本程序,可以自動打印指定目錄下的所有文件。實際應(yīng)用表明,該腳本程序能夠極大地減少重復(fù)勞動,提高辦公效率。

計算機應(yīng)用技術(shù);批量打印;自動化技術(shù);AHK;AutoHotKey

0 引言

辦公環(huán)境中經(jīng)常需要打印大量文件,在打印過程中還需要根據(jù)不同的文件格式調(diào)用相關(guān)程序,根據(jù)不同的文件幅面大小選擇相應(yīng)的打印機,并設(shè)置各種打印參數(shù)。例如打印10份A4大小的doc文件、10份A3大小的ppt文件和10份A2大小的pdf文件,需要調(diào)用10次Microsoft Word程序、10次Microsoft PowerPoint程序和10次Adobe Acrobat程序,運行30次打印命令,按文件幅面大小分別選擇支持A4和A3幅面的小型打印機和支持A2幅面的大幅面打印機,并設(shè)置紙張來源等打印參數(shù)。以上過程若采取人工操作會非常耗時耗力,造成大量重復(fù)性低效率勞動。為進一步提高辦公效率,筆者采用AHK腳本語言編寫了自動化程序,從而實現(xiàn)了批量打印的功能。

1 自動化腳本

AHK自動化腳本語言是AutoHotKey[1]程序特有的編程語言,適用于自動化編程。AutoHotKey程序是一個Microsoft Windows系統(tǒng)下的免費工具,利用它可以實現(xiàn)如下功能:

1) 幾乎所有的鍵盤發(fā)送和鼠標(biāo)點擊操作;2) 創(chuàng)建鍵盤、游戲手柄、鼠標(biāo)的快捷鍵;3) 自動擴展縮寫;4) 創(chuàng)建自定義數(shù)據(jù)表格、用戶界面、菜單欄;5) 重新映射鍵盤、游戲手柄、鼠標(biāo)的按鍵;6)通過 WinLIRC 腳本響應(yīng)手持遠程控制信號;7)能夠運行 AutoIt v2 腳本;8) 能夠?qū)⒛_本轉(zhuǎn)換成 EXE 執(zhí)行文件。該執(zhí)行文件可以在沒有安裝AutoHotKey的計算機中運行。本文選用AHK腳本語言作為編程語言的主要理由有:第一,AutoHotKey是主流的自動化工具之一;第二,AHK 腳本語言較容易定義快捷鍵。

2 單獨文件打印過程的分析

為了編寫批量打印自動化腳本程序,必須對單獨文件打印過程展開相關(guān)分析。

1) 首先通過文件名稱的后綴判斷文件的格式,如:doc.、ppt.、pdf.等。

2) 根據(jù)文件格式,運行相關(guān)程序,如:doc.格式需要用Microsoft Word 打開,所以需要運行 WINWORD.EXE 程序。

3) 等待程序打開后,加載該文件,如:在Microsoft Word中按Ctrl + O,再輸入文件名并加載該文件。

4) 等待文件加載完成后,調(diào)用打印功能,如:在 Microsoft Word 中按 Ctrl + P。

5) 根據(jù)文件幅面大小選擇打印機。此處屬于批量打印的重點技術(shù),見下文詳述。

6) 根據(jù)文件幅面大小和相應(yīng)打印機,設(shè)置打印機參數(shù)。見下文詳述。

7) 設(shè)置程序的打印參數(shù),如:Adobe Acrobat中的打印頁面大小。

8) 開始打印。

9) 等待打印完成后,關(guān)閉程序。

通過以上分析,就可以利用AHK語言模擬鍵盤的輸入和鼠標(biāo)的點擊,編寫出打印單獨文件的函數(shù),以便批量打印時調(diào)用。

不同格式的文件擁有不同的打印函數(shù),比如打印doc.和打印ppt.需要分別調(diào)用PrintDoc()和PrintPPT()函數(shù)。

3 批量打印的流程

批量打印的流程如下:

1) 運行批量打印腳本。

2) 點擊快捷鍵,調(diào)出程序窗口,指定需要打印的目錄。

3) 打印指定目錄中的所有帶有特定擴展名的文件。此處需要調(diào)用打印單獨文件函數(shù)和設(shè)置打印機的函數(shù)。

4 批量打印的重點技術(shù)

4.1 通過快捷鍵運行腳本程序

AutoHotKey程序的優(yōu)點在于可以方便地定義快捷鍵。例如要使用Win + W鍵來調(diào)用腳本程序,可以使用如下腳本:

#w::

;程序主體

……

return

4.2 取得指定目錄

通過下列腳本可以獲得調(diào)出程序窗口,供用戶指定需要打印的目錄,然后將該目錄字符串存儲到變量 DocPath 中:

FileSelectFolder, DocPath, , 0

if DocPath =

return

4.3 計算指定目錄中帶有特定擴展名的文件的數(shù)量

通過以下函數(shù)可以計算指定目錄中帶有特定擴展名的文件的數(shù)量:

FileNumber(FilePath, FileExt)

{

if FilePath =

return 0

Number := 0

Loop, % FilePath . "" . FileExt

{

Number++

}

return Number

}

FilePath變量為指定目錄。FileExt變量為特定擴展名,比如 "*.pdf"。調(diào)用函數(shù)后返回指定目錄中帶有特定擴展名的文件的數(shù)量。

4.4 打印指定目錄中所有特定擴展名的文件

以 pdf 文件為例,可以通過以下腳本打印指定目錄中所有pdf文件:

PDFNumber := FileNumber(DocPath, "*.pdf") ;計算指定目錄中的 PDF 文件數(shù)量

if PDFNumber > 0

{

OpenAcrobat();打開Acrobat程序

Loop, %DocPath%*.pdf ;循環(huán)打印所有pdf文件

{

;打開pdf文件

Send ^o

WinWaitActive, 打開

ControlSetText, Edit1, %A_ LoopFileFullPath%, 打開

Send {Enter}

;打印當(dāng)前pdf文件

PrintAcrobat()

;打印下一個文件

Send ^w

WinWaitNotActive, Adobe Acrobat, ".pdf"

}

;關(guān)閉Acorobat程序

Send ^q

WinWaitClose, Adobe Acrobat

}

4.5 獲得文件打印幅面大小

文件打印幅面大小影響到打印機的選擇。文件的實際幅面大小與打印大小并不一定相同,例如A3幅面的文件可能會被縮小打印成A4幅面大小,因而文件幅面大小需通過人為設(shè)定。

為了方便批量打印腳本獲得打印幅面大小,所有待打印文件的名稱中必須帶有幅面大小的關(guān)鍵字。例如要將“Test. doc”打印成A4大小,必須增加“A4”的關(guān)鍵字,將文件名稱改為“Test_A4.doc”。同理,“Test_A3.doc”的打印幅面大小是A3,“Test_297x630.pdf”的打印幅面大小是297x630。

利用AHK腳本語言獲得文件名稱后,就能使用正則表達式過濾得到文件名稱中的幅面大小。比如關(guān)鍵字為"297x630",為了得到打印寬度和長度,可以利用如下腳本:

RegExMatch(PrintSize, "(.*)x(.*)", SubPat)

input_width := SubPat1

input_length := SubPat2

其中,PrintSize是文件名稱中的關(guān)鍵字,input_width是打印寬度,input_length是打印長度。

4.6 選擇打印機

辦公環(huán)境下,可能同時存在多個打印機,比如1臺用于打印A4、A3幅面文件的小型打印機和1臺用于打印A2、A1等幅面文件的大幅面打印機。在這種情況下,需要對打印機設(shè)置編號,比如設(shè)置小型打印機為Printer_One,大幅面打印機為 Printer_ Two。例子如下:

Printer_One = HP LaserJet 5200

Printer_Two = HP Designjet T7100

需要注意的是,Microsoft Office 2007及更新版本程序的控件難以通過AHK進行控制,因此切換默認打印機應(yīng)該通過調(diào)用Microsoft Windows系統(tǒng)命令行的方式來處理。

SetCurrentPrinter(input_printer)

{

Quotation_Printer = "%input_printer%"

run, rundll32 printui.dll`,PrintUIEntry /y /n %Quotation_Printer%

Sleep, 1000

}

當(dāng)遇到A4、A3幅面文件的時候,調(diào)用小型打印機Printer_ One,當(dāng)遇到其他幅面文件的時候,調(diào)用大幅面打印機Printer_ Two。

if PrintSize = A4

SetCurrentPrinter(Printer_One)

else if PrintSize = A3

SetCurrentPrinter(Printer_One)

else

SetCurrentPrinter(Printer_Two)

4.7 設(shè)置打印機參數(shù)

由于不同的打印機的設(shè)置界面是不同的,打印幅面的大小也會影響到打印機的設(shè)置,因而必須編寫針對性的函數(shù)來設(shè)置打印機參數(shù)。例如對于Printer_One和Printer_Two兩個打印機,需要有兩個函數(shù)SetPrinterOne(PrintSize)和SetPrinterTwo(PrintSize)來設(shè)置打印機參數(shù)。

對于小型打印機HP LaserJet 5200來說,一般文件幅面為A4時,需要使用紙盒1,文件幅面為A3時,需要使用紙盒2,可以使用如下腳本來實現(xiàn):

if PrintSize = A4

{

Control, ChooseString, A4, ComboBox2, %Printer_ One%

Control, ChooseString, 紙盒 1, ComboBox3, %Printer_ One%

}

else if PrintSize = A3

{

Control, ChooseString, A3, ComboBox2, %Printer_One%

Control, ChooseString, 紙盒 2, ComboBox3, %Printer_ One%

}

else

{

MsgBox, 小型打印機無法識別的尺寸:%PrintSize%

Exit

}

再舉一實例,對于大幅面打印機HP Designjet T7100來說,如果文件幅面不是現(xiàn)有的A2、A1等尺寸,而是"297x630"這種不常見的尺寸,則必須自定義紙張大小。

;設(shè)置自定義紙張尺寸

ControlClick, Button5, %Printer_Two%

WinWaitActive, 自定義紙張尺寸

WinActivate, 自定義紙張尺寸

ControlClick, Button3, 自定義紙張尺寸

ControlSetText, Edit1, %output_width%, 自定義紙張尺寸 ;在此處設(shè)置紙張寬度

ControlSetText, Edit2, %output_length%, 自定義紙張尺寸 ;在此處設(shè)置紙張長度

ControlSetText, Edit3, Custom, 自定義紙張尺寸

;保存自定義紙張尺寸

WinActivate, 自定義紙張尺寸

ControlClick, Button6, 自定義紙張尺寸

;覆蓋原始尺寸

Sleep, 500

WinActivate, 警告

ControlClick, Button1, 警告

;退出自定義紙張尺寸的設(shè)置

WinActivate, 自定義紙張尺寸

ControlClick, Button8, 自定義紙張尺寸

5 批量打印在辦公環(huán)境中的實際應(yīng)用

本文腳本編寫完成后,已經(jīng)通過測試,并用于實際辦公環(huán)境中,取得了良好的效果。利用批量打印腳本,只需要以下兩步就能完成整個目錄中所有文件的打印,操作步驟不隨文件類型和數(shù)量的變化而變化:

1) 點擊快捷鍵。2) 選擇打印目錄。

其他步驟,例如打開相關(guān)程序、打印機的選擇、打印機的設(shè)置、軟件的打印設(shè)置等,都由腳本自動完成,不需要人工干預(yù),極大地提升了工作效率。如表1所示,文件數(shù)量越多,提升效率就越高,當(dāng)文件數(shù)量為100時,腳本打印提升效率為400倍。

Application of automation technology in batch print area

Zhang Yuan
(Shaanxi Vocational &Technical College,Xi’an,710100)

Printing a large number of files is often needed in the office work.Calling the relevant program, selecting a printer and setting printing parameters are needed in the printing process according to the file format and the size of the print area.The manual operation is time-consuming.In order to solve these problems,the author used the AHK script language to make a program,through the techniques of automation AutoHotKey procedures to achieve the batch print function.Running the script program,all files in the specified directory could be automatically printed.The actual application shows that the script can greatly reduce duplication of effort and enhance the office efficiency.

computer application technology;batch print; automation technology;AHK;AutoHotKey

猜你喜歡
程序設(shè)置
中隊崗位該如何設(shè)置
少先隊活動(2021年4期)2021-07-23 01:46:22
試論我國未決羈押程序的立法完善
7招教你手動設(shè)置參數(shù)
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
本刊欄目設(shè)置說明
中俄臨床醫(yī)學(xué)專業(yè)課程設(shè)置的比較與思考
創(chuàng)衛(wèi)暗訪程序有待改進
艦船人員編制的設(shè)置與控制
主站蜘蛛池模板: 亚洲成人一区二区| 99热亚洲精品6码| 国产亚洲精品自在线| 色婷婷亚洲综合五月| 欧美一级色视频| 成人在线观看不卡| 五月天丁香婷婷综合久久| 亚洲精品午夜天堂网页| 麻豆精品在线播放| 乱色熟女综合一区二区| 一区二区三区精品视频在线观看| 国内精自线i品一区202| 久久免费看片| 国产成人综合欧美精品久久| 精品综合久久久久久97超人| av在线无码浏览| 麻豆精选在线| 国产伦片中文免费观看| 亚洲中文字幕手机在线第一页| 综合色在线| 综合久久久久久久综合网| 亚洲免费福利视频| 激情在线网| 久久一日本道色综合久久| 亚洲成人在线网| 玖玖精品视频在线观看| 亚洲AV无码乱码在线观看代蜜桃 | 国产精品黄色片| 亚洲国产成人麻豆精品| 国产精品亚洲欧美日韩久久| 亚洲成肉网| 无码aⅴ精品一区二区三区| 99视频在线精品免费观看6| 亚洲日本精品一区二区| 久久国产精品麻豆系列| 一本综合久久| 欧美一级专区免费大片| 国产一区二区福利| 99热国产这里只有精品无卡顿"| 亚洲AV成人一区二区三区AV| 国产成人精品一区二区免费看京| 国产永久无码观看在线| 国产在线拍偷自揄拍精品| 国产视频自拍一区| 中文纯内无码H| 超薄丝袜足j国产在线视频| 国产成人精品午夜视频'| 国产乱子伦手机在线| 日韩在线播放中文字幕| 欧美五月婷婷| 在线无码九区| 中文字幕首页系列人妻| 四虎精品国产永久在线观看| 丁香婷婷激情综合激情| 国产成年无码AⅤ片在线| 国产精品大白天新婚身材| 日韩美一区二区| 精品国产三级在线观看| 国产精品成人免费视频99| 欧美a网站| 日本一区高清| 欧美一级黄片一区2区| 国产女人喷水视频| 最新国产精品第1页| jizz在线观看| 无码aaa视频| 国产精品专区第一页在线观看| 日韩成人免费网站| 91破解版在线亚洲| 中文天堂在线视频| 在线不卡免费视频| 欧美中文字幕无线码视频| 99久久人妻精品免费二区| 国产熟睡乱子伦视频网站| 中文字幕乱码二三区免费| 91在线一9|永久视频在线| 福利在线不卡| 亚洲高清资源| 蜜芽国产尤物av尤物在线看| 不卡午夜视频| 国产精品第一区在线观看| 波多野结衣无码AV在线|