java 连接打印机 打印作业属性设置无效果问题 -凯发k8国际

0 0

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...

    打印图片程序,里面有详细的语句注释;在pic.printjpg("filename.gif", "1");输入文件名"filename.gif" 和打印份数"1";

    java上位机连接打印机打印指定内容

    java调用并口打印机 usb并口打印 无驱打印 本地打印

    只需知道ip即可连接打印机控制打印

    java实现斑马打印机zpl指令打印,源码,可运行。java调用zebra打印机,采用zpl指令。支持打印中文,不需要ts24.lib文件,支持打印二维码。

    java通过串口(lpt1)连接小票打印机 ,打印商品摘要信息及条形码

    java连接打印机实现打印输出的功能,代码简洁有效,能够独立运行,可以作为工具类实现调用,用起来非常方便有效。

    需要一个用户下单后自动打印订单金额发票和快递单号的功能。 具体作用是:java通过网络,调用网络打印机,打印自定义内容,比如快递单号、发票等等,文档中附带了部分快递公司的快递单模版。

    php,java连接打印机插件

    公司需要一个用户下单后自动打印订单金额发票和快递单号的功能,所以特地写的工具类。...具体作用是:java通过网络,调用网络打印机,打印自定义内容,比如快递单号、发票等等,文档中附带了部分快递公司的快递单模版。

    java6打印插件,如果不行就安装java8安装工具

    纯java代码实现跨平台打印word、pdf、图片等信息,无需系统嵌入第三方dll文件等,方便,可移植性好。

global site tag (gtag.js) - google analytics
网站地图