-
JAVA 连接打印机 打印作业属性设置无效果问题 5
各位好:
我现在在做一个用JAVA 发送打印文件 到打印机上的项目但是我现在遇到一些问题,希望大家给点思路,谢谢。
《疑问一》
FileInputStream psStream;
try {
psStream = new FileInputStream("file.ps");
} catch (FileNotFoundException ffne) {
}
if (psStream == null) {
return;
}
DocFlavor psInFormat = DocFlavor.INPUT_STREAM.POSTSCRIPT;
Doc myDoc = new SimpleDoc(psStream, psInFormat, null);
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(new Copies(5));
aset.add(Sides.DUPLEX);
PrintService[] services = PrintServiceLookup.lookupPrintServices(psInFormat, aset);
if (services.length > 0) {
DocPrintJob job = services[0].createPrintJob();
try {
job.print(myDoc, aset);
} catch (PrintException pe) {}
}
首先我 电脑上 装了 4 到 5 个 不同厂商 的打印机驱动
上面的这段代码我是从JDK 1.7 API 上拷贝下来的, 我 运行时 发现 返回的 services 为空,即没有找到适合条件的 打印服务,
但是我装的这几个打印机 的驱动是支持 多份 ,双面打印的啊 ?
如果我把
aset.add(new Copies(5));
aset.add(Sides.DUPLEX);
这两行代码删掉, 那么就可以找到 我装的那4,5 个打印服务了。
这是疑问一
《疑问二》
File file=new File("D:\\1.pdf");
PrintRequestAttributeSet pras1 = new HashPrintRequestAttributeSet();
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
InputStream in= new FileInputStream(file);//这里的file是已经生成的PDF
PrintService printService1[]= PrintServiceLookup.lookupPrintServices(flavor, pras1);
PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService(); //默认的PrintService
PrintService service = ServiceUI.printDialog(null, 200, 200,printService1, defaultService, flavor, pras1);
DocPrintJob pj=service.createPrintJob();
DocAttributeSet das = new HashDocAttributeSet();
pras1.add(new Copies(2));
pras1.add(PrintQuality.HIGH);
pras1.add(Sides.DUPLEX);
pras1.add(new JobName("E2",null));
das.add(PrintQuality.HIGH);
das.add(Sides.DUPLEX);
Doc doc1=new SimpleDoc(in,flavor,das);
pj.print(doc1, pras1);
上面这段代码是我自己写的, 首先 PDF文件可以发到打印机 打印出来,但是, 诸如 我设置的
pras1.add(new Copies(2));
pras1.add(PrintQuality.HIGH);
pras1.add(Sides.DUPLEX);
pras1.add(new JobName("E2",null));
或
das.add(PrintQuality.HIGH);
das.add(Sides.DUPLEX);
文件始终 打印出来的 都是 1 份 , 单面打印, 这个是疑问 2 , 我猜想,是不是 JAVA 设置的这些打印 属性在 调用打印机驱动的时候, 没有能够将这些属性传递给打印机?还有 JAVA 的这些属性设置 是不是在不同厂商 开发的打印机打印机驱动 不一定有效果?
小弟现在正在疑惑中,希望有经验的朋友可以指点一下,谢谢。
2012年1月06日 14:14
目前还没有答案
相关推荐
通过POS命令/TSCLIB/JAVA类库三种方式实现打印小票,提供完整示例,可选方式较多
java 如何调用系统打印机打印文件,也是从别人借鉴过来,免费的
可以java直接调用 热敏打印机无驱动 打印票据socket工具类 此demo为 芯烨/xprinter 可以参考变成手册, 完成任何自己想要的小票格式
Java调用小票打印机打印购物清单
斑马打印机开发使用的sdk,支持文字、图片、条形码、二维码等打印,支持本地、usb或tcp连接方式,调用 ZebraPrinterFactory
java通过jacob实现包,实现与打印机通信打印excel文档,实例简单易用
将打印指令放到txt文档中,读取文档中的指令,发送到斑马打印机中,实现打印。此代码已经非常精简,项目需要用到ts24.lib,资源中也付带这个文件,并且附带一个C.txt文档的指令作为实验用。C.txt和ts24.lib请放在代码...
实际上,SUN公司也一直致力于Java打印功能的完善,而Java2平台则终于有了一个健壮的打印模式的开端,该打印模式与Java2D图形包充分结合成一体。更令人鼓舞的是,新发布的jdk1.4则提供了一套完整的"Java 打印服务 API...
JAVA连接打印机实现打印输出的功能,代码简洁有效,能够独立运行,可以作为工具类实现调用,用起来非常方便有效。
打印图片程序,里面有详细的语句注释;在pic.printjpg("filename.gif", "1");输入文件名"filename.gif" 和打印份数"1";
最近公司项目需要android手机连接蓝牙打印机打印app页面中的数据,大家有需要的话可以看一下这个demo
Java上位机连接打印机打印指定内容
java调用并口打印机 usb并口打印 无驱打印 本地打印
只需知道IP即可连接打印机控制打印
Java实现斑马打印机ZPL指令打印,源码,可运行。Java调用Zebra打印机,采用ZPL指令。支持打印中文,不需要ts24.lib文件,支持打印二维码。
java通过串口(LPT1)连接小票打印机 ,打印商品摘要信息及条形码
需要一个用户下单后自动打印订单金额发票和快递单号的功能。 具体作用是:java通过网络,调用网络打印机,打印自定义内容,比如快递单号、发票等等,文档中附带了部分快递公司的快递单模版。
php,java连接打印机插件
使用java实现调用打印机动态指令打印条码。
公司需要一个用户下单后自动打印订单金额发票和快递单号的功能,所以特地写的工具类。...具体作用是:java通过网络,调用网络打印机,打印自定义内容,比如快递单号、发票等等,文档中附带了部分快递公司的快递单模版。