本文目錄一覽:
java中的條碼打印怎樣實現
編程控制條碼打印機的有三種方式:1,直接使用條碼打印機的驅動程序,把它當成普通打印機使用。條碼可以使用條碼字體或圖形方式打櫻2,使用條碼打印機語言(腳本)直接送到打印機的端口,如並口,網口或usb口。
求用java代碼控制斑馬條碼打印機打印二維碼商標的例子程序
可以參考下.自己寫的一個例子
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如何驅動條形碼打印機並能實現WEB打印?
參考 javax.print.*
大致過程是這樣的:
寫一個servlet,專門實現打印服務
這個servlet內是這樣處理的:
1.獲取打印機對象printer
通過枚舉 PrintService printservices[] = PrintServiceLookup.lookupPrintServices(…)
2.生成DocPrintJob job=PrintService.createPrintJob();
3.生成文檔 Doc doc = new SimpleDoc(…);
需要3個參數
第一個是打印的數據,可以根據條碼,生成一幅圖像,然把圖像作為輸入流,作為第一個參數
第二個參數用一個 DocFlavor.INPUT_STREAM 對象
DocFlavor類有相應的靜態變量,你根據圖像的mime類型選擇
第三個參數是一個DocAttributeSet對象
4.打印
job.print(doc, pras);
這是我以前寫的練習:
———————————————————————–
package printtest;
import java.io.*;
import javax.print.*;
import java.awt.*;
import java.awt.image.*;
import javax.imageio.*;
public class Application1
{
public static void test(String code)
{
try{
DocFlavor flavor=DocFlavor.INPUT_STREAM.JPEG;
//get a printer
PrintService[] printers=PrintServiceLookup.lookupPrintServices( flavor, null);
for( int i=0; iprinters.length; i++ ) System.out.println( printers[i].getName());
PrintService printer=printers[0];
//job
DocPrintJob job=printer.createPrintJob();
//document
BufferedImage img=new BufferedImage( 400,300, BufferedImage.TYPE_USHORT_555_RGB );
Graphics g=img.getGraphics();
g.drawString(code, 100,100);
ByteArrayOutputStream outstream=new ByteArrayOutputStream();
ImageIO.write( img, “jpg”, outstream);
byte[] buf=outstream.toByteArray();
InputStream stream=new ByteArrayInputStream(buf);
Doc doc=new SimpleDoc(stream,flavor,null);
job.print(doc, null);
}
catch(Exception e)
{
e.printStackTrace();
}
}
//Main method
public static void main(String[] args)
{
test(“12345”);
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/247020.html