浏览 46344 次
锁定老帖子 主题:java实现调用打印机代码详解
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-03-03
接口 PrintService 是 DocPrintJob 的工厂。PrintService 描述了打印机的功能,并可查询它来了解打印机支持的属性。
import java.io.File; import java.io.FileInputStream; import javax.print.Doc; import javax.print.DocFlavor; import javax.print.DocPrintJob; import javax.print.PrintService; import javax.print.PrintServiceLookup; import javax.print.ServiceUI; import javax.print.SimpleDoc; import javax.print.attribute.DocAttributeSet; import javax.print.attribute.HashDocAttributeSet; import javax.print.attribute.HashPrintRequestAttributeSet; import javax.swing.JFileChooser; /** * 建立与打印机的连接 * @author Administrator * */ public class PrintDemo { public static void main(String[] args) { JFileChooser fileChooser = new JFileChooser(); //创建打印作业 int state = fileChooser.showOpenDialog(null); if(state == fileChooser.APPROVE_OPTION){ File file = new File("D:/zkyzl.txt"); //获取选择的文件 //构建打印请求属性集 HashPrintRequestAttributeSet pras = new HashPrintRequestAttributeSet(); //设置打印格式,因为未确定类型,所以选择autosense DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE; //查找所有的可用的打印服务 PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras); //定位默认的打印服务 PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService(); //显示打印对话框 PrintService service = ServiceUI.printDialog(null, 200, 200, printService, defaultService, flavor, pras); if(service != null){ try { DocPrintJob job = service.createPrintJob(); //创建打印作业 FileInputStream fis = new FileInputStream(file); //构造待打印的文件流 DocAttributeSet das = new HashDocAttributeSet(); Doc doc = new SimpleDoc(fis, flavor, das); job.print(doc, pras); } catch (Exception e) { e.printStackTrace(); } } } } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-03-08
为什么我拿你的代码跑了一下没有任何反应?
|
|
返回顶楼 | |
发表时间:2012-03-08
哦,有反应,有个窗口跳出来,不错。顶你个。
|
|
返回顶楼 | |
发表时间:2012-04-18
我的没反应 啊,只是在右下角出现了一下 打印机的那个图标,求解啊
|
|
返回顶楼 | |
发表时间:2012-08-30
中文打印是乱码啊,怎么解决
|
|
返回顶楼 | |
发表时间:2012-08-31
suhuanxi 写道 中文打印是乱码啊,怎么解决
看的另一个blog吧 http://fuchangle.iteye.com/blog/1558749 |
|
返回顶楼 | |