700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java调用本地打印机实现打印PDF文件 – java – 前端

java调用本地打印机实现打印PDF文件 – java – 前端

时间:2022-09-18 07:31:27

相关推荐

java调用本地打印机实现打印PDF文件 – java – 前端

java中调用本地系统上关联的打印机打印本地文件:

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;

public class TestPrinter1 {

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();

}

}

}

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。