• 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();
            }
        }
    }
     

  • 相关阅读:
    spring ioc
    what?测试/开发程序员要被淘汰了?年龄40被砍到了32?一瞬间,有点缓不过神来......
    vue3+ts封装弹窗,分页封装
    【Proteus仿真】Arduino UNO +74C922键盘解码驱动4X4矩阵键盘
    acme.sh获取证书
    改进YOLOv5小目标检测:构建多尺度骨干和特征增强模块,提升小目标检测
    JVM判断对象是否存活之引用计数法、可达性分析
    exists与not extists详细解释
    WebGL开发框架比较
    windows11 mars xlog解密环境配置
  • 原文地址:https://blog.csdn.net/qq_30346433/article/details/132794631