本發(fā)明涉及打印技術(shù)領(lǐng)域,尤其涉及一種基于顯示框架的熱敏打印方法。
背景技術(shù):
熱敏打印技術(shù)最早使用在傳真機(jī)上,其基本原理是將打印機(jī)接收的數(shù)據(jù)轉(zhuǎn)換成點(diǎn)陣的信號(hào)控制熱敏單元的加熱,把熱敏紙上熱敏涂層加熱顯影。
在熱敏打印機(jī)應(yīng)用需求越來越大的今天,許多android設(shè)備都使用了熱敏打印機(jī)進(jìn)行各類票據(jù)的打印,但是熱敏打印機(jī)是以點(diǎn)的形式進(jìn)行加熱的打印的,所有的文字,圖片都需要以點(diǎn)陣的形式下發(fā)?,F(xiàn)有的熱敏打印技術(shù)方案主要有以下兩種:
(1)直接使用硬件字庫芯片,硬件字庫芯片中存儲(chǔ)了特定語言或者特定編碼范圍的文字點(diǎn)陣,打印的時(shí)候?qū)⒅付ㄎ淖值狞c(diǎn)陣從硬件字庫芯片中提取出來,進(jìn)行打印。這種方案實(shí)現(xiàn)比較簡單,但是需要增加硬件成本,而且硬件字庫芯片字庫比較單一,由于存儲(chǔ)空間的問題,對(duì)于多語言或者大字體的支持會(huì)顯著加大成本,對(duì)于打印字庫的需求變化直接會(huì)導(dǎo)致硬件的改動(dòng),硬件成本較高。
(2)通過在各類已有的字模文件中提取字模點(diǎn)陣用于打印,這種做法直接形成打印字庫文件放在android系統(tǒng)上,對(duì)于字模文件中不符合要求的文字都需要重新編輯,每一種語言文字的增加都需要軟件代碼的修改,一種語言又有著多種字模文件,例如在漢字打印中就有這個(gè)gb2312,gbk等字模編碼表,黑體,宋體等各類字體模板,這樣需要非常多的字庫文件來滿足不同需求,開發(fā)維護(hù)成本較高。
因此,原有的技術(shù)方案匹配新的語言文字會(huì)非常耗時(shí),對(duì)于一些特殊的語言文字涉及到排版問題和變形轉(zhuǎn)換的問題,還會(huì)加大研發(fā)匹配難度,增加開發(fā)成本和維護(hù)成本。目前在android熱敏打印終端設(shè)備上,還沒有高效穩(wěn)定,使用方便,可重用性高的技術(shù)方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題在于,提供一種基于顯示框架的熱敏打印方法,可免去各種字模文件的匹配導(dǎo)入,免去重復(fù)編輯開發(fā)打印字庫點(diǎn)陣文件的繁瑣工作,極大地降低產(chǎn)品的研發(fā)成本,維護(hù)成本和時(shí)間成本。
為了解決上述技術(shù)問題,本發(fā)明提供了一種基于顯示框架的熱敏打印方法,包括:
s1,打印服務(wù)模塊接收應(yīng)用端的打印請(qǐng)求,并將打印請(qǐng)求中的打印信息提交至打印顯示轉(zhuǎn)換模塊;
s2,所述打印顯示轉(zhuǎn)換模塊調(diào)用應(yīng)用端的顯示服務(wù)模塊將打印信息轉(zhuǎn)換為顯示信息;
s3,所述顯示服務(wù)模塊調(diào)用應(yīng)用端的顯示處理框架對(duì)顯示信息進(jìn)行點(diǎn)陣緩存處理以生成顯示點(diǎn)陣緩存;
s4,點(diǎn)陣轉(zhuǎn)換模塊對(duì)顯示處理框架輸出的顯示點(diǎn)陣緩存進(jìn)行攔截,若顯示點(diǎn)陣緩存是由顯示請(qǐng)求產(chǎn)生的,則將顯示點(diǎn)陣緩存發(fā)送至顯示器進(jìn)行圖像化顯示,若顯示點(diǎn)陣緩存是由打印請(qǐng)求產(chǎn)生的,則將顯示點(diǎn)陣緩存發(fā)送至打印機(jī)進(jìn)行打印。
作為上述方案的改進(jìn),所述將顯示點(diǎn)陣緩存發(fā)送至打印機(jī)進(jìn)行點(diǎn)陣內(nèi)容打印的方法包括:獲取顯示點(diǎn)陣緩沖區(qū)內(nèi)的顯示點(diǎn)陣緩存;根據(jù)打印機(jī)的要求將顯示點(diǎn)陣緩存轉(zhuǎn)換成打印點(diǎn)陣;通過打印機(jī)打印所述打印點(diǎn)陣。
作為上述方案的改進(jìn),所述打印信息包括打印內(nèi)容、打印字體類型、打印字體大小及打印圖片。
作為上述方案的改進(jìn),所述打印顯示轉(zhuǎn)換模塊調(diào)用顯示服務(wù)模塊將打印信息轉(zhuǎn)換為顯示信息的方法包括:將打印字體大小轉(zhuǎn)換為顯示字體大??;將打印字體類型轉(zhuǎn)換為顯示字體類型;將打印圖片轉(zhuǎn)換為顯示圖片。
作為上述方案的改進(jìn),所述顯示服務(wù)模塊調(diào)用顯示處理框架對(duì)顯示信息進(jìn)行點(diǎn)陣緩存處理以生成顯示點(diǎn)陣緩存的方法包括:圖文合拼計(jì)算、尺量轉(zhuǎn)換及縮放操作。
作為上述方案的改進(jìn),所述步驟s1之前還包括:打印服務(wù)模塊啟動(dòng)后,查詢應(yīng)用端所支持的顯示字體類型,并為應(yīng)用端提供字體設(shè)置接口。
作為上述方案的改進(jìn),所述應(yīng)用端包括android應(yīng)用端或linux應(yīng)用端。
實(shí)施本發(fā)明,具有如下有益效果:
本發(fā)明通過android/linux的內(nèi)部機(jī)制,提取android/linux顯示畫面內(nèi)容中的實(shí)際點(diǎn)陣,轉(zhuǎn)換為打印的點(diǎn)陣,這樣不僅能免去各種字模文件的匹配導(dǎo)入,還能做到不同語言的快速切換使用,大量節(jié)省人力,免去重復(fù)編輯開發(fā)打印字庫點(diǎn)陣文件的繁瑣工作,從而極大地降低產(chǎn)品的研發(fā)成本,維護(hù)成本和時(shí)間成本。
具體地,本發(fā)明通過打印服務(wù)模塊和打印顯示模塊將打印圖文提交給android/linux進(jìn)行顯示處理;利用android/linux顯示處理框架來完成打印的文本處理、圖片處理,實(shí)現(xiàn)排版和多語言支持;利用android/linux顯示的多語言支持來完成打印的多語言支持;通過點(diǎn)陣轉(zhuǎn)換模塊攔截顯示緩存,將android/linux顯示緩存轉(zhuǎn)換為熱敏打印機(jī)打印緩存。
相應(yīng)地,本發(fā)明基于顯示框架的熱敏打印方法具有以下優(yōu)點(diǎn):
(1)本發(fā)明無需使用硬件字庫芯片,可節(jié)省硬件成本;
(2)本發(fā)明可以靈活切換字體,實(shí)現(xiàn)不同字體大小、不同字體類型的靈活切換,無需制作各種規(guī)格的打印字庫文件,大大節(jié)省開發(fā)維護(hù)成本;
(3)本發(fā)明無需對(duì)打印內(nèi)容圖片等進(jìn)行點(diǎn)陣處理和排版處理,大大提高開發(fā)效率和降低開發(fā)難度;
(4)本發(fā)明利用android/linux的多語言支持,使得打印可以直接支持多語言,大大提升競(jìng)爭(zhēng)力和開發(fā)效率。
附圖說明
圖1是現(xiàn)有的打印點(diǎn)陣提取方法示意圖;
圖2是本發(fā)明基于顯示框架的熱敏打印方法的實(shí)施例流程圖;
圖3是本發(fā)明基于顯示框架的熱敏打印方法的實(shí)施例示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述。僅此聲明,本發(fā)明在文中出現(xiàn)或即將出現(xiàn)的上、下、左、右、前、后、內(nèi)、外等方位用詞,僅以本發(fā)明的附圖為基準(zhǔn),其并不是對(duì)本發(fā)明的具體限定。
如圖1所示,現(xiàn)有的打印點(diǎn)陣提取方法中,需要自行實(shí)現(xiàn)android系統(tǒng)熱敏打印點(diǎn)陣處理框架以完成熱敏打印機(jī)的功能,同時(shí),android系統(tǒng)熱敏打印點(diǎn)陣處理框架需要實(shí)現(xiàn)對(duì)圖片的點(diǎn)陣轉(zhuǎn)換處理及文字的點(diǎn)陣處理,這需要制作大量的字庫文件(包括各種語言、字體大小、字體類型的字庫),或者使用不同的外部硬件字庫芯片。
因此,現(xiàn)有的技術(shù)方案匹配新的語言文字會(huì)非常耗時(shí),對(duì)于一些特殊的語言文字涉及到排版問題和變形轉(zhuǎn)換的問題,還會(huì)加大研發(fā)匹配難度,增加開發(fā)成本和維護(hù)成本,穩(wěn)定性低,使用麻煩,可重用性低。
需要說明的是,android/linux系統(tǒng)本身支持多語言顯示,由于顯示采用ttf等矢量字體,使字體可以隨意不失真放大,目前有非常多的ttf文件(windows、android、linux操作系統(tǒng)本身自帶大量的ttf顯示字庫),可以方便地下載各種類型的字體(黑體、宋體等),而實(shí)際上通過android/linux顯示框架的處理后,顯示到屏幕上的內(nèi)容也是點(diǎn)陣信息,如果我們能將要打印的內(nèi)容、字樣轉(zhuǎn)換為要顯示的內(nèi)容交給android/linux系統(tǒng)的顯示框架處理,然后將顯示框架轉(zhuǎn)換出來的點(diǎn)陣信息再轉(zhuǎn)換為打印的點(diǎn)陣信息進(jìn)行打印,這樣,可以節(jié)省非常多的工作量。
參見圖2及圖3,圖2及圖3顯示了本發(fā)明基于顯示框架的熱敏打印方法的實(shí)施例。
如圖2所示,本發(fā)明基于顯示框架的熱敏打印方法包括:
s1,打印服務(wù)模塊接收應(yīng)用端的打印請(qǐng)求,并將打印請(qǐng)求中的打印信息提交至打印顯示轉(zhuǎn)換模塊。
需要說明的是,打印請(qǐng)求內(nèi)封裝有打印信息,所述打印信息包括打印內(nèi)容、打印字體類型、打印字體大小及打印圖片。相應(yīng)地,本發(fā)明可應(yīng)用于android系統(tǒng)及l(fā)inux系統(tǒng),所述應(yīng)用端包括android應(yīng)用端或linux應(yīng)用端。
進(jìn)一步,所述步驟s1之前還包括:打印服務(wù)模塊啟動(dòng)后,打印服務(wù)模塊查詢應(yīng)用端所支持的顯示字體類型,并為應(yīng)用端提供字體設(shè)置接口。
s2,所述打印顯示轉(zhuǎn)換模塊調(diào)用應(yīng)用端的顯示服務(wù)模塊將打印信息轉(zhuǎn)換為顯示信息。
具體地,所述打印顯示轉(zhuǎn)換模塊調(diào)用顯示服務(wù)模塊將打印信息轉(zhuǎn)換為顯示信息的方法包括:將打印字體大小轉(zhuǎn)換為顯示字體大小,將打印字體類型轉(zhuǎn)換為顯示字體類型,將打印圖片轉(zhuǎn)換為顯示圖片。
因此,打印顯示轉(zhuǎn)換模塊根據(jù)打印服務(wù)模塊所傳輸?shù)拇蛴⌒畔ⅲ{(diào)用應(yīng)用端的顯示服務(wù)模塊中的接口進(jìn)行轉(zhuǎn)換,將打印字體大小轉(zhuǎn)換為顯示字體大小,將打印字體類型轉(zhuǎn)換為顯示字體類型,將打印圖片轉(zhuǎn)換為顯示圖片。
s3,所述顯示服務(wù)模塊調(diào)用應(yīng)用端的顯示處理框架對(duì)顯示信息進(jìn)行點(diǎn)陣緩存處理以生成顯示點(diǎn)陣緩存。
具體地,所述顯示服務(wù)模塊調(diào)用顯示處理框架對(duì)顯示信息進(jìn)行點(diǎn)陣緩存處理以生成顯示點(diǎn)陣緩存的方法包括:圖文合拼計(jì)算、尺量轉(zhuǎn)換及縮放操作。
因此,應(yīng)用端的顯示服務(wù)模塊中的接口獲取到顯示信息(顯示信息包括顯示字體大小、顯示字體類型及顯示圖片)后,將統(tǒng)一調(diào)用應(yīng)用端的顯示處理框架,進(jìn)行圖文合拼計(jì)算,尺量轉(zhuǎn)換,放大、縮小等操作,從而得到顯示點(diǎn)陣緩存。
s4,點(diǎn)陣轉(zhuǎn)換模塊對(duì)顯示處理框架輸出的顯示點(diǎn)陣緩存進(jìn)行攔截。若顯示點(diǎn)陣緩存是由顯示請(qǐng)求產(chǎn)生的,則將顯示點(diǎn)陣緩存發(fā)送至顯示器進(jìn)行圖像化顯示;若顯示點(diǎn)陣緩存是由打印請(qǐng)求產(chǎn)生的,則將顯示點(diǎn)陣緩存發(fā)送至打印機(jī)進(jìn)行打印。
需要說明的是,顯示點(diǎn)陣緩存可以由顯示請(qǐng)求或打印請(qǐng)求產(chǎn)生,當(dāng)應(yīng)用端直接向顯示服務(wù)模塊發(fā)送顯示請(qǐng)求時(shí),則所述顯示請(qǐng)求所對(duì)應(yīng)的顯示點(diǎn)陣緩存是由顯示請(qǐng)求產(chǎn)生的;當(dāng)應(yīng)用端向打印服務(wù)模塊發(fā)送打印請(qǐng)求時(shí),則所述打印請(qǐng)求所對(duì)應(yīng)的顯示點(diǎn)陣緩存是由打印請(qǐng)求產(chǎn)生的。
例如,當(dāng)應(yīng)用端直接向顯示服務(wù)模塊發(fā)送顯示請(qǐng)求時(shí),所述顯示服務(wù)模塊調(diào)用應(yīng)用端的顯示處理框架對(duì)顯示信息進(jìn)行點(diǎn)陣緩存處理以生成顯示點(diǎn)陣緩存,此時(shí),顯示點(diǎn)陣緩存是由顯示請(qǐng)求產(chǎn)生的。
又如,當(dāng)應(yīng)用端向打印服務(wù)模塊發(fā)送打印請(qǐng)求時(shí),打印服務(wù)模塊將打印請(qǐng)求中的打印信息提交至打印顯示轉(zhuǎn)換模塊;打印顯示轉(zhuǎn)換模塊調(diào)用應(yīng)用端的顯示服務(wù)模塊將打印信息轉(zhuǎn)換為顯示信息;顯示服務(wù)模塊調(diào)用應(yīng)用端的顯示處理框架對(duì)顯示信息進(jìn)行點(diǎn)陣緩存處理以生成顯示點(diǎn)陣緩存。此時(shí),顯示點(diǎn)陣緩存是由打印請(qǐng)求產(chǎn)生的。
具體地,所述將顯示點(diǎn)陣緩存發(fā)送至打印機(jī)進(jìn)行點(diǎn)陣內(nèi)容打印的方法包括:
獲取顯示點(diǎn)陣緩沖區(qū)內(nèi)的顯示點(diǎn)陣緩存;
根據(jù)打印機(jī)的要求將顯示點(diǎn)陣緩存轉(zhuǎn)換成打印點(diǎn)陣;
通過打印機(jī)打印所述打印點(diǎn)陣。
因此,點(diǎn)陣轉(zhuǎn)換模塊會(huì)對(duì)顯示處理框架輸出的顯示點(diǎn)陣緩存進(jìn)行攔截,如果顯示點(diǎn)陣緩存是由顯示請(qǐng)求產(chǎn)生的,點(diǎn)陣轉(zhuǎn)換模塊將顯示點(diǎn)陣緩存直接下發(fā)到lcd(liquidcrystaldisplay薄膜晶體管液晶顯示器件)進(jìn)行圖像化顯示;如果顯示點(diǎn)陣緩存是由打印請(qǐng)求產(chǎn)生的,點(diǎn)陣轉(zhuǎn)換模塊就會(huì)獲取顯示點(diǎn)陣緩沖區(qū)內(nèi)的顯示點(diǎn)陣緩存,然后根據(jù)打印機(jī)的不同要求對(duì)顯示點(diǎn)陣緩存進(jìn)行點(diǎn)陣加工轉(zhuǎn)換并生成打印點(diǎn)陣(如灰度的變化、格式變化等),最后操作打印機(jī)進(jìn)行打印點(diǎn)陣的打印。
由上可知,由于android/linux系統(tǒng)已經(jīng)支持各國各地的語言,通過簡單的切換就可實(shí)現(xiàn)不同語言文字界面的顯示。本發(fā)明通過android/linux的內(nèi)部機(jī)制,提取android/linux顯示畫面內(nèi)容中的實(shí)際點(diǎn)陣,轉(zhuǎn)換為打印的點(diǎn)陣,這樣不僅能免去各種字模文件的匹配導(dǎo)入,還能做到不同語言的快速切換使用,大量節(jié)省人力,免去重復(fù)編輯開發(fā)打印字庫點(diǎn)陣文件的繁瑣工作,從而極大地降低產(chǎn)品的研發(fā)成本,維護(hù)成本和時(shí)間成本。
具體地,本發(fā)明通過打印服務(wù)模塊和打印顯示模塊將打印圖文提交給android/linux進(jìn)行顯示處理;利用android/linux顯示處理框架來完成打印的文本處理、圖片處理,實(shí)現(xiàn)排版和多語言支持;利用android/linux顯示的多語言支持來完成打印的多語言支持;通過點(diǎn)陣轉(zhuǎn)換模塊攔截顯示緩存,將android/linux顯示緩存轉(zhuǎn)換為熱敏打印機(jī)打印緩存。
相應(yīng)地,本發(fā)明基于顯示框架的熱敏打印方法具有以下優(yōu)點(diǎn):
(1)本發(fā)明無需使用硬件字庫芯片,可節(jié)省硬件成本;
(2)本發(fā)明可以靈活切換字體,實(shí)現(xiàn)不同字體大小、不同字體類型的靈活切換,無需制作各種規(guī)格的打印字庫文件,大大節(jié)省開發(fā)維護(hù)成本;
(3)本發(fā)明無需對(duì)打印內(nèi)容圖片等進(jìn)行點(diǎn)陣處理和排版處理,大大提高開發(fā)效率和降低開發(fā)難度;
(4)本發(fā)明利用android/linux的多語言支持,使得打印可以直接支持多語言,大大提升競(jìng)爭(zhēng)力和開發(fā)效率。
需要說明的是,本發(fā)明可應(yīng)用于android系統(tǒng)及l(fā)inux系統(tǒng)。當(dāng)應(yīng)用于android系統(tǒng)時(shí),所述應(yīng)用端為android應(yīng)用端,所述顯示服務(wù)模塊為android顯示服務(wù)模塊,所述顯示處理框架為android顯示處理框架;當(dāng)應(yīng)用于linux系統(tǒng)時(shí),所述應(yīng)用端為linux應(yīng)用端,所述顯示服務(wù)模塊為linux顯示服務(wù)模塊,所述顯示處理框架為linux顯示處理框架。
以上所述是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也視為本發(fā)明的保護(hù)范圍。