//获得默认打印服务
PrintService service = PrintServiceLookup.lookupDefaultPrintService();
if(service == null){
System.out.println("No Print Service");
return;
}
DocPrintJob job = service.createPrintJob();
addPrintJobListener(job); //增加监听打印机状态
StringBuffer buffer = new StringBuffer();
byte[] printData = buffer.toString().getBytes();
System.out.println(buffer.toString());
DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
Doc doc = new SimpleDoc(printData, flavor, null);
PrintRequestAttributeSet attrs = new HashPrintRequestAttributeSet();
attrs.add(new Copies(copies));
try{
job.print(doc, attrs);
}catch(Exception ex){
ex.printStackTrace();
} public void addPrintJobListener(DocPrintJob job) {
job.addPrintJobListener(new PrintJobAdapter() {
public void printDataTransferCompleted(PrintJobEvent pje) {
System.out.println("数据已成功传输打印机");
} public void printJobCompleted(PrintJobEvent pje) {
System.out.println("通知客户端,作业成功完成");
} public void printJobFailed(PrintJobEvent pje) {
System.out.println("通知客户端无法完成作业,必须重新提交");
} public void printJobCanceled(PrintJobEvent pje) {
System.out.println("作业已被用户或者程序取消");
} public void printJobNoMoreEvents(PrintJobEvent pje) {
System.out.println("通知客户端,不需要再提供事件");
} public void printJobRequiresAttention(PrintJobEvent pje) {
System.out.println("通知客户端,缺纸...");
}
});
以上程式是打印片断,执行时打印任务监听事件只执行了printDataTransferCompleted(..)
与printJobNoMoreEvents(..).待任务打印完成后,并没有执行printJobCompleted(..),
是我的写法有问题,还是?请各位帮忙,谢谢
PrintService service = PrintServiceLookup.lookupDefaultPrintService();
if(service == null){
System.out.println("No Print Service");
return;
}
DocPrintJob job = service.createPrintJob();
addPrintJobListener(job); //增加监听打印机状态
StringBuffer buffer = new StringBuffer();
byte[] printData = buffer.toString().getBytes();
System.out.println(buffer.toString());
DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
Doc doc = new SimpleDoc(printData, flavor, null);
PrintRequestAttributeSet attrs = new HashPrintRequestAttributeSet();
attrs.add(new Copies(copies));
try{
job.print(doc, attrs);
}catch(Exception ex){
ex.printStackTrace();
} public void addPrintJobListener(DocPrintJob job) {
job.addPrintJobListener(new PrintJobAdapter() {
public void printDataTransferCompleted(PrintJobEvent pje) {
System.out.println("数据已成功传输打印机");
} public void printJobCompleted(PrintJobEvent pje) {
System.out.println("通知客户端,作业成功完成");
} public void printJobFailed(PrintJobEvent pje) {
System.out.println("通知客户端无法完成作业,必须重新提交");
} public void printJobCanceled(PrintJobEvent pje) {
System.out.println("作业已被用户或者程序取消");
} public void printJobNoMoreEvents(PrintJobEvent pje) {
System.out.println("通知客户端,不需要再提供事件");
} public void printJobRequiresAttention(PrintJobEvent pje) {
System.out.println("通知客户端,缺纸...");
}
});
以上程式是打印片断,执行时打印任务监听事件只执行了printDataTransferCompleted(..)
与printJobNoMoreEvents(..).待任务打印完成后,并没有执行printJobCompleted(..),
是我的写法有问题,还是?请各位帮忙,谢谢
楼主【mgj216】截止到2008-08-01 11:00:55的历史汇总数据(不包括此帖):
发帖的总数量:0 发帖的总分数:0 每贴平均分数:0
回帖的总数量:0 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:0 结贴的总分数:0
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:---------------------结分的百分比:---------------------
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=mgj216
PrintJobAdapter API我之前有看过,
但我在实作几个PrintJobAdapter()几个method后,
执行时打印任务监听事件只执行了printDataTransferCompleted(..) -->数据传送到打印服务
与printJobNoMoreEvents(..).待任务打印完成后,没有去执行printJobCompleted(..)是不是因为任务已经丢给打印机,程式也结束了,打印机没有办法反馈给client端.
所以,我就加入了Thread.wait()来进行等待,看打印机完成任务后,是否去执行printJobCompleted(..)
好像还是不行.
麻烦palm_civet再看一下,非常感谢!!
that it has really printed (to media) the entire job.Someone might implement a service which does that but JRE doesn't
track the job after its sent to the system spooler, so can't report that.If "No more events" is received without receiving any error condition
that's as good as it gets in this implementation.原文网址:
http://www.mail-archive.com/[email protected]/msg02709.html
http://www.mail-archive.com/[email protected]/msg02710.html
track the job after its sent to the system spooler, so can't report that.
If "No more events" is received without receiving any error condition
that's as good as it gets in this implementation.
很遺憾,我已測試No more events 執行,不能說明已列印任務
還是非常感謝palm_civet的關注.