專利名稱:一種打印實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及打印技術(shù),特別涉及一種能夠提高打印安全的打印實(shí)現(xiàn)方法。
背景技術(shù):
電子文檔可通過打印機(jī)打印成紙質(zhì)文件,以便于傳閱、存檔。參見圖1,
現(xiàn)有的打印實(shí)現(xiàn)方法可以通過如下步驟來實(shí)現(xiàn)
步驟101,在Windows操作系統(tǒng)中安裝與目標(biāo)打印機(jī)匹配的打印驅(qū)動程 序,其中,與目標(biāo)打印機(jī)匹配的打印驅(qū)動程序通常由該打印機(jī)的制造廠商提供。
步驟102,應(yīng)用程序調(diào)用Windows 4喿作系統(tǒng)中的相關(guān)應(yīng)用程序接口 (API)函數(shù),創(chuàng)建打印機(jī)設(shè)備描述表(DC)。
步驟103,調(diào)用Windows操作系統(tǒng)中的不同圖形設(shè)備接口 (GDI)函數(shù), 對待打印文件進(jìn)行處理得到打印數(shù)據(jù),并發(fā)送到對應(yīng)打印機(jī)的打印驅(qū)動程序。
本步驟中,處理得到的打印數(shù)據(jù)可以包括矢量圖、和/或文字信息等。 步驟104, Windows操作系統(tǒng)中的驅(qū)動程序?qū)⒔邮盏降拇蛴?shù)據(jù)轉(zhuǎn)換為
目標(biāo)打印機(jī)能夠識別的格式,通過Windows操作系統(tǒng)中的端口傳輸?shù)侥繕?biāo)
打印機(jī),進(jìn)行打印輸出。 至此,本流程結(jié)束。
在某些應(yīng)用場合中,打印安全性是一項(xiàng)基本需求。例如,在政府部門、 銀行、以及保密單位中,用戶對對某些重要的文檔需要進(jìn)行嚴(yán)格管理,在打 印時,希望防止打印數(shù)據(jù)被竊取、杜絕網(wǎng)絡(luò)打印的安全隱患、以及嚴(yán)格控制打印份數(shù)、打印權(quán)限等。
然而,如圖1所示的打印實(shí)現(xiàn)方法雖然能夠?qū)崿F(xiàn)打印,但由于存在如下
問題,因而無法保證打印安全性,無法滿足上述的用戶需求
1 )該方法是基于Windows操作系統(tǒng)來實(shí)現(xiàn)的,但由于Windows操作系
統(tǒng)的技術(shù)公開性,以及其存在某些安全漏洞,因而可以很容易地利用各種應(yīng)
用程序通過Windows操作系統(tǒng)截獲打印數(shù)據(jù),使得打印數(shù)據(jù)泄密。
例如,Windows操作系統(tǒng)的GDI函數(shù)是公開公用的,可以用簡單的Hook (鉤子)程序?qū)λ械腉DI函數(shù)進(jìn)行監(jiān)控,即可通過GDI函數(shù)的Textout (文本輸出)接口截獲其輸出給打印驅(qū)動程序的打印數(shù)據(jù),從而通過打印數(shù)
據(jù)恢復(fù)出當(dāng)前打印文件中的信息。
而且,打印數(shù)據(jù)為矢量圖和/或文字信息,因而根據(jù)截獲的打印數(shù)據(jù)易
于恢復(fù)出待打印文件中的信息。
2) 打印驅(qū)動程序通常由對應(yīng)打印機(jī)的制造廠商提供,且打印驅(qū)動程序 不透明,用戶無法獲知該打印驅(qū)動程序中是否包含了用于截獲打印數(shù)據(jù)的監(jiān) 控程序,因而使得打印存在泄露打印數(shù)據(jù)的安全隱患。
3) 在打印驅(qū)動程序提供的打印設(shè)置界面中,用戶可任意設(shè)置打印控制 參數(shù)中的打印份數(shù)。這在某些行業(yè)中的應(yīng)用是不能夠允許的,例如在政府部 門,對于一些重要的公文文件,需要對打印的份數(shù)進(jìn)行嚴(yán)格的控制,以防止
二 i"丄.、,IL /S 1" t^rt r rr ,丄 £。 《ri /,V iUL H ,上 ,+k Z二lTfJ >k,l
人Tr^2^務(wù)。Ttrj<n 習(xí)仏^y,王/r,、J引^r'i刀—35L7u^t3zli一j r^fi5'j。
4) 在打印驅(qū)動程序提供的打印設(shè)置界面中,用戶可通過修改打印控制
參凄t中的打印端口來選擇網(wǎng)絡(luò)打印端口實(shí)現(xiàn)網(wǎng)絡(luò)打印。而網(wǎng)絡(luò)打印過程中, 通過網(wǎng)絡(luò)傳輸?shù)拇蛴?shù)據(jù)容易就竊取,使得打印數(shù)據(jù)泄密。但打印驅(qū)動程序 對選擇網(wǎng)絡(luò)打印端口無法進(jìn)行限制,從而無法避免網(wǎng)絡(luò)打印帶來的安全隱
泰、
5 )由于現(xiàn)有打印實(shí)現(xiàn)方法通過Windows操作系統(tǒng)的端口將打印數(shù)據(jù)輸 出給打印機(jī),且通過打印驅(qū)動程序提供的打印設(shè)置界面,用戶還可通過修改 打印控制參數(shù)中的打印端口 ,從而能夠?qū)⒋蛴?shù)據(jù)打印到電子文件。而由于電子文件的易于復(fù)制、傳輸,使得待打印文件中的信息易于泄露。例如,如
果用戶選擇某打印端口為"File",并指定打印路徑,則打印驅(qū)動程序就不 會將打印數(shù)據(jù)發(fā)送到打印機(jī),而是直接打印成電子文件。但打印驅(qū)動程序無
法限制上述打印模式。
可見,現(xiàn)有打印實(shí)現(xiàn)方法存在較多的安全隱患,使得打印安全性較低。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的一個主要目的在于,提供一種打印實(shí)現(xiàn)方法,能夠 提高打印的安全性。
根據(jù)上述的一個主要目的,本發(fā)明提供的一種打印實(shí)現(xiàn)方法,包括 (待權(quán)利要求確定后粘貼至此處即可)
由上述技術(shù)方案可見,本發(fā)明根據(jù)待打印文件生成對應(yīng)的頁面位圖,然 后將生成的頁面位圖轉(zhuǎn)換為目標(biāo)打印^L對應(yīng)的才各式,而無需調(diào)用Windows 操作系統(tǒng)中公用的GDI函數(shù),從而避免了類似于Hook程序等應(yīng)用程序截獲 打印數(shù)據(jù);而且,本發(fā)明中生成的打印數(shù)據(jù)為頁面位圖,而不是各種矢量圖 或文字信息,因此,即便打印數(shù)據(jù)通過其他途徑被截獲,也不易恢復(fù)出待打 印文件中的信息,從而提高了打印安全性。
本發(fā)明中,預(yù)先對打印控制參數(shù)進(jìn)行寫保護(hù)。這樣,用戶無法隨意修改 打印份數(shù),從而能夠在打印過程中即可嚴(yán)格控制打印份數(shù);打印機(jī)型號只能 為本地打印機(jī)的型號、且打印機(jī)的硬件端口也只能為直接本地打印機(jī)相連的 硬件端口,且用戶無法隨意修改,從而屏蔽掉了網(wǎng)絡(luò)打印模式。這樣,就避 免了用戶通過修改打印端口而進(jìn)行網(wǎng)絡(luò)打印,進(jìn)一 步提高了打印安全性。
而且,本發(fā)明中的打印實(shí)現(xiàn)方法直接訪問硬件端口,還能夠避免現(xiàn)有的 打印實(shí)現(xiàn)方法中,通過將打印端口修改為"File"并指定打印路徑的方式, 直接將打印數(shù)據(jù)打印成電子文件,從而更加嚴(yán)格地控制打印數(shù)據(jù)的打印輸 出,避免了打印文件中的信息泄露,進(jìn)一步提高了打印安全性。
圖1為現(xiàn)有打印實(shí)現(xiàn)方法的流程示意圖。
圖2為本發(fā)明中打印實(shí)現(xiàn)方法的流程示意圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉 實(shí)施例,對本發(fā)明進(jìn)一步詳細(xì)說明。
本發(fā)明中,根據(jù)待打印文件生成對應(yīng)的頁面位圖,然后將生成的頁面位 圖轉(zhuǎn)換為目標(biāo)打印機(jī)對應(yīng)的格式,并輸出給目標(biāo)打印機(jī)。
圖2為本發(fā)明中打印實(shí)現(xiàn)方法的流程示意圖。如圖2所示,本發(fā)明中的 打印實(shí)現(xiàn)方法包括
步驟201,對待打印文件進(jìn)行解析,生成表示待打印文件中的信息的圖 元數(shù)據(jù)。
本步驟中,可以遍歷待打印文件,對其進(jìn)行解析以分解出圖元數(shù)據(jù),例 如字體、圖形、圖像。通過對待打印文件分析分解出圖元數(shù)據(jù)的操作過程,
可以按照現(xiàn)有方式來實(shí)現(xiàn)。
步驟202,根據(jù)設(shè)置的打印控制參數(shù),對生成的圖元數(shù)據(jù)進(jìn)行點(diǎn)陣化處 理,轉(zhuǎn)換為由點(diǎn)陣數(shù)據(jù)構(gòu)成的頁面位圖。
甘士t、5"罷AA 《<formula>formula see original document page 7</formula> 一 、 《g j 'j.,i/u-工 "、 打印幅面、分辨率、紙張大小、顏色、打印份數(shù)等。根據(jù)打印機(jī)的硬件端口 和/或打印^L型號,即可確定與該端口相連的打印才幾為目標(biāo)打印才幾。
本步驟中,可以結(jié)合例如打印幅面的大小、分辨率等打印控制參數(shù)來將 圖元數(shù)據(jù)轉(zhuǎn)換成頁面位圖,以保證頁面位圖中的點(diǎn)陣數(shù)據(jù)與打印需求相關(guān) 聯(lián)。
對圖元數(shù)據(jù)進(jìn)行點(diǎn)陣化處理后,圖元數(shù)據(jù)已經(jīng)不存在,全部是點(diǎn)陣數(shù)據(jù) 構(gòu)成的頁面位圖。這樣,即可避免外部程序直接結(jié)果圖元數(shù)據(jù),并輕而易舉 地根據(jù)圖元數(shù)據(jù)恢復(fù)出待打印文件中的信息。步驟203,根據(jù)配置的控制參數(shù),例如,打印語言,對點(diǎn)陣數(shù)據(jù)進(jìn)行處 理,轉(zhuǎn)換為目標(biāo)打印機(jī)能夠識別的格式,將格式轉(zhuǎn)換后的頁面位圖作為打印 數(shù)據(jù)。
本步驟中,格式轉(zhuǎn)換即為重新組織點(diǎn)陣數(shù)據(jù)的過程;如果根據(jù)打印預(yù)言 家進(jìn)行格式轉(zhuǎn)換,則實(shí)際應(yīng)用中,可以根據(jù)實(shí)際需要,預(yù)先設(shè)置多種打印機(jī) 支持的語言,例如PS語言和PCL語言等;本步驟中所涉及的格式轉(zhuǎn)換過程 可以按照現(xiàn)有方式來實(shí)現(xiàn)。
由于打印機(jī)的處理能力限制,必須盡可能的減小輸送到打印機(jī)的數(shù)據(jù) 量,因此,在本步驟中,還可以對頁面位圖進(jìn)行壓縮,壓縮算法的選擇取決 于不同的打印機(jī)語言和版本。 一般的壓縮算法有RLE無損壓縮、JPEG壓縮 等。本發(fā)明提供靈活的壓縮機(jī)制,在解析數(shù)據(jù)時,能夠根據(jù)數(shù)據(jù)的類型選擇 最優(yōu)的壓縮算法,例如,對于普通的單色文本文件,則可以選擇RLE壓縮, 而對于彩色圖像或表格復(fù)雜的待打印文件中的信息,則可以選擇JPEG壓縮 算法,也可在任意情況下均同時使用兩種算法進(jìn)行壓縮,從而達(dá)到最優(yōu)的壓 縮效果。
步驟204,直接訪問目標(biāo)打印機(jī)的硬件端口 ,向目標(biāo)打印機(jī)的硬件端口 發(fā)送轉(zhuǎn)換后的頁面位圖。
本步驟中,直接訪問打印口以控制打印端口輸出的脈沖信號,利用信號
打印機(jī)廠商提供的打印機(jī)驅(qū)動程序,從而能夠避免通過操作系統(tǒng)和第三方打
印機(jī)驅(qū)動進(jìn)行打印時,打印數(shù)據(jù)被截獲??紤]到打印數(shù)據(jù)的安全性和目標(biāo)打
印機(jī)的承受能力,在向目標(biāo)打印機(jī)的硬件端口發(fā)送轉(zhuǎn)換后的頁面位圖時,可
以采用分段輸出方式,也就是說,按照預(yù)設(shè)每段的大小,對打印數(shù)據(jù)進(jìn)行分
段處理,順序?qū)懭氪蛴《丝?,以有效降低打印機(jī)的處理強(qiáng)度,增加打印速度,
而且,即便打印數(shù)據(jù)被截獲,也只不會一次性地截獲全部打印數(shù)據(jù)。
至此,本流程結(jié)束。的頁面位圖,然后將生成的頁面位圖轉(zhuǎn)換為目標(biāo)打印機(jī)對應(yīng)的格式,而無需
調(diào)用Windows操作系統(tǒng)中公用的GDI函數(shù),并直接通過硬件端口輸出給目 標(biāo)打印機(jī),而不是通過Windows操作系統(tǒng)中的端口輸出給目標(biāo)打印機(jī),從 而避免了類似于Hook程序等應(yīng)用程序截獲打印數(shù)據(jù);而且,本發(fā)明中生成 的打印數(shù)據(jù)為頁面位圖,而不是各種矢量圖或文字信息,因此,即便打印數(shù) 據(jù)通過其他途徑被截獲,也不易恢復(fù)出待打印文件中的信息,從而提高了打 印安全性。
實(shí)際應(yīng)用中,預(yù)先對打印控制參數(shù)進(jìn)行寫保護(hù),使得用戶無法對打印控 制參數(shù)隨意修改如。將打印控制參數(shù)預(yù)先進(jìn)行安全處理,或存儲于只讀存儲 器(ROM)中均可實(shí)現(xiàn)寫保護(hù)。
例如,如果用戶希望修改打印份數(shù),則必須先輸入預(yù)設(shè)的密碼、或輸入 用戶信息進(jìn)行鑒權(quán)認(rèn)證,只有密碼正確、或鑒權(quán)認(rèn)證通過時才能夠?qū)Υ蛴》?數(shù)進(jìn)行修改。這樣,在打印過程中即可嚴(yán)格控制打印份數(shù),用戶無法通過其 它的設(shè)置界面修改打印份數(shù)。
再例如,打印機(jī)型號只能為本地打印機(jī)的型號、且打印機(jī)的硬件端口也 只能為直接本地打印機(jī)相連的硬件端口。其中,本地打印機(jī)不包括通過網(wǎng)絡(luò) 與硬件端口相連的打印機(jī)。這樣,即便打印控制參數(shù)中包括多個可選的打印 機(jī)型號和硬件端口,并可以由用戶任意選4奪,但由于所有打印機(jī)型號和硬件
n 4"A d r 7 士 lJt +t 4rr ^_右厶'么工T> rMV /T rb F) PE1 r^r 口心匕,1 口 SR3窗4rr ,卬><;,、j /義今、^iiiJij n'""71 i丁 i剛 J xvu丄v丄 7 , ^ru丌j 乂 乂、 FJ匕,y、 u問u且口 、j U "'/p/"3::
號和/或硬件端口中選擇而無法對其修改,因此,無論用戶如何選4奪,均不 會實(shí)現(xiàn)網(wǎng)絡(luò)打印。從而屏蔽掉了網(wǎng)絡(luò)打印模式。這樣,就避免了用戶通過修 改端口而進(jìn)行網(wǎng)絡(luò)打印。
而且,由于本發(fā)明中的打印實(shí)現(xiàn)方法直接訪問硬件端口,因而能夠避免
現(xiàn)有的打印實(shí)現(xiàn)方法中,通過將打印端口修改為"File"并指定打印路徑的 方式,直接將打印數(shù)據(jù)打印成電子文件,從而更加嚴(yán)格地控制打印數(shù)據(jù)的打 印輸出,避免了打印文件中的信息泄露。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換以及改進(jìn)等, 均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種打印實(shí)現(xiàn)方法,其特征在于,該方法包括根據(jù)待打印文件生成對應(yīng)的頁面位圖;將生成的頁面位圖轉(zhuǎn)換為目標(biāo)打印機(jī)對應(yīng)的格式,并輸出給目標(biāo)打印機(jī)。
2、 如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)待打印文件生成 ,寸應(yīng)的頁面^f立圖包4舌對待打印文件進(jìn)行解析,生成表示待打印文件中的信息的圖元數(shù)據(jù); 根據(jù)設(shè)置的打印控制參數(shù),對生成的圖元數(shù)據(jù)進(jìn)行點(diǎn)陣化處理,轉(zhuǎn)換為 由點(diǎn)陣數(shù)據(jù)構(gòu)成的頁面位圖。
3、 如權(quán)利要求2所述的方法,其特征在于,所述設(shè)置的打印控制參數(shù) 可以包括打印機(jī)的硬件端口、打印機(jī)型號、打印幅面、分辨率、紙張大小、 顏色、打印份數(shù)。
4、 如權(quán)利要求3所述的方法,其特征在于,所述根據(jù)設(shè)置的打印控制 參數(shù),對生成的圖元數(shù)據(jù)進(jìn)行點(diǎn)陣化處理,轉(zhuǎn)換為由點(diǎn)陣數(shù)據(jù)構(gòu)成的頁面位 困為結(jié)合打印幅面的大小、分辨率,對生成的圖元數(shù)據(jù)進(jìn)行點(diǎn)陣化處理, 轉(zhuǎn)換為由點(diǎn)陣數(shù)據(jù)構(gòu)成的頁面位圖。
5、 如權(quán)利要求3所述的方法,其特征在于,所述將生成的頁面位圖轉(zhuǎn) 換為目標(biāo)打印機(jī)對應(yīng)的格式之前,該方法進(jìn)一步包括根據(jù)打印機(jī)的硬件端 口和/或打印機(jī)型號確定目標(biāo)打印機(jī)。
6、 如權(quán)利要求1至5中任意一項(xiàng)所迷的方法,其特征在于,所述將生 成的頁面位圖轉(zhuǎn)換為目標(biāo)打印才幾對應(yīng)的格式之前,該方法進(jìn)一步包括對頁 面位圖進(jìn)行壓縮處理。
7、 如權(quán)利要求6所述的方法,其特征在于,所述壓縮處理包括RLE 壓縮、和/或JPEG壓縮。
8、 如權(quán)利要求1至5中任意一項(xiàng)所述的方法,其特征在于,將格式轉(zhuǎn)換后的頁面位圖輸出給目標(biāo)打印機(jī)為將格式轉(zhuǎn)換后的頁面位圖直接通過目 標(biāo)打印機(jī)對應(yīng)的硬件端口輸出給目標(biāo)打印機(jī)。
9. 如權(quán)利要求6所述的方法,其特征在于,所述輸出為分段輸出。
10. 如權(quán)利要求2或3所述的方法,其特征在于,進(jìn)一步對所述打印控 制參數(shù)進(jìn)行寫保護(hù)。
全文摘要
本發(fā)明公開了一種打印實(shí)現(xiàn)方法。本發(fā)明根據(jù)待打印文件生成對應(yīng)的頁面位圖,然后將生成的頁面位圖轉(zhuǎn)換為目標(biāo)打印機(jī)對應(yīng)的格式,而無需調(diào)用Windows操作系統(tǒng)中公用的GDI函數(shù),并直接通過硬件端口輸出給目標(biāo)打印機(jī),而不是通過Windows操作系統(tǒng)中的端口輸出給目標(biāo)打印機(jī),從而避免了類似于Hook程序等應(yīng)用程序截獲打印數(shù)據(jù);而且,本發(fā)明中生成的打印數(shù)據(jù)為頁面位圖,而不是各種矢量圖或文字信息,因此,即便打印數(shù)據(jù)通過其他途徑被截獲,也不易恢復(fù)出待打印文件中的信息,從而提高了打印安全性。
文檔編號G06F3/12GK101408836SQ20071017564
公開日2009年4月15日 申請日期2007年10月9日 優(yōu)先權(quán)日2007年10月9日
發(fā)明者王東臨 申請人:北京書生國際信息技術(shù)有限公司