办公中国打印机论坛

 
 立即注册

QQ登录

只需一步,快速开始

办公中国打印机维修论坛vip会员
打印机复印机维修视频教程
搜索
 开通本论坛VIP会员,
享受更多贵宾权限。
点击查看!
点这里自动积分充值,
客服QQ:454037456
客服微信号:oachn123
北京客服微信号:
186 1000 1535
开通VIP会员,免费赠送
办公设备维修培训视频教程
(赠送全套60集培训课程)
[公告]下载前必看!
详细下载说明图解
请按照说明下载资料
查看: 3303|回复: 0

[原创] java如何驱动条形码打印机并能实现WEB打印?

[复制链接]

440

主题

55

回帖

3135

积分

高级工程师

Rank: 4

积分
3135
注册时间
2014-7-24
居住地
广东 广州市
发表于 2015-8-7 09:15:33 | 显示全部楼层 |阅读模式
办公中国打印机论坛VIP会员

马上注册,结交更多好友,享用更多功能。

您需要 登录 才可以查看,没有账号?立即注册

x

问题:

java如何驱动条形码打印机[/url]并能实现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; i<printers.length; i++ ) System.out.println( printers.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);

//print
job.print(doc, null);
}
catch(Exception e)
{
e.printStackTrace();
}
}
//Main method
public static void main(String[] args)
{
test("12345");
}
}



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|开通vip会员|关于我们|手机版|Archiver|打印机维修论坛 (京ICP备05009053号;北京市公安局备案:京公网安备110108002830号 )

GMT+8, 2024-5-16 15:04

Powered by Discuz!

办公中国打印机论坛
快速回复 返回顶部 返回列表