论坛首页 Web前端技术论坛

java实现调用打印机代码详解

浏览 46344 次
精华帖 (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();
				}
			}
		}
	}
}


  • 大小: 16.4 KB
  • 大小: 12.9 KB
  • 大小: 8.7 KB
  • 大小: 19.5 KB
   发表时间:2012-03-08  
为什么我拿你的代码跑了一下没有任何反应?
0 请登录后投票
   发表时间:2012-03-08  
哦,有反应,有个窗口跳出来,不错。顶你个。
0 请登录后投票
   发表时间:2012-04-18  
我的没反应 啊,只是在右下角出现了一下 打印机的那个图标,求解啊
0 请登录后投票
   发表时间:2012-08-30  
中文打印是乱码啊,怎么解决
0 请登录后投票
   发表时间:2012-08-31  
suhuanxi 写道
中文打印是乱码啊,怎么解决

看的另一个blog吧 http://fuchangle.iteye.com/blog/1558749
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics