2. Barcode4j:Barcode4j是一个开源的Java库,用于生成和解析条形码,支持多种格式,如Code 39,Code 128,UPC,EAN,Interleaved 2 of 5,PostNet等。
3. Java Barcode:Java Barcode是一个独立的条形码库,它可以快速地生成和解码各种条形码格式,如UPC-A,UPC-E,EAN-8,EAN-13,Code 39,Code 128,QR Code,Data Matrix,Aztec,PDF 417等。
参考 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=0i<printers.lengthi++ ) 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")
}
}