`
tfnew21
  • 浏览: 131238 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

确定何时打印作业已完成

阅读更多

importjava.io.BufferedInputStream;
importjava.io.BufferedOutputStream;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.InputStream;
importjava.io.OutputStream;

importjavax.print.Doc;
importjavax.print.DocFlavor;
importjavax.print.DocPrintJob;
importjavax.print.SimpleDoc;
importjavax.print.StreamPrintService;
importjavax.print.StreamPrintServiceFactory;
importjavax.print.event.PrintJobAdapter;
importjavax.print.event.PrintJobEvent;

publicclassMain{
publicstaticvoidmain(String[]argv)throwsException{

OutputStreamfos=newBufferedOutputStream(newFileOutputStream("filename.ps"));

DocFlavorflavor=DocFlavor.INPUT_STREAM.GIF;
InputStreamis=newBufferedInputStream(newFileInputStream("filename.gif"));
StreamPrintServiceFactory[]factories=StreamPrintServiceFactory
.lookupStreamPrintServiceFactories(flavor,DocFlavor.BYTE_ARRAY.POSTSCRIPT.getMimeType());

StreamPrintServiceservice=factories[0].getPrintService(fos);
DocPrintJobjob=service.createPrintJob();
Docdoc=newSimpleDoc(is,flavor,null);

PrintJobWatcherpjDone=newPrintJobWatcher(job);

job.print(doc,null);

pjDone.waitForDone();

is.close();
}
}

classPrintJobWatcher{
booleandone=false;

PrintJobWatcher(DocPrintJobjob){
job.addPrintJobListener(newPrintJobAdapter(){
publicvoidprintJobCanceled(PrintJobEventpje){
synchronized(PrintJobWatcher.this){
done=true;
PrintJobWatcher.this.notify();
}
}

publicvoidprintJobCompleted(PrintJobEventpje){
synchronized(PrintJobWatcher.this){
done=true;
PrintJobWatcher.this.notify();
}
}

publicvoidprintJobFailed(PrintJobEventpje){
synchronized(PrintJobWatcher.this){
done=true;
PrintJobWatcher.this.notify();
}
}

publicvoidprintJobNoMoreEvents(PrintJobEventpje){
synchronized(PrintJobWatcher.this){
done=true;
PrintJobWatcher.this.notify();
}
}
});
}

publicsynchronizedvoidwaitForDone(){
try{
while(!done){
wait();
}
}catch(InterruptedExceptione){
}
}
}

分享到:
评论

相关推荐

    c语言数据结构期末大作业-家族族谱管理

    c语言数据结构期末大作业-家族族谱管理 要求设计实现具有下列功能的家谱管理系统: (1)输入文件以存放最初家谱中各成员的信息,成员的信息中均应包含以下内容: 姓名、出生日期、婚否、地址、健在否、死亡日期...

    奥鹏地大《计算机会计理论与实务》在线作业二标准答案.docx

    【选项】: A 直接安装在打印机上 B 将打印线从主机的打印口拔下,然后插入加密盒,再将打印线接在加密盒上 C 将显示器从主机的显示适配器上拔下,然后插入加密盒,再将显示器接在加密盒上 D 将打印线从打印机口拔...

    计算机操作系统作业二.doc

    优先级就是进程调度的重要依据,一旦确定就不能改变 C.在单CPU的系统中,任何时刻都有一个进程处于运行状态 D.进程申请CPU得不到满足时,其状态变为阻塞 12.操作系统通过__B____对进程进行管理。 A. 进程 B. 进程控制块...

    powerbuilder

    需要注意的是,使用PrintOpen()函数打开打印作业、使用同组的其它函数完成打印任务后,必须使用PrintClose()关闭打印作业,或根据需要使用PrintCancel()函数取消打印作业。 ------------------------------------...

    BitWare 用modem发传真打电话的软件

    从该记录中,您可以完成以下功能查看选择的传真、重新发送选择的传真、删除选择的记录进入记录及传真文档、打印一份或多份选择传真文档、打印日志内容、选择日志显示的区域及顺序、将选择区域以渐升或渐降方式分类...

    宏昌决策管理系统

    本系统以实现当前明确的管理目标作为确定系统边界和精细程度的首要依据, 适当兼顾面向未来的统一规划要求。 本系统构建的信息流仅是实际业务流所包含的信息的一个有限反映,以昌宏化工经过加工处理后的数据作为...

    仓库管理系统课程设计报告.doc

    如今的仓库作业 和库存控制作业已十分复杂化多样化,仅靠人工记忆和手工录入,不但费时费力,而且 容易出错,给企业带来巨大损失。使用仓库管理系统 , 对仓库各环节实施全过程控制管理,并可对货物进行货位、批次、...

    《计算机操作系统》期末复习指导

    作业平均周转时间=∑(作业完成时刻i-作业提交时刻i)/n个作业 (2)最短作业优先:在作业内容参差很不均衡时有合理性 (3)“响应比”最高的优先 “响应(系数)比”:作业响应时间(等待和运行)/...

    NetSupport School 课堂管理软件(简体中文版)

    能够查看教师发送的作业,对文件进行排序,实时标记已完成的作业,并告诉教师可以收缴作业。 用户界面 11 版的界面进行了全面的重新设计。虽然保留了相同的布局以便用户熟悉,但所有环节的导航和功能访问都进行了...

    API之网络函数---整理网络函数及功能

    PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框 PrinterProperties 启动打印机属性对话框,以便对打印机进行配置 ReadPrinter 从打印机读入数据 ResetDC 重设一个设备场景 ResetPrinter...

    多媒体教室

    添加后用Route Print命令应能够打印出正确的路由信息了。 3. 在网关机器上运行多媒体网络教室安装程序,选择安装路由器软件,完成安装。 4. 在网络属性协议中添加协议,选择从软盘安装,将路径指定为多媒体网络教室...

    javascript入门笔记

    "你已成年" : "你未成年"; 练习: 从弹框中录入一个数字表示考试成绩(score) 如果 成绩为 100 分 ,提示 :满分 如果 成绩 >= 90 分 ,提示 :优 如果 成绩 >= 80 分 ,提示 :良 如果 成绩 >= 60 分 ,提示 ...

    电大2013年秋)计算机应用基础形成性考核册题目及答案

    1、 在Word中编辑文本时,编辑区显示的“水线”在打印时(A)出现在纸上。 A、还会 B、全部 C、一部分 D、大部份 2、Word文档以文件形式存放于磁盘中,其默认的文件扩展名为(C)。 A、txt B、exe C、...

    windows蓝屏错误代码

    14 0×0000000E 储存体空间不够,无法完成这项作业。 15 0×0000000F 系统找不到指定的磁盘驱动器。 16 0×00000010 无法移除目录。 16 0×00000010 无法移除目录。 17 0×00000011 系统无法将档案移到 其它的磁盘...

    下面是一系列蓝屏中可能出现的代码

    0 0x00000000 作业完成。 1 0x00000001 不正确的函数。 2 0x00000002 系统找不到指定的档案。 3 0x00000003 系统找不到指定的路径。 4 0x00000004 系统无法开启档案。 5 0x00000005 拒绝存取。 6 0x00000006 ...

    【05-面向对象(下)】

    •打印对象和toString方法:toString方法是系统将会输出该对象的“自我描述”信息,用以告诉外界对象具有的状 态信息。 •Object 类提供的toString方法总是返回该对象实现类的类名 + @ +hashCode值。 •==...

    VF企业工资管理系统(系统+课程设计)

    企业工资管理系统的主要任务是用计算机对各种工资信息进行日常的管理,如查询、修改、增加、删除以及存储等,迅速准确地完成各种工资信息的统计计算和汇总工作,快速打印出工资报表,针对系统服务对象的具体要求,...

    Windows 系统错误代码简单分析

     0000 操作已成功完成。  0001 错误的函数。  0002 系统找不到指定的文件。  0003 系统找不到指定的路径。  0004 系统无法打开文件。  0005 拒绝访问。  0006 句柄无效。  0007 存储区控制块...

    1文件控制程序(3).doc

    " " " "3、为法律和/或积累知识的目的,所保留的" " " "任何已作废的文件,需盖"作废保存"印象," " " "并妥善保管。 " "归口部门 " NC "4、原审批部门审批,若指定其它部门审批时" " " ",该部门应获得审批所需依据...

    入门学习Linux常用必会60个命令实例详解doc/txt

    (2)确定设备的名称 在Linux 中,设备名称通常都存在/dev里。这些设备名称的命名都是有规则的,可以用“推理”的方式把设备名称找出来。例如,/dev/hda1这个 IDE设备,hd是Hard Disk(硬盘)的,sd是SCSI Device,fd...

Global site tag (gtag.js) - Google Analytics