依赖 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); } }
原文地址:https://www.cnblogs.com/Java-Starter/p/9283575.html
时间: 2024-10-09 01:18:29