專利名稱:針打業務的仿真裝置及其實現方法
技術領域:
本發明涉及打印機設備技術,具體地說,涉及一種針打業務的仿真裝置及其實現方法。
造成這種狀況的主要原因是非針式打印機采用不同于針式打印機的打印控制語言,例如激光打印采用PCL(PCLprinter control language)打印控制語言,該控制語言是惠普(HP)公司制定的激光打印機打印控制語言,目前已經成為激光打印機行業的標準;而針式打印通常采用ESC/P命令,該命令是Epson公司推出的針式打印機控制語言的名稱。正是由于激光打印機和針式打印機所使用的打印控制語言不同,使得激光打印機無法實現針打打印作業的功能。
本發明所提供的針打業務的仿真裝置是這樣實現的一種針打業務的仿真裝置,位于計算機和非針式打印機之間,該裝置至少包括用于存儲仿真程序代碼的程序存儲器、存儲標準矢量字庫信息的字庫存儲器、數據存儲器、控制器、與計算機打印接口相連并接收計算機發送的打印數據的主機端并口、與非針式打印機相連并向非針式打印機發送打印數據的設備端并口,其中,所述主機端并口將接收的打印數據送至控制器,控制器根據字庫存儲器中的標準矢量字庫信息將打印數據中的字符生成字符位圖信息后,通過所述設備端并口送至非針式打印機,所述數據存儲器、字庫存儲器、程序存儲器分別與控制器相連。
所述的主機端并口為符合IEEE1284協議標準的并口,設備端并口為符合IEEE1284協議標準的并口。
所述字庫存儲器為掩摸只讀存儲器,所述程序存儲器為閃速只讀存儲器,所述數據存儲器為動態隨機存儲器。
所述非針式打印機為激光打印機,或者噴墨打印機。
本發明提供的一種應用針打業務的仿真裝置實現針打業務的方法是這樣實現的一種應用針打業務的仿真裝置實現針打業務的方法,它包括以下步驟A.接收來自計算機的打印數據;B.判斷該打印數據是否是針打命令,如果不是,則將數據直接發送給非針式打印機進行打印;否則執行步驟C;C.判斷所接收的打印數據的針打命令類別,如果是非字體控制命令,則轉換為相應于非針式打印機的打印控制命令,如果是可打印字符,則根據存儲于字庫存儲器中的標準矢量字庫的矢量信息生成位圖數據,發送至非針式打印機進行打印。
其中,步驟C所述的非字體控制命令為頁面控制命令,或行控制命令,或字距控制命令。
步驟C所述可打印字符形成的位圖數據的步驟進一步包括C01)根據當前字體特征在預先設置的字體鏈表中查找匹配字體,若字體鏈表中無該字體的匹配字體,則將當前字體特征添加至字體鏈表中;C02)根據當前字體特征的區碼在字體鏈表中的區碼鏈表查找匹配區碼,若無該字體的匹配區碼,則將當前字體的區碼添加至區碼鏈表中,并發送字體的頭部信息;C03)根據位碼查看字符的發送標志判斷字符位圖數據是否已發送至非針式打印機,若字符位圖數據未發送至非針式打印機,則根據標準矢量字庫的矢量信息,生成位圖數據,再執行步驟C04);否則直接執行步驟C04);C04)根據下標、倍高發送坐標調整命令,發送字符打印命令進行打印作業后發送坐標恢復命令。
上述步驟C03)所述的從矢量信息生成位圖數據進一步包括先判斷當前字符是否是漢字字符,如果是則將漢字字符國際碼轉換為區位碼,否則根據英文或數字字體樣式換算區位碼;然后根據字體樣式從標準矢量字庫讀取矢量字模,根據字體大小縮放矢量字模,根據字體傾斜與否傾斜矢量字模,根據矢量字模生成位圖字模。
并且,步驟C03)所述的發送標志存放于以位碼為變量的發送標志數組中。
本發明通過在計算機和非針式打印機之間的仿真裝置和程序控制,將從計算機主機接收到的針打命令轉換成相應于非針式打印機的打印控制命令,并通過裝置中的并口發送給非針式打印機,實現了用非針式打印機進行針打功能,例如,可以在激光打印機上實現針打作業,用戶無需改動現行的針打驅動軟件以及激光打印機設備,只要將該裝置串接在PC主機和激光打印機之間即可使用,又由于該仿真裝置相對獨立,并提供標準的非針式打印機和PC主機的并口連接,具有兼容性,該裝置可自動識別打印作業的屬性,用戶不必關心自己目前是使用針打作業還是其他類型的作業,不必進行連接切換,使非針式打印機既可完成針打作業,也可直接完成非針打作業,具有獨立性和便捷;通過該裝置及其實現方法可接收任何打印作業數據,可以根據特殊的需求將數據進行特殊的處理后再進行打印或其他操作,如加密、轉換等操作具有擴展性。
參見
圖1所示,圖1為針打業務仿真裝置的整體示意圖。仿真裝置為獨立于非針式打印機和PC主機的嵌入式系統,提供主機端并口和設備端并口,并分別與PC主機和非針式打印機連接。PC主機發送的打印作業通過主機端并口被仿真裝置接收,仿真裝置經過分析判斷該作業是否為針打作業,如果是針打作業,則經過特定的處理,將針打命令序列翻譯成相應于非針式打印機的打印控制語言序列,再通過設備端并口發送給非針式打印機。如果仿真裝置經過分析判斷該作業不是針打作業,則將接收到的打印數據直接通過設備端并口發送給非針式打印機,由非針式打印機來處理該數據。上述非針式打印機可以為激光打印機,或者噴墨打印機等參見圖2所示,圖2為針打業務仿真裝置的硬件原理框圖。仿真裝置硬件包括控制器(MCU)、用于存儲仿真程序代碼的程序存儲器、用于存儲程序數據的數據存儲器、用于存儲矢量字庫信息的字庫存儲器以及直接用于和PC主機通信的主機端并口和用于將處理過的數據直接發送給非針式打印機的設備端并口,其中,字庫存儲器存儲的矢量字庫信息是標準字庫,用于將針打作業中字符信息的內碼還原成字符的點陣位圖,主機端并口為符合IEEE1284協議的標準并口,直接用于和PC主機通信并接收打印數據,與主機的并口相同,設備端并口是符合IEEE1284協議的標準并口,與非針式打印機的并口類似。上述程序存儲器可以為閃速只讀(FlashROM)存儲器,數據存儲器可以為動態隨機存儲器(DRAM),字庫存儲器可以為掩摸只讀存儲器(MaskROM),以上硬件可采用專用打印機處理器實現,例如Motorola公司的68322處理器。
參見圖3所示,圖3為以激光打印機仿真針打業務為實施例的整體實現流程圖。仿真裝置上電后,仿真程序開始處于等待接收數據的狀態,接收到數據后,判斷是否是ESC/P針打命令序列,如果不是ESC/P針打命令序列,則根據激光打印PCL命令的控制字符發送PCL選擇字體命令,然后發送字符進行原樣打印,如果是ESC/P針打命令序列,則判斷ESC/P針打命令能否轉換成PCL命令,若不能轉換為PCL命令,則將命令狀態的改變記錄下來,例如,將字體的寬、高等信息的狀態改變記錄,打印字符時根據命令狀態發送PCL命令;若ESC/P命令可以轉換PCL命令,則按照PCL相關命令類別分別處理,對于頁面控制、字距行距控制等非字體控制命令的ESC/P命令,則將其轉換為相應的PCL命令,例如,Esc/P的1/6英寸行距命令為“Esc2”,對應于PCL的“Esc&16D”;對于字體控制的ESC/P命令,即可打印字符命令,則根據字符的大小和效果等字體特征從存儲于字庫存儲器中的標準矢量字庫信息讀取矢量信息以生成特定的位圖數據,然后通過PCL的發送命令將軟字體發送給激光打印機,再進行打印。
參見圖4、圖5所示,圖4為上述字體控制環節流程圖,圖5為字體鏈表,該表橫向為字體特征鏈表,縱向為字體區碼鏈表。
步驟401,根據主機ESC/P命令中當前字體特征在字體鏈表中查找與之匹配的字體特征,步驟402,判斷是否找到匹配的字體特征,如果未找到則執行步驟403,將當前字體特征添加到字體鏈接表中,然后執行步驟404;如果已找到則執行步驟404,根據當前字體區碼在字體的區碼鏈表中查找匹配區碼;執行步驟405,判斷是否找到匹配區碼,若未找到匹配區碼,則執行步驟406,將當前字體區碼添加到字體的區碼鏈表中,執行步驟407,發送字體頭部信息至激光打印機,頭部信息包括字體的寬、高等信息,然后執行步驟408;若已找到匹配區碼,則執行步驟408,根據當前字體的位碼查看以字符的位碼為變量的發送標志數組,該發送標志數組存放了將字符發送至激光打印機的發送標志信息;執行步驟409,判斷字符位圖數據是否已經發送,如果未發送,則執行步驟410,從標準矢量字庫讀取矢量信息以生成位圖數據,然后執行步驟411,向激光打印機發送字符位圖數據,再執行步驟412;如果已發送了字符位圖數據,則執行步驟412,根據下標、倍高發送坐標調整命令;執行步驟413和414,向激光打印機發送字符打印命令,激光打印機根據字體編號和位圖數據進行打印作業,然后根據下標、倍高發送坐標恢復命令,完成字體控制流程。
參見圖6所示,圖6為上述字體控制流程中的字庫生成位圖的流程圖。步驟601,判斷當前字符是否為漢字字符,如果是則執行步驟602,將當前漢字字符的國際碼轉換為區位碼,即將當前漢字字符的國際碼減去160可得到其區位碼,否則執行步驟607根據英文、數字字體樣式換算為區位碼;執行步驟603,根據字體樣式從標準矢量字庫中讀取矢量字模;步驟604,根據字體大小縮放矢量字模;步驟605,根據字體傾斜與否傾斜矢量字模,最后執行步驟606,根據上述的矢量字模生成位圖字模,完成標準矢量字庫中的矢量信息到字符位圖數據的轉換。上述字體樣式中,漢字有宋體、楷體、黑體、仿宋體四種字體樣式,英文字體有14種字體樣式。
通過上述仿真裝置的硬件結構和程序處理,使得該仿真裝置能夠接收任何打印作業數據。
以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
權利要求
1.一種針打業務的仿真裝置,位于計算機和非針式打印機之間,其特征在于,該裝置至少包括用于存儲仿真程序代碼的程序存儲器、存儲標準矢量字庫信息的字庫存儲器、數據存儲器、控制器、與計算機打印接口相連并接收計算機發送的打印數據的主機端并口、與非針式打印機相連并向非針式打印機發送打印數據的設備端并口,其中,所述主機端并口將接收的打印數據送至控制器,控制器根據字庫存儲器中的標準矢量字庫信息將打印數據中的字符生成字符位圖數據后,通過所述設備端并口送至非針式打印機,所述數據存儲器、字庫存儲器、程序存儲器分別與控制器相連。
2.根據權利要求1所述的仿真裝置,其特征在于,所述的主機端并口為符合IEEE1284協議標準的并口,設備端并口為符合IEEE1284協議標準的并口。
3.根據權利要求1所述的仿真裝置,其特征在于,所述字庫存儲器為掩摸只讀存儲器,所述程序存儲器為閃速只讀存儲器,所述數據存儲器為動態隨機存儲器。
4.根據權利要求1所述的仿真裝置,其特征在于,所述非針式打印機為激光打印機,或者噴墨打印機。
5.一種應用權利要求1所述的裝置實現針打業務的方法,其特征在于,該方法至少包括A.接收來自計算機的打印數據;B.判斷該打印數據是否是針打命令,如果不是,則將數據直接發送給非針式打印機進行打印;否則執行步驟C;C.判斷所接收的打印數據的針打命令類別,如果是非字體控制命令,則轉換為相應于非針式打印機的打印控制命令,如果是可打印字符,則根據存儲于字庫存儲器中的標準矢量字庫的矢量信息生成位圖數據,發送至非針式打印機進行打印。
6.根據權利要求5所述的實現方法,其特征在于,步驟C所述的非字體控制命令為頁面控制命令,或行控制命令,或字距控制命令。
7.根據權利要求5所述的實現方法,其特征在于,步驟C所述可打印字符形成的位圖數據的步驟進一步包括C01)根據當前字體特征在預先設置的字體鏈表中查找匹配字體,若字體鏈表中無該字體的匹配字體,則將當前字體特征添加至字體鏈表中;C02)根據當前字體特征的區碼在字體鏈表中的區碼鏈表查找匹配區碼,若無該字體的匹配區碼,則將當前字體的區碼添加至區碼鏈表中,并發送字體的頭部信息;C03)根據位碼查看字符的發送標志判斷字符位圖數據是否已發送至非針式打印機,若字符位圖數據未發送至非針式打印機,則根據標準矢量字庫的矢量信息,生成位圖數據,再執行步驟C04);否則直接執行步驟C04);C04)根據下標、倍高發送坐標調整命令,發送字符打印命令進行打印作業后發送坐標恢復命令。
8.根據權利要求7所述的實現方法,其特征在于,步驟C03)所述的從矢量信息生成位圖數據進一步包括先判斷當前字符是否是漢字字符,如果是則將漢字字符國際碼轉換為區位碼,否則根據英文或數字字體樣式換算區位碼;然后根據字體樣式從標準矢量字庫讀取矢量字模,根據字體大小縮放矢量字模,根據字體傾斜與否傾斜矢量字模,根據矢量字模生成位圖字模。
9.根據權利要求7所述的實現方法,其特征在于,步驟C03)所述的發送標志存放于以位碼為變量的發送標志數組中。
全文摘要
本發明公開了一種針打業務的仿真裝置及其實現方法,該裝置位于計算機和非針式打印機之間,至少包括用于存儲仿真程序代碼的程序存儲器、存儲標準矢量字庫信息的字庫存儲器、存儲數據的數據存儲器、控制器、接收打印數據的主機端并口、發送打印數據的設備端并口,該方法包括來自計算機的打印數據通過主機端并口送至控制器,由控制器判斷該打印數據是否是針打命令,如果不是則將數據直接發送給非針式打印機,進行原樣打印;否則由控制器判斷所接收的打印數據的針打命令類別,根據針打命令的類別分別轉換為相應于非針式打印機的打印控制命令,再進行打印。本發明實現了用非針式打印機進行針打功能,具有兼容性和可擴展性。
文檔編號G06F9/455GK1464389SQ0212138
公開日2003年12月31日 申請日期2002年6月18日 優先權日2002年6月18日
發明者王利民, 楊建起, 鐘鳴, 夏薇 申請人:聯想(北京)有限公司