关于JAVA的打印机设定

关于JAVA的打印机设定,第1张

1、需要一个打印服务对象。这可通过三种方式实现:

在jdk1.4之前的版本,必须要实现java.awt.print.Printable接口

或通过Toolkit.getDefaultToolkit().getPrintJob来获取打印服务对象;

在jdk1.4中则还可以通过javax.print.PrintSerivceLookup来查找定位一个打印服务对象。

2、需要开始一个打印工作。这也有几种实现方法:在jdk1.4之前可以通过java.awt.print.PrintJob

(jdk1.1提供的,现在已经很少用了)调用print或printAll方法开始打印工作;

也可以通过java.awt.print.PrinterJob的printDialog显示打印对话框,

然后通过print方法开始打印;在jdk1.4中则可以通过javax.print.ServiceUI的printDialog显示打印对话框,

然后调用print方法开始一个打印工作。

设置打印属性

使用如下方法可以获得PrintJob的实例用于控制打印 *** 作: Toolkit.getPrintJob(Frame f, String jobtitle, Properties prop) 那么对于打印属性的设置可以通过对prop的属性设置来实现,打印属性包括: awt.print.destination: 可以是"printer"或"file" awt.print.printer: 打印机名 awt.print.fileName: 打印文件名 awt.print.numCopies: 打印份数 awt.print.options: 打印命令的打印选项 awt.print.orientation: 打印方向,可以是"portrait"或"landscape" awt.print.paperSize: 纸张大小,可以是"letter","legal","executive"或"a4"

接口 PrintService 是 DocPrintJob 的工厂。PrintService 描述了打印机的功能,并可查询它来了解打印机支持的属性

1 package com.tj.print2  3 import java.io.File4 import java.io.FileInputStream5  6 import javax.print.Doc7 import javax.print.DocFlavor8 import javax.print.DocPrintJob9 import javax.print.PrintService10 import javax.print.PrintServiceLookup11 import javax.print.ServiceUI12 import javax.print.SimpleDoc13 import javax.print.attribute.DocAttributeSet14 import javax.print.attribute.HashDocAttributeSet15 import javax.print.attribute.HashPrintRequestAttributeSet16 import javax.swing.JFileChooser17 18 public class PrintDemo1 {19     public static void main(String[] args) {20         JFileChooser fileChooser = new JFileChooser()// 创建打印作业21         int state = fileChooser.showOpenDialog(null)22         if (state == fileChooser.APPROVE_OPTION) {23             File file = fileChooser.getSelectedFile()// 获取选择的文件24             // 构建打印请求属性集25             HashPrintRequestAttributeSet pras = new HashPrintRequestAttributeSet()26             // 设置打印格式,因为未确定类型,所以选择autosense27             DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE28             // 查找所有的可用的打印服务29             PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras)30             // 定位默认的打印服务31             PrintService defaultService = PrintServiceLookup32                     .lookupDefaultPrintService()33             // 显示打印对话框34             PrintService service = ServiceUI.printDialog(null, 200, 200,35                     printService, defaultService, flavor, pras)36             if (service != null) {37                 try {38                     DocPrintJob job = service.createPrintJob()// 创建打印作业39                     FileInputStream fis = new FileInputStream(file)// 构造待打印的文件流40                     DocAttributeSet das = new HashDocAttributeSet()41                     Doc doc = new SimpleDoc(fis, flavor, das)42                     job.print(doc, pras)43                 } catch (Exception e) {44                     e.printStackTrace()45                 }46             }47         }48     }49 }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/10884229.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存