调用打印机Demo
2024-07-12 03:13:09 219人阅读
接口 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();
- }
- }
- }
- }
- }
|
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉:
投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。