当前位置:首页 > Java

java 如何打印图片

2026-03-21 06:10:38Java

java 如何打印图片

使用 ImageIO 类打印图片

ImageIO 是 Java 标准库中用于图像处理的工具类,可以读取和写入图片。以下代码展示了如何加载图片并打印:

java 如何打印图片

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.print.*;
import java.io.File;
import java.io.IOException;

public class ImagePrinter implements Printable {
    private BufferedImage image;

    public ImagePrinter(String imagePath) throws IOException {
        this.image = ImageIO.read(new File(imagePath));
    }

    @Override
    public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) {
        if (pageIndex > 0) {
            return NO_SUCH_PAGE;
        }
        Graphics2D g2d = (Graphics2D) graphics;
        g2d.drawImage(image, 0, 0, image.getWidth(), image.getHeight(), null);
        return PAGE_EXISTS;
    }

    public static void printImage(String imagePath) throws PrinterException, IOException {
        PrinterJob job = PrinterJob.getPrinterJob();
        job.setPrintable(new ImagePrinter(imagePath));
        if (job.printDialog()) {
            job.print();
        }
    }

    public static void main(String[] args) {
        try {
            printImage("path/to/your/image.jpg");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

使用 JavaFX 打印图片

如果项目基于 JavaFX,可以利用 javafx.print 包实现图片打印功能:

import javafx.application.Application;
import javafx.embed.swing.SwingFXUtils;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.stage.Stage;
import javafx.print.*;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;

public class JavaFXImagePrinter extends Application {
    @Override
    public void start(Stage stage) throws Exception {
        Image image = new Image("file:path/to/your/image.jpg");
        ImageView imageView = new ImageView(image);
        PrinterJob job = PrinterJob.createPrinterJob();
        if (job != null && job.showPrintDialog(stage)) {
            boolean success = job.printPage(imageView);
            if (success) {
                job.endJob();
            }
        }
    }

    public static void main(String[] args) {
        launch(args);
    }
}

注意事项

  • 图片路径:确保路径正确,支持常见格式(如 JPG、PNG)。
  • 打印机配置:代码会调用系统默认打印机,用户可通过打印对话框选择其他打印机。
  • 异常处理:捕获 IOExceptionPrinterException 以处理文件读取或打印错误。

两种方法分别适用于 Swing/AWT 和 JavaFX 环境,根据项目技术栈选择合适的方式。

标签: 图片java
分享给朋友:

相关文章

vue实现图片轮播

vue实现图片轮播

Vue 实现图片轮播的方法 使用第三方库(推荐) 安装 vue-awesome-swiper 库,这是基于 Swiper 的 Vue 封装: npm install swiper vue-a…

java如何创建文件

java如何创建文件

使用 File 类创建文件 通过 File 类的 createNewFile() 方法创建文件。此方法返回布尔值,表示文件是否成功创建。 import java.io.File; import ja…

java如何创建类

java如何创建类

创建类的基本语法 在Java中,类通过class关键字定义,语法如下: [访问修饰符] class 类名 { // 成员变量(属性) // 构造方法 // 成员方法 }…

java如何连接数据库

java如何连接数据库

Java连接数据库的方法 Java连接数据库通常使用JDBC(Java Database Connectivity)技术,以下是具体步骤和示例代码。 加载数据库驱动 在连接数据库之前,需要加载对应的…

java如何连接mysql

java如何连接mysql

连接 MySQL 数据库的基本步骤 添加 MySQL 驱动依赖 在项目中引入 MySQL 的 JDBC 驱动。如果使用 Maven,在 pom.xml 中添加以下依赖: <dependency…

java如何编写接口

java如何编写接口

编写Java接口的基本语法 在Java中,接口通过interface关键字定义,可以包含抽象方法、默认方法、静态方法和常量。 public interface MyInterface {…