• Java 打印图片


    import javax.imageio.ImageIO;
    import java.awt.*;
    import java.awt.image.BufferedImage;
    import java.awt.print.PageFormat;
    import java.awt.print.Printable;
    import java.awt.print.PrinterException;
    import java.awt.print.PrinterJob;
    import java.io.File;
    import java.io.IOException;

    /**
     * @description: 打印图片
     * @author: immortal
     * @modified By:
     * @create: 2023-09-10 17:51
     **/

    public class PrintImg {

        public static void main(String[] args) {
            /* Load the image */
            BufferedImage img = null;
            try {
                img = ImageIO.read(new File("C:\\myImg\\my.png")); // replace with actual image file path
            } catch (IOException e) {
                e.printStackTrace();
            }

            /* Create a print job */
            PrinterJob printJob = PrinterJob.getPrinterJob();
            BufferedImage finalImg = img;
            printJob.setPrintable(new Printable() {
                public int print(Graphics g, PageFormat pf, int pageIndex) {
                    /* We have only one page, and 'page' is zero-based */
                    if (pageIndex != 0) {
                        return NO_SUCH_PAGE;
                    }

                    /* User (0,0) is typically outside the imageable area, so we must
                     * translate by the X and Y values in the PageFormat to avoid clipping
                     */
                    Graphics2D g2d = (Graphics2D) g;
                    g2d.translate(pf.getImageableX(), pf.getImageableY());

                    /* Now we perform our rendering */
                    g.drawImage(finalImg, 0, 0, finalImg.getWidth(), finalImg.getHeight(), null);

                    /* tell the caller that this page is part of the printed document */
                    return PAGE_EXISTS;
                }
            });
            /* Now we can print */
            try {
                printJob.print();
            } catch (PrinterException e) {
                e.printStackTrace();
            }
        }
    }
     

  • 相关阅读:
    SpringBoot入门案例
    函数防抖与节流
    Linux安装mysql5.7
    浏览器自动化利器Selenium IDE使用指南
    Linux内核之I2C协议
    JCR一区级 | Matlab实现TCN-BiGRU-MATT时间卷积双向门控循环单元多特征分类预测
    Spring 事务处理流程源码浅析(一)
    开放原子开源基金会秘书长孙文龙:要打造以开发者为本的开源服务平台
    第二章操作系统测试
    56.5K star的gpt4free开源项目到底真的假的?
  • 原文地址:https://blog.csdn.net/qq_30346433/article/details/132794631