# 课程：印刷

> 原文： [https://docs.oracle.com/javase/tutorial/2d/printing/index.html](https://docs.oracle.com/javase/tutorial/2d/printing/index.html)

由于 Java 2D API 使您可以在任何表面上绘图，因此可以自然扩展 Java 2D 图形。打印机可以像显示器一样被视为图形设备。

Java 2D 打印 API 不限于打印图形。它还允许您打印应用程序用户界面的内容。可以通过在 Java 2D 打印 API 的格式化控制下或使用 Java 2D 图形 API 将原始数据发送到打印机来打印内容。

在本课中，您将探索 Java 2D 打印 API 的打印机和作业控制功能，它们是渲染元素的补充。您将学习如何查找在系统或网络上配置的打印机，并发现有关这些打印机的信息，例如它支持的纸张尺寸，以及选择这些打印属性和用户对话框。

打印中涉及的主要类和接口在 [`java.awt.print`](https://docs.oracle.com/javase/8/docs/api/java/awt/print/package-frame.html) 和 [`javax.print`](https://docs.oracle.com/javase/8/docs/api/javax/print/package-frame.html) 包中表示（最后一个包允许您访问打印服务）。

基本打印操作在以下部分中表示：

*   [基本打印程序](../printing/printable.html) - 本节介绍`Printable`界面并显示基本打印程序。
*   [使用打印设置对话框](../printing/dialog.html) - 本节介绍如何显示打印设置对话框。
*   [打印多页文档](../printing/set.html) - 本节介绍如何使用分页打印多页文档。
*   [使用打印服务和属性](../printing/services.html) ndash;本节将向您介绍打印服务，如何指定打印数据格式以及如何使用`javax.print`包创建打印作业。
*   [打印用户界面的内容](../printing/gui.html) - 本节介绍如何打印窗口或框架的内容。
*   [Swing 组件中的打印支持](../printing/swing.html) ndash;本节简要介绍`Swing`中的相关打印功能，并参考特定的`Swing`类和接口。