JAVA实现连接本地打印机并打印文件的实现代码
实现代码一
importjavax.print.*;
importjavax.print.attribute.DocAttributeSet;
importjavax.print.attribute.HashDocAttributeSet;
importjavax.print.attribute.HashPrintRequestAttributeSet;
importjavax.print.attribute.PrintRequestAttributeSet;
importjava.io.File;
importjava.io.FileInputStream;
publicclassPrintDemo1{
publicvoidprintPdf(StringfileName){
//构造一个文件选择器,默认为当前目录
Filefile=newFile(fileName);//获取选择的文件
//构建打印请求属性集
PrintRequestAttributeSetpras=newHashPrintRequestAttributeSet();
//设置打印格式,因为未确定文件类型,这里选择AUTOSENSE
DocFlavorflavor=DocFlavor.INPUT_STREAM.AUTOSENSE;
//查找所有的可用打印服务
PrintServiceprintService[]=PrintServiceLookup.lookupPrintServices(flavor,pras);
//定位默认的打印服务
//PrintServicedefaultService=PrintServiceLookup.lookupDefaultPrintService();
//显示打印对话框
PrintServiceservice=ServiceUI.printDialog(null,200,200,printService,defaultService,flavor,pras);
if(service!=null){
try{
DocPrintJobjob=service.createPrintJob();//创建打印作业
FileInputStreamfis;//构造待打印的文件流
fis=newFileInputStream(file);
DocAttributeSetdas=newHashDocAttributeSet();
Docdoc=newSimpleDoc(fis,flavor,das);
job.print(doc,pras);
}catch(Exceptione){
e.printStackTrace();
}
}
}
publicstaticvoidmain(Stringargs[]){
PrintDemo1pic=newPrintDemo1();
pic.printPdf("F:\\java资源2\\Docker视频教程\\赠送3-从Docker到Kubernetes之技术实战\\01.为什么你需要学习Docker\\01.pdf");
}
}
代码二
packagecom.iba.cxx.adm.controller;
importjavax.print.*;
importjavax.print.attribute.DocAttributeSet;
importjavax.print.attribute.HashDocAttributeSet;
importjavax.print.attribute.HashPrintRequestAttributeSet;
importjavax.swing.*;
importjava.io.File;
importjava.io.FileInputStream;
/**
*CreatedbyAdministratoron2017/9/80008.
*/
publicclassTestController{
publicstaticvoidmain(String[]args){
JFileChooserfileChooser=newJFileChooser();//创建打印作业
intstate=fileChooser.showOpenDialog(null);
if(state==fileChooser.APPROVE_OPTION){
//Filefile=newFile("D:/haha.txt");//获取选择的文件
Filefile=fileChooser.getSelectedFile();//获取选择的文件
//构建打印请求属性集
HashPrintRequestAttributeSetpras=newHashPrintRequestAttributeSet();
//设置打印格式,因为未确定类型,所以选择autosense
DocFlavorflavor=DocFlavor.INPUT_STREAM.AUTOSENSE;
//查找所有的可用的打印服务
PrintServiceprintService[]=PrintServiceLookup.lookupPrintServices(flavor,pras);
//定位默认的打印服务
PrintServicedefaultService=PrintServiceLookup.lookupDefaultPrintService();
//显示打印对话框
PrintServiceservice=ServiceUI.printDialog(null,200,200,printService,
defaultService,flavor,pras);
if(service!=null){
try{
DocPrintJobjob=service.createPrintJob();//创建打印作业
FileInputStreamfis=newFileInputStream(file);//构造待打印的文件流
DocAttributeSetdas=newHashDocAttributeSet();
Docdoc=newSimpleDoc(fis,flavor,das);
job.print(doc,pras);
}catch(Exceptione){
e.printStackTrace();
}
}
}
}
}
好了这篇文章就介绍这么多,需要的朋友可以参考一下。