JAVA实现连接本地打印机并打印文件的实现代码
更新时间:2019年10月20日 22:22:28 作者:piaoyunlive
这篇文章主要介绍了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();
}
}
}
}
}
好了这篇文章就介绍这么多,需要的朋友可以参考一下。
相关文章
SpringCloud-Spring Boot Starter使用测试及问题小结
Spring Boot Starter 是在 SpringBoot 组件中被提出来的一种概念、简化了很多烦琐的配置、通过引入各种 Spring Boot Starter 包可以快速搭建出一个项目的脚手架,这篇文章主要介绍了SpringCloud-Spring Boot Starter使用测试,需要的朋友可以参考下2022-07-07
Java工程的Resources目录从基础到高级应用深入探索
这篇文章主要介绍了Java工程中的resources目录,从基础概念到高级应用,涵盖了如何创建、使用以及资源文件的加载方法,文中通过代码介绍的非常详细,需要的朋友可以参考下2025-01-01
Spring Boot项目中使用 TrueLicense 生成和验证License的详细步骤
这篇文章主要介绍了Spring Boot项目中使用 TrueLicense 生成和验证License,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-10-10


最新评论