依赖 javax.print

package com.xgt.util;
import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import java.io.FileInputStream;
import java.io.IOException; import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintException;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.print.attribute.DocAttributeSet;
import javax.print.attribute.HashDocAttributeSet;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.Copies;
import javax.print.attribute.standard.MediaPrintableArea;
import javax.print.attribute.standard.OrientationRequested;
import javax.print.attribute.standard.PrintQuality; public class PrintUtil {
private static final Logger logger = LoggerFactory.getLogger(PrintUtil.class);
public static void drawImage(String fileName, int count) {
FileInputStream fin = null;
try {
DocFlavor dof = null;
if (fileName.endsWith(".gif")) {
dof = DocFlavor.INPUT_STREAM.GIF;
} else if (fileName.endsWith(".jpg")) {
dof = DocFlavor.INPUT_STREAM.JPEG;
} else if (fileName.endsWith(".png")) {
dof = DocFlavor.INPUT_STREAM.PNG;
} PrintService ps = PrintServiceLookup.lookupDefaultPrintService(); PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
pras.add(OrientationRequested.PORTRAIT); pras.add(new Copies(count));
pras.add(PrintQuality.HIGH);
DocAttributeSet das = new HashDocAttributeSet(); // 设置打印纸张的大小(以毫米为单位)
das.add(new MediaPrintableArea(0, 0, 210, 296, MediaPrintableArea.MM));
fin = new FileInputStream(fileName); Doc doc = new SimpleDoc(fin, dof, das); DocPrintJob job = ps.createPrintJob(); job.print(doc, pras);
fin.close();
logger.info("打印成功!文件:"+fileName+"数量为:"+count);
} catch (IOException ie) {
ie.printStackTrace();
} catch (PrintException pe) {
pe.printStackTrace();
}finally {
IOUtils.closeQuietly(fin);
}
} public static void main(String[] args) {
new PrintUtil().drawImage("D:\\QRCodePng\\合成图.png", 1);
} }

最新文章

  1. HTTP协议(转)
  2. 【转】移动web页面支持弹性滚动的3个方案
  3. java pdf转换jpg
  4. 找工作笔试面试那些事儿(10)---SQL语句总结
  5. web前端 ajax请求上传图片数据类型处理
  6. 用JDOM和DOM4J解析节点名节点值
  7. CF817F MEX Queries
  8. jvm调优-从eclipse开始
  9. vue入手
  10. BASH 正则表达式和文本处理工具
  11. 天使投资、A轮、B轮、C轮
  12. 快速排序 JavaScript 实现
  13. 开发指南专题十四:JEECG微云高速开发平台MiniDao 介绍
  14. [ZZ]c++ cout 格式化输出浮点数、整数及格式化方法
  15. 高可用Kubernetes集群-16. ansible快速部署
  16. 0422数学口袋精灵bug发现
  17. ASM配置OGG
  18. Maven-7:Maven配置编译的字符集方法
  19. 利用CMake和OpenCV源代码生成Visual Studio工程
  20. Tensorflow源码编译,解决tf提示未使用SSE4.1 SSE4.2 AVX警告【转】

热门文章

  1. 使用javascript随机生成斗地主玩家手牌
  2. 微软 eshop 数据存储之sqlserver
  3. ajax使用向Spring MVC发送JSON数据出现 org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported错误
  4. Xamarin Android Webview中JS调用App中的C#方法
  5. [agc016b]Colorful Hats 分类讨论
  6. Heap堆
  7. Oracle 中wmsys.wm_concat拼接字符串,结果过长报错解决
  8. python 绘制抛物线
  9. 2019.2.15 t2
  10. 【UVA10816】Travel in Desert (最小瓶颈路+最短路)