• Java调用打印机打印指定路径图片


    依赖 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);
        }
    
    }
  • 相关阅读:
    Java正则表达式的总结
    Mysql数据库操作语句总结
    Java 如何抛出异常、自定义异常
    Java获取系统时间的四种方法
    Mysql与Oracle区别
    Oracle与MySQL的SQL语句区别
    sql语句的各种模糊查询
    基于SpringCloud的Microservices架构实战案例
    一个人走的快,一群人才走的远
    那些会阻碍程序员成长的细节[2]
  • 原文地址:https://www.cnblogs.com/Java-Starter/p/9283575.html
Copyright © 2020-2023  润新知