上海啟邦條碼打印機(jī)工程師馬天宇回答你:
成都創(chuàng)新互聯(lián)公司是專業(yè)的陸河網(wǎng)站建設(shè)公司,陸河接單;提供網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行陸河網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
編程控制條碼打印機(jī)的有三種方式:1,直接使用條碼打印機(jī)的驅(qū)動(dòng)程序,把它當(dāng)成普通打印機(jī)使用。條碼可以使用條碼字體或圖形方式打印。2,使用條碼打印機(jī)語(yǔ)言(腳本)直接送到打印機(jī)的端口,如并口,網(wǎng)口或usb口。 3,調(diào)用第三方軟件,由第三方軟件對(duì)打印機(jī)進(jìn)行控制,標(biāo)簽?zāi)0宓木庉嫷取D阒恍枵{(diào)用它并傳輸數(shù)據(jù)即可。
java連接打印機(jī)打印pdf文件,網(wǎng)上搜索了一大把資料,基本上都是重復(fù)。。。下面罵人的一大堆。。我這里來(lái)解決一下。
需求:前端調(diào)用用接口 后端根據(jù)模版生成數(shù)據(jù)聯(lián)通打印機(jī)直接一鍵打印!
思路:這里講一下打印最好使用pdf去打印。不管是word.excel 都是通過(guò)轉(zhuǎn)PDF 再打印出來(lái)的。所以我這里的思路就是 選擇模版生成文件,并且打印。
我這里選擇html模版 也就是freemark模版。
1、通過(guò)vm文件生成html
2、通過(guò)html再轉(zhuǎn)成 pdf
3、調(diào)用打印機(jī)方法打印
可以參考下.自己寫的一個(gè)例子
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import java.util.Queue;
import com.google.zxing.WriterException;
public class QrPrint implements Printable {
public void print() throws PrinterException {
PrinterJob pj = PrinterJob.getPrinterJob();
PageFormat pf = pj.defaultPage();
Paper paper = new Paper();
double margin = 0.1; // half inch
paper.setImageableArea(margin, margin, paper.getWidth() - margin * 2,paper.getHeight() - margin * 2);
pf.setPaper(paper);
pj.setPrintable(this, pf);
pj.print();
}
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
if ("判斷如果打印完了就退出") {
return Printable.NO_SUCH_PAGE;
}
try {
Image eanImage = generateEANBufferedImage(content,120,20);
Graphics2D g2 = (Graphics2D) graphics;
g2.translate(pageFormat.getImageableX(), pageFormat.getImageableY()); //設(shè)置可成像的X和Y軸的距離
g2.drawImage(eanImage, 0, 80, null); //設(shè)置打印的邊距
g2.drawString("字符串:",130,20);
} catch (WriterException e) {
e.printStackTrace();
return Printable.NO_SUCH_PAGE;
}
return Printable.PAGE_EXISTS;
}
private BufferedImage generateBufferedImage(String content,int width,int height) throws WriterException {
HashtableEncodeHintType,String hints = new HashtableEncodeHintType,String();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.EAN_13, width, height, hints);
return MatrixToImageWriter.toBufferedImage(bitMatrix);
}
}
用java實(shí)現(xiàn)本地打印:java.awt中提供了一些打印的API,要實(shí)現(xiàn)打印,首先要獲得打印對(duì)象,然后繼承Printable實(shí)現(xiàn)接口方法print,以便打印機(jī)進(jìn)行打印,最后用用Graphics2D直接輸出直接輸出。下面代碼實(shí)現(xiàn)了簡(jiǎn)單的打印功能:
分享題目:java代碼控制打印機(jī) java打印控制臺(tái)
本文鏈接:http://vcdvsql.cn/article24/hehoce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站排名、建站公司、自適應(yīng)網(wǎng)站、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)