使用“打印设置”对话框

原文: https://docs.oracle.com/javase/tutorial/2d/printing/dialog.html

传统上,用户想要查看页面设置和打印对话框。从打印对话框中,您可以选择打印机,指定要打印的页面,以及设置份数。

This figures represents a print dialog

当用户按下与打印命令相关的按钮时,应用程序显示打印对话框,或者从打印菜单中选择项目。要显示该对话框,请调用 PrinterJob 类的 printDialog 方法:

  1. PrinterJob pj = PrinterJob.getPrinterJob();
  2. ...
  3. if (pj.printDialog()) {
  4. try {pj.print();}
  5. catch (PrinterException exc) {
  6. System.out.println(exc);
  7. }
  8. }
  9. ...

如果用户单击“确定”退出对话框,则此方法返回true,否则返回false。用户在对话框中的选择受基于已设置为PrinterJob的页面的数量和格式的约束。

上面代码段中的printDialog方法打开一个本机打印对话框。 PrintDialogExample.java 代码示例显示了如何显示跨平台打印对话框。

您可以使用页面设置对话框更改 PageFormat 对象中包含的页面设置信息。

This figure represents a page setup dialod window

要显示页面设置对话框,请调用PrinterJob类的pageDialog方法。

  1. PrinterJob pj = PrinterJob.getPrinterJob();
  2. PageFormat pf = pj.pageDialog(pj.defaultPage());

使用传递给pageDialog的参数初始化页面设置对话框。如果用户单击对话框中的“确定”按钮,将根据用户选择创建PageFormat实例,然后返回。如果用户取消对话框,pageDialog将返回原始未更改的 PageFormat。

通常,Java 2D Printing API 需要应用程序来显示打印对话框,但有时可以打印而不显示任何对话框。这种类型的打印称为静音打印。它可能在特定情况下很有用,例如,当您需要打印特定数据库每周报告时。在其他情况下,始终建议在打印过程开始时通知用户。