- 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();
- }
- }
- }
- }
- }
java实现调用打印机代码详解
最新推荐文章于 2024-09-06 22:38:09 发布