最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java如何調(diào)用TSC打印機進行打印詳解

 更新時間:2018年07月13日 15:14:12   作者:孤獨患者的病態(tài)  
這篇文章主要給大家介紹了關(guān)于Java如何調(diào)用TSC打印機進行打印的相關(guān)資料,文中介紹了三種方法,分別是兩種后臺打印以及JS打印 ,三種方法都給出了詳細的示例代碼,需要的朋友可以參考借鑒,下面來一起看看吧

前言

最近項目中用到了打印機,最開始的完全不懂,現(xiàn)在弄好了,所以做了總結(jié),該篇包括后臺的調(diào)用打印(兩種方式)跟前端的js的打印,但是只有IE現(xiàn)在支持打印,而且如果想遠程連接打印機,二維碼的生成和直接由打印機的命令進行操作,就要把修改瀏覽器的安全配置,下面再做詳細的介紹

第一種后臺打印:    

使用javax中的PrintServiceLookup類進行打印,可以直接調(diào)用默認的打印機,也可以使用下列的方法進行篩選打印: 

 PrintServiceLookup.lookupMultiDocPrintServices(flavors, attributes);

可執(zhí)行代碼如下:

public static void main(String[] args) {
 FileInputStream textStream = null;
 try {
 textStream = new FileInputStream("地址");
 } catch (FileNotFoundException e) {
 e.printStackTrace();
 } 
 if (textStream != null) // 當(dāng)打印內(nèi)容不為空時
 {
 // 指定打印輸出格式
 DocFlavor flavor = DocFlavor.INPUT_STREAM.PDF;//SERVICE_FORMATTED.PRINTABLE
 // 定位默認的打印服務(wù)
 PrintService printService = PrintServiceLookup.lookupDefaultPrintService();
 // 創(chuàng)建打印作業(yè)
 DocPrintJob job = printService.createPrintJob();
 // 設(shè)置打印屬性
 PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
 // 設(shè)置紙張大小,也可以新建MediaSize類來自定義大小
 pras.add(MediaSizeName.ISO_A4);
 DocAttributeSet das = new HashDocAttributeSet();
 // 指定打印內(nèi)容
 Doc doc = new SimpleDoc(textStream, flavor, das);
 // 不顯示打印對話框,直接進行打印工作
 try {
  job.print(doc, pras); // 進行每一頁的具體打印操作
 } catch (PrintException pe) {
  pe.printStackTrace();
 }
 } else {
 // 如果打印內(nèi)容為空時,提示用戶打印將取消
 JOptionPane.showConfirmDialog(null,
  "Sorry, Printer Job is Empty, Print Cancelled!",
  "Empty", JOptionPane.DEFAULT_OPTION,
  JOptionPane.WARNING_MESSAGE);
 }
 }

第二種后臺打印:

注意:第二種跟第三種打印使用的是打印機的命令進行操作,這里需要jna的jar包,還有jdk要求是32位的,并且要要注冊對應(yīng)的dll,對應(yīng)不同的系統(tǒng)要在不同的Windows下進行注冊DLL,注冊成功之后需要win+R ,調(diào)用并運行  Regsvr32.exe TSCActiveX.dll 指令

可執(zhí)行代碼如下:

public class JavaDemo {
 public interface TscLibDll extends Library {
 TscLibDll INSTANCE = (TscLibDll) Native.loadLibrary("TSCLIB", TscLibDll.class);
 int about();
 int openport(String pirnterName);
 int closeport();
 int sendcommand(String printerCommand);
 int setup(String width, String height, String speed, String density, String sensor, String vertical, String offset);
 int downloadpcx(String filename, String image_name);
 int barcode(String x, String y, String type, String height, String readable, String rotation, String narrow, String wide, String code);
 int printerfont(String x, String y, String fonttype, String rotation, String xmul, String ymul, String text);
 int clearbuffer();
 int printlabel(String set, String copy);
 int formfeed();
 int nobackfeed();
 int windowsfont(int x, int y, int fontheight, int rotation, int fontstyle, int fontunderline, String szFaceName, String content);
 }
 
 
 public static void main(String[] args) {
 System.setProperty("jna.encoding", "GBK");// 支持中文
 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 String time = df.format(new Date());
 String qrCode = "PD102011";
 TscLibDll.INSTANCE.openport("TSC TTP-244 Pro");//打印機型號
 TscLibDll.INSTANCE.setup("70","40","5","8","0","2","0");
 TscLibDll.INSTANCE.clearbuffer();
 String command = "QRCODE 120,90,Q,8,A,0,M1,S7,\"" + qrCode+"\""; //打印二維碼的參數(shù)和內(nèi)容
 TscLibDll.INSTANCE.sendcommand(command); //傳送指令
 TscLibDll.INSTANCE.sendcommand("TEXT 300 70 36 0 0 0 arial"+ "辦公耗材-標(biāo)簽紙");
 //TscLibDll.INSTANCE.windowsfont(300, 70, 36, 0, 0, 0, "arial", "辦公耗材-標(biāo)簽紙");
 TscLibDll.INSTANCE.printlabel("1", "1");
 TscLibDll.INSTANCE.closeport();
 }
}

注意:這種打印方式,需要USB連接(ttp-244 pro),如果想在線生成,遠程連接,需要使用第三種方式

第三種JS打印

在使用JS進行打印的時候要主要瀏覽器的限制,目前只有IE瀏覽器進行支持,在進行打印時,控制臺出現(xiàn)Automation 服務(wù)器不能創(chuàng)建對象的,請調(diào)節(jié)瀏覽器的安全中的自定義級別中的ActiveX中相關(guān)的設(shè)置為啟用,代碼如下:

<script type="text/javascript">
 
function printQRcode(){
 
 var TSCObj = new ActiveXObject("TSCActiveX.TSCLIB");//打印機使用的dll
 //TSCObj.ActiveXabout(); // 打印機信息
 TSCObj.ActiveXopenport ("TSC TTP-244 Pro");//打印機名稱,不能寫錯
 //TSCObj.ActiveXdownloadpcx ("D:/myeclipseproject/filesManager/trunk/doc/02-參考資料/03-二維碼打印機/01-開發(fā)幫助/PHP調(diào)用范例/TSCActiveX.DLL-PHP-Example/","123.PCX");
 TSCObj.ActiveXsetup("70","40","4","15","0","2.5","0");//打印機設(shè)置
 //TSCObj.ActiveXsetup("標(biāo)簽寬度","標(biāo)簽高度","打印速度","打印濃度(0-15)","感應(yīng)器類別字串型,0 表示使用垂直間距感測器(gap sensor), 1 表示使用黑標(biāo)感測器(black mark senso)","Gap/Black mark垂直間距(mm)","Gap/Black mark偏移距離(mm)");
 //TSCObj.ActiveXformfeed();
 //TSCObj.ActiveXnobackfeed();
 TSCObj.ActiveXsendcommand("DIRECTION 1"); //設(shè)置標(biāo)簽方向 ,DIRECTION 1 左上角 (x,y)={0,0};DIRECTION 0 右下角 (x,y)={0,0};
 TSCObj.ActiveXsendcommand ("SET TEAR ON");
 TSCObj.ActiveXclearbuffer();
 //TSCObj.ActiveXsendcommand ("PUTPCX 0,0,\"123.PCX\"");
 /*
 1、ActiveXprinterfont采用機器內(nèi)置編碼通常用來打英文。
 2、ActiveXwindowsfont可以輸出漢字,但是必須是系統(tǒng)中存在的字體。
 TSCObj.ActiveXprinterfont ("a","b","c","d","e","f","g");
 a:字符串,文字X方向起始點,以點表示。
 b:字符串,文字Y方向起始點,以點表示。
 c:內(nèi)建字型名稱,共12種(1: 8*12 dots 2: 12*20 dots 3: 16*24 dots 4: 24*32 dots 5: 32*48 dots TST24.BF2: 繁體中文 24*24 TST16.BF2: 繁體中文 16*16 TTT24.BF2: 繁體中文 24*24 (電信碼) TSS24.BF2: 簡體中文 24*24 TSS16.BF2: 簡體中文 16*16 K: 韓文 24*24 L: 韓文 16*16 )
 d:字符串,旋轉(zhuǎn)角度
 e:字符串,X方向放大倍率1-8
 f:字符串,Y方向放大倍率1-8
 g:字符串,打印內(nèi)容
 ActiveXwindowsfont(a,b,c,d,e,f,g,h)
 說明:使用Windows TTF字體打印文字。
 參數(shù):
 a:整數(shù)類型,文字X方向起始點,以點表示。
 b:整數(shù)類型,文字Y方向起始點,以點表示。
 c:整數(shù)類型,字體高度,以點表示。
 d:整數(shù)類型,旋轉(zhuǎn)角度,逆時針方向旋轉(zhuǎn)。0-旋轉(zhuǎn)0°,90-旋轉(zhuǎn)90°,180-旋轉(zhuǎn)180°,270-旋轉(zhuǎn)270°。
 e:整數(shù)類型,字體外形。0:標(biāo)簽;1:斜體;2:粗體;3:粗斜體。
 f:整數(shù)類型,下劃線,0:無下劃線;1:加下劃線。
 g:字符串類型,字體名稱。如:Arial,Times new Roman。
 h:字符串類型,打印文字內(nèi)容。
 */
// TSCObj.ActiveXwindowsfont (500, 200, 48, 90, 0, 0, "Arial", "\u7f16\u7801");
 TSCObj.ActiveXwindowsfont (260, 60, 60, 0, 2, 0, "Arial", "XX專用");
 
 //var cmd = 'QRCODE 條碼X方向起始點,條碼Y方向起始點,糾錯級別,二維碼高度,A(A和M),旋轉(zhuǎn)角度,M2(分為類型1和類型2),S1 (s1-s8,默認s7),\"1231你好2421341325454353\"';
 var cmd = 'QRCODE 80,80,H,7,A,0,M2,S1,\"'+"123456789"+'\"';
 
 TSCObj.ActiveXsendcommand(cmd);
 TSCObj.ActiveXwindowsfont (280, 150, 40, 0, 0, 0, "Arial", "123456789");
 TSCObj.ActiveXwindowsfont (180, 260, 30, 0, 0, 0, "Arial", "XXXXXXXX");
 TSCObj.ActiveXprintlabel ("1","1");//(打印份數(shù),每頁打印張數(shù))
 TSCObj.ActiveXclearbuffer();//清除
 TSCObj.ActiveXcloseport();//關(guān)閉打印端口
}
</script>

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • spring的同一定時任務(wù)上一次的任務(wù)未結(jié)束前不會啟動這次任務(wù)問題

    spring的同一定時任務(wù)上一次的任務(wù)未結(jié)束前不會啟動這次任務(wù)問題

    這篇文章主要介紹了spring的同一定時任務(wù)上一次的任務(wù)未結(jié)束前不會啟動這次任務(wù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Spring學(xué)習(xí)筆記之RedisTemplate的配置與使用教程

    Spring學(xué)習(xí)筆記之RedisTemplate的配置與使用教程

    這篇文章主要給大家介紹了關(guān)于Spring學(xué)習(xí)筆記之RedisTemplate配置與使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用spring具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • Java設(shè)計模式之策略模式

    Java設(shè)計模式之策略模式

    這篇文章介紹了Java設(shè)計模式之策略模式,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • Java實現(xiàn)利用圖片或視頻生成GIF并發(fā)送微信

    Java實現(xiàn)利用圖片或視頻生成GIF并發(fā)送微信

    這篇文章主要為大家詳細介紹了Java語言如何利用圖片或視頻實現(xiàn)生成GIF并發(fā)送微信的功能,文中的示例代碼講解詳細,感興趣的小伙伴可以嘗試一下
    2022-11-11
  • 詳解Java快速上手用戶后臺管理系統(tǒng)

    詳解Java快速上手用戶后臺管理系統(tǒng)

    只有在實戰(zhàn)中練習(xí)才能真正獲得能力的提升,本篇文章手把手帶你用Java快速上手實現(xiàn)一個用戶后臺管理系統(tǒng),大家可以在過程中查缺補漏,提升水平
    2022-01-01
  • SpringBoot整合高德地圖實現(xiàn)天氣預(yù)報功能

    SpringBoot整合高德地圖實現(xiàn)天氣預(yù)報功能

    在當(dāng)今數(shù)字化時代,天氣預(yù)報功能在眾多應(yīng)用中扮演著重要角色,通過整合高德地圖提供的天氣API,我們可以輕松地在自己的SpringBoot項目中實現(xiàn)這一功能,本文將詳細介紹如何在SpringBoot項目中整合高德地圖的天氣預(yù)報功能,感興趣的小伙伴跟著小編一起來看看吧
    2025-03-03
  • Java項目部署的完整流程(超詳細!)

    Java項目部署的完整流程(超詳細!)

    我相信很多Java新手都會遇到這樣一個問題,跟著教材敲代碼,很容易,但是讓他完整的實現(xiàn)一個應(yīng)用項目卻不會,下面這篇文章主要給大家介紹了關(guān)于Java項目部署的完整流程,需要的朋友可以參考下
    2022-07-07
  • Java 梳理總結(jié)關(guān)于static關(guān)鍵字常見問題

    Java 梳理總結(jié)關(guān)于static關(guān)鍵字常見問題

    static關(guān)鍵字基本概念我們可以一句話來概括:方便在沒有創(chuàng)建對象的情況下來進行調(diào)用。也就是說:被static關(guān)鍵字修飾的不需要創(chuàng)建對象去調(diào)用,直接根據(jù)類名就可以去訪問,讓我們來了解一下你可能還不知道情況
    2022-04-04
  • SpringBoot?快速實現(xiàn)分庫分表的2種方式

    SpringBoot?快速實現(xiàn)分庫分表的2種方式

    本文將為您介紹?ShardingSphere?的一些基礎(chǔ)特性和架構(gòu)組成,以及在?Springboot?環(huán)境下通過JAVA編碼和Yml配置兩種方式快速實現(xiàn)分庫分表功能,感興趣的朋友跟隨小編一起看看吧
    2023-06-06
  • 深入理解Java注解的使用方法

    深入理解Java注解的使用方法

    這篇文章主要為大家詳細介紹了Java注解的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07

最新評論

穆棱市| 邵武市| 乳源| 长治市| 清新县| 道孚县| 香港| 富平县| 德化县| 怀柔区| 天长市| 揭东县| 闸北区| 峡江县| 长白| 永善县| 宿松县| 舞阳县| 宜君县| 苏尼特左旗| 拉萨市| 唐山市| 盘锦市| 东阳市| 乐清市| 台北县| 额尔古纳市| 德清县| 高台县| 汽车| 乌鲁木齐县| 武城县| 苍梧县| 福州市| 本溪市| 麻江县| 逊克县| 宜宾县| 富源县| 始兴县| 衢州市|