JAVA打印二维码图片自定义高度

来源:互联网 发布:ssd优化设置 编辑:程序博客网 时间:2024/05/02 22:56
package com.eluotuo.utils;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.print.Book;import java.awt.print.PageFormat;import java.awt.print.Paper;import java.awt.print.Printable;import java.awt.print.PrinterException;import java.awt.print.PrinterJob;import javax.print.PrintServiceLookup;import javax.swing.ImageIcon;/** * 打印类 * @author  wanglei * @version  [版本号, 2016年3月29日] * @see  [相关类/方法] * @since  [产品/模块版本] */public class EPrint implements Printable{        public static void main(String[] args)        throws Exception    {        new EPrint("C:/Users/wanglei/Documents/XY/3.jpg").ePrint();        // PrintLabel(new FileInputStream(new File("C:/Users/wanglei/Documents/XY/3.jpg")));    }        /**      * 打印方法---已经写死了宽度和高度     */    public void ePrint()    {        Book book = new Book();        PageFormat pageFormat = new PageFormat();          pageFormat.setOrientation(PageFormat.PORTRAIT); // LANDSCAPE表示竖打;PORTRAIT表示横打;REVERSE_LANDSCAPE表示打印空白          Paper paper = pageFormat.getPaper();         //设置宽度和高度   PageFormat指明打印页格式(页面大小以点为计量单位,1点为1英寸的1/72,1英寸为25.4毫米 如果是设置厘米的自己换算一下        paper.setSize(170, 111.8);         paper.setImageableArea(0, 0, 170, 111.8);        pageFormat.setPaper(paper);         PrinterJob printerJob = PrinterJob.getPrinterJob();          book.append(this, pageFormat,1);        printerJob.setPageable(book);        try        {            printerJob.setPrintService(PrintServiceLookup.lookupDefaultPrintService());            printerJob.print();        }        catch (PrinterException e)        {            e.printStackTrace();        }    }        /**     * 需要打印的图片路径     */    private String imgSRC;        public EPrint(String imgSrc)    {        this.imgSRC = imgSrc;    }            @Override    public int print(Graphics graphics, PageFormat pageFormat, int pageIndex)        throws PrinterException    {        if (pageIndex > 0)        {            return NO_SUCH_PAGE;        }        Graphics2D g2d = (Graphics2D)graphics;        pageFormat.setOrientation(PageFormat.PORTRAIT);        g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());        ImageIcon image = new ImageIcon(imgSRC);        double pageW = pageFormat.getImageableWidth();        double pageH = pageFormat.getImageableHeight();        double imageW = image.getIconWidth();        double imageH = image.getIconHeight();        double scaleX = pageW / imageW;        double scaleY = pageH / imageH;        double scaleFactor = Math.min(scaleX, scaleY);        g2d.scale(scaleFactor, scaleFactor);        g2d.drawImage(image.getImage(), 0, 0, null);        return Printable.PAGE_EXISTS;    }}

0 0
原创粉丝点击