zoukankan      html  css  js  c++  java
  • 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);
        }
    
    }
  • 相关阅读:
    CCNA 第二章 以太网回顾
    CCNA 第一章 网络互联
    solidworks中 toolbox调用出现未配置的解决方法
    linux之df命令
    linux之du命令
    linux之pid文件
    linux之mysql启动问题
    linux之使用cron,logrotate管理日志文件
    wordpress(一)wordpress环境的搭建
    phpwind8.7升级9.0.1过程(四)20130207升级到20141228
  • 原文地址:https://www.cnblogs.com/Java-Starter/p/9283575.html
Copyright © 2011-2022 走看看