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

网友投稿 575 2022-12-24


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

}

}

}

}

}

好了这篇文章就介绍这么多,需要的朋友可以参考一下。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java中Set&List的迭代器实现步骤解析
下一篇:基于XML配置Spring的自动装配过程解析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~