每次打印java都弹出对话框,弹出对话框,选择文件,然后Java调用打印机?打印文件...

package hyi.pos;

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;

public class PrintServiceTest4 {

public static  void main(String[] args){

//1.新建打印任务

JFileChooser jFileChooser=new JFileChooser();

//2.选择文件的对话框

int state=jFileChooser.showOpenDialog(null);

//3.判断对话状态,用户选择了文件

if (state==jFileChooser.APPROVE_OPTION){

//4.获取选择的将要打印的文件对象

File file=jFileChooser.getSelectedFile();

//5.设置打印机指令集

HashPrintRequestAttributeSet pras=new HashPrintRequestAttributeSet();

//6.设置文件打印格式

DocFlavor docFlavor=DocFlavor.INPUT_STREAM.AUTOSENSE;

//7.查找本机所有打印服务(参数=打印格式,打印机属性指令集)

PrintService[] printServices=PrintServiceLookup.lookupPrintServices(docFlavor,pras);

//8.查找默认打印服务

PrintService printService=PrintServiceLookup.lookupDefaultPrintService();

//将要调用打印机的弹出框

PrintService uiPrintService=ServiceUI.printDialog(null,200,200,printServices,printService,docFlavor,pras);

if (uiPrintService!=null){

try {

//1.建立打印作业

DocPrintJob docPrintJob = uiPrintService.createPrintJob();

//2.流关联[将要打印的文件对象]

FileInputStream fileInputStream = new FileInputStream(file);

//3.文件打印指令集

DocAttributeSet docAttributeSet=new HashDocAttributeSet();

//文件对象                流            文本格式      文本指令

Doc doc=new SimpleDoc(fileInputStream,docFlavor,docAttributeSet);

//开始打印

docPrintJob.print(doc,pras);

}catch (Exception e){

e.printStackTrace();

} }

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值