亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Java如何調用TSC打印機進行打印詳解

2024-07-14 08:41:33
字體:
來源:轉載
供稿:網友

前言

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

第一種后臺打?。?nbsp;   

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

 PrintServiceLookup.lookupMultiDocPrintServices(flavors, attributes);

可執行代碼如下:

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

第二種后臺打印:

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

可執行代碼如下:

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+"/""; //打印二維碼的參數和內容 TscLibDll.INSTANCE.sendcommand(command); //傳送指令 TscLibDll.INSTANCE.sendcommand("TEXT 300 70 36 0 0 0 arial"+ "辦公耗材-標簽紙"); //TscLibDll.INSTANCE.windowsfont(300, 70, 36, 0, 0, 0, "arial", "辦公耗材-標簽紙"); TscLibDll.INSTANCE.printlabel("1", "1"); TscLibDll.INSTANCE.closeport(); }}

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

第三種JS打印

在使用JS進行打印的時候要主要瀏覽器的限制,目前只有IE瀏覽器進行支持,在進行打印時,控制臺出現Automation 服務器不能創建對象的,請調節瀏覽器的安全中的自定義級別中的ActiveX中相關的設置為啟用,代碼如下:

<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-開發幫助/PHP調用范例/TSCActiveX.DLL-PHP-Example/","123.PCX"); TSCObj.ActiveXsetup("70","40","4","15","0","2.5","0");//打印機設置 //TSCObj.ActiveXsetup("標簽寬度","標簽高度","打印速度","打印濃度(0-15)","感應器類別字串型,0 表示使用垂直間距感測器(gap sensor), 1 表示使用黑標感測器(black mark senso)","Gap/Black mark垂直間距(mm)","Gap/Black mark偏移距離(mm)"); //TSCObj.ActiveXformfeed(); //TSCObj.ActiveXnobackfeed(); TSCObj.ActiveXsendcommand("DIRECTION 1"); //設置標簽方向 ,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采用機器內置編碼通常用來打英文。 2、ActiveXwindowsfont可以輸出漢字,但是必須是系統中存在的字體。 TSCObj.ActiveXprinterfont ("a","b","c","d","e","f","g"); a:字符串,文字X方向起始點,以點表示。 b:字符串,文字Y方向起始點,以點表示。 c:內建字型名稱,共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:字符串,旋轉角度 e:字符串,X方向放大倍率1-8 f:字符串,Y方向放大倍率1-8 g:字符串,打印內容 ActiveXwindowsfont(a,b,c,d,e,f,g,h) 說明:使用Windows TTF字體打印文字。 參數: a:整數類型,文字X方向起始點,以點表示。 b:整數類型,文字Y方向起始點,以點表示。 c:整數類型,字體高度,以點表示。 d:整數類型,旋轉角度,逆時針方向旋轉。0-旋轉0°,90-旋轉90°,180-旋轉180°,270-旋轉270°。 e:整數類型,字體外形。0:標簽;1:斜體;2:粗體;3:粗斜體。 f:整數類型,下劃線,0:無下劃線;1:加下劃線。 g:字符串類型,字體名稱。如:Arial,Times new Roman。 h:字符串類型,打印文字內容。 */// 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),旋轉角度,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");//(打印份數,每頁打印張數) TSCObj.ActiveXclearbuffer();//清除 TSCObj.ActiveXcloseport();//關閉打印端口}</script>

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一本一本久久a久久精品综合小说| 欧美激情a在线| 亚洲欧美资源在线| 亚洲自拍中文字幕| 一本大道香蕉久在线播放29| 日韩电影第一页| 一本色道久久88综合亚洲精品ⅰ| 亚洲国产欧美一区二区丝袜黑人| 黑人与娇小精品av专区| 亚洲精品电影网在线观看| 色悠悠久久88| 久久天天躁狠狠躁老女人| 欧美成人精品xxx| 中文字幕日韩欧美| www.亚洲成人| 亚洲第一在线视频| 国产精品自产拍在线观看| 中国china体内裑精亚洲片| 亚洲欧美变态国产另类| 91精品啪aⅴ在线观看国产| 亚洲国产成人av在线| 中文国产成人精品| 久久视频在线看| 日韩在线观看高清| 成人国产亚洲精品a区天堂华泰| 成人乱色短篇合集| 亚洲欧美制服另类日韩| 亚洲精品国产拍免费91在线| 88xx成人精品| 国产精品福利久久久| 综合136福利视频在线| 91高清在线免费观看| 亚洲国产精品人久久电影| 亚洲小视频在线| 国产不卡在线观看| 中文字幕亚洲国产| 91高清视频免费观看| 国产成人av在线播放| 国产精品扒开腿做爽爽爽的视频| 中文字幕不卡av| 亚洲天堂免费在线| 日本19禁啪啪免费观看www| 国产美女直播视频一区| 高清一区二区三区日本久| 一区二区三区美女xx视频| 国产精品久久不能| 最近2019免费中文字幕视频三| 亚洲天堂视频在线观看| 日韩av色综合| 国产主播在线一区| 欧美激情影音先锋| 欧美激情视频一区二区三区不卡| 亚洲色图校园春色| 最近中文字幕mv在线一区二区三区四区| 亚洲第一视频网站| 精品久久久久久久久久久| 亚洲第一区中文99精品| 国产在线视频欧美| 91亚洲精品在线观看| 欧美与黑人午夜性猛交久久久| 欧美床上激情在线观看| 亚洲国产精彩中文乱码av| 亚洲久久久久久久久久| 国产欧美va欧美va香蕉在线| 亚洲福利小视频| 国模私拍一区二区三区| 欧美午夜美女看片| 成人午夜在线观看| 久久免费成人精品视频| 人人做人人澡人人爽欧美| 综合激情国产一区| 91人人爽人人爽人人精88v| 欧美激情图片区| 91精品久久久久久久久中文字幕| 91国自产精品中文字幕亚洲| 在线播放日韩专区| 美女视频久久黄| xvideos亚洲| 亚洲国产三级网| 欧美日韩人人澡狠狠躁视频| 精品国产鲁一鲁一区二区张丽| 国产精品久久久久久久久男| 久久综合免费视频| 久久久免费在线观看| 成人午夜一级二级三级| 国产精品一香蕉国产线看观看| 欧美性xxxxx极品| 国产成人+综合亚洲+天堂| 亚洲一区制服诱惑| 欧美精品在线看| 国内精品中文字幕| 日韩中文字幕在线看| 日韩中文av在线| 中文字幕av一区中文字幕天堂| 亚洲欧美在线x视频| 日本久久久久久久久久久| 中文欧美日本在线资源| 久久免费国产精品1| 精品国产老师黑色丝袜高跟鞋| 欧美午夜精品久久久久久久| 精品久久久久久亚洲精品| 久久久久久久久爱| 欧美电影在线观看高清| 亚洲欧美在线一区二区| 中文字幕免费精品一区高清| 亚洲国产古装精品网站| 欧美精品video| 久久九九国产精品怡红院| 2021国产精品视频| 国产精品国产三级国产专播精品人| 亚洲国产一区二区三区四区| 欧美高清视频在线观看| 久久影视电视剧免费网站| 亚洲午夜未满十八勿入免费观看全集| 亚洲激情视频在线| 日韩欧美成人网| 色婷婷av一区二区三区久久| 91免费的视频在线播放| 懂色av一区二区三区| 欧美亚洲一区在线| 久久精品视频在线播放| 亚洲国产精品字幕| 欧美主播福利视频| 久久久噜噜噜久久中文字免| 久久久精品电影| 成人福利网站在线观看11| 性色av一区二区三区免费| 日韩女优人人人人射在线视频| 国产婷婷97碰碰久久人人蜜臀| 欧美日韩国产色| 清纯唯美亚洲综合| 欧美激情2020午夜免费观看| 久久久久999| 91精品久久久久久久久| 亚洲在线免费看| 国产91免费观看| 欧美激情一级精品国产| …久久精品99久久香蕉国产| 欧美刺激性大交免费视频| 欧美激情国产高清| 久久久久久欧美| 91免费综合在线| 国产精品扒开腿做爽爽爽男男| 中文字幕久精品免费视频| 亚洲国产一区二区三区在线观看| 欧美激情影音先锋| 91色在线观看| 九九热r在线视频精品| 国产婷婷97碰碰久久人人蜜臀| 97成人精品视频在线观看| 成人精品久久久| 久久久99久久精品女同性| 国产精品丝袜久久久久久不卡| 欧美床上激情在线观看| 98精品国产高清在线xxxx天堂| 欧美日韩另类视频| 国产在线播放91| www.欧美精品一二三区| 国产精品男人的天堂| 亚洲国产精品女人久久久| 亚洲深夜福利在线| 亚洲欧洲美洲在线综合| 久久精品免费播放| 国内精品视频一区|