上海啟邦條碼打印機工程師馬天宇回答你:
成都創(chuàng)新互聯(lián)公司是專業(yè)的陸河網站建設公司,陸河接單;提供網站設計、成都做網站,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行陸河網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!
編程控制條碼打印機的有三種方式:1,直接使用條碼打印機的驅動程序,把它當成普通打印機使用。條碼可以使用條碼字體或圖形方式打印。2,使用條碼打印機語言(腳本)直接送到打印機的端口,如并口,網口或usb口。 3,調用第三方軟件,由第三方軟件對打印機進行控制,標簽模板的編輯等。你只需調用它并傳輸數據即可。
java連接打印機打印pdf文件,網上搜索了一大把資料,基本上都是重復。。。下面罵人的一大堆。。我這里來解決一下。
需求:前端調用用接口 后端根據模版生成數據聯(lián)通打印機直接一鍵打??!
思路:這里講一下打印最好使用pdf去打印。不管是word.excel 都是通過轉PDF 再打印出來的。所以我這里的思路就是 選擇模版生成文件,并且打印。
我這里選擇html模版 也就是freemark模版。
1、通過vm文件生成html
2、通過html再轉成 pdf
3、調用打印機方法打印
可以參考下.自己寫的一個例子
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()); //設置可成像的X和Y軸的距離
g2.drawImage(eanImage, 0, 80, null); //設置打印的邊距
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實現本地打?。簀ava.awt中提供了一些打印的API,要實現打印,首先要獲得打印對象,然后繼承Printable實現接口方法print,以便打印機進行打印,最后用用Graphics2D直接輸出直接輸出。下面代碼實現了簡單的打印功能: