java连接打印机_JAVA实现连接本地打印机并打印文件的实现代码

实现代码一

import javax.print.*;

import javax.print.attribute.DocAttributeSet;

import javax.print.attribute.HashDocAttributeSet;

import javax.print.attribute.HashPrintRequestAttributeSet;

import javax.print.attribute.PrintRequestAttributeSet;

import java.io.File;

import java.io.FileInputStream;

public class PrintDemo1 {

public void printPdf(String fileName) {

//构造一个文件选择器,默认为当前目录

File file = new File(fileName);//获取选择的文件

//构建打印请求属性集

PrintRequestAttributeSet 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; // 构造待打印的文件流

fis = new FileInputStream(file);

DocAttributeSet das = new HashDocAttributeSet();

Doc doc = new SimpleDoc(fis, flavor, das);

job.print(doc, pras);

} catch (Exception e) {

e.printStackTrace();

}

}

}

public static void main(String args[]) {

PrintDemo1 pic = new PrintDemo1();

pic.printPdf("F:\\java资源2\\Docker视频教程\\赠送3-从Docker到Kubernetes之技术实战\\01.为什么你需要学习Docker\\01.pdf");

}

}

代码二

package com.iba.cxx.adm.controller;

import javax.print.*;

import javax.print.attribute.DocAttributeSet;

import javax.print.attribute.HashDocAttributeSet;

import javax.print.attribute.HashPrintRequestAttributeSet;

import javax.swing.*;

import java.io.File;

import java.io.FileInputStream;

/**

* Created by Administrator on 2017/9/8 0008.

*/

public class TestController {

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:/haha.txt"); //获取选择的文件

File file = fileChooser.getSelectedFile();//获取选择的文件

//构建打印请求属性集

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连接打印机)