如何打印 Literals
JTextComponent
类为打印文本文档提供支持。 JTextComponent
API 包含允许您实现基本和高级打印任务的方法。支持的格式包括 HTML,RTF 和纯文本。对于常见的打印任务,例如仅打印文本文档,请直接使用print
方法。 print
方法具有几种形式,并带有各种参数集。此方法准备您的文本文档,获取相应的Printable
对象,然后将其发送到打印机。
如果Printable
对象的默认实现不能满足您的需要,则可以通过覆盖getPrintable
方法来包装默认Printable
甚至完全替换它来自定义打印布局。
打印文本组件的最简单方法是调用不带参数的print
方法。请参见下面的代码示例。
try {
boolean complete = textComponent.print();
if (complete) {
/* show a success message */
...
} else {
/*show a message indicating that printing was cancelled */
...
}
} catch (PrinterException pe) {
/* Printing failed, report to the user */
...
}
当您调用不带参数的print
方法时,将显示一个打印对话框,然后以交互方式打印您的文本组件,而没有页眉或页脚。下面的代码示例显示了带有完整参数集的print
方法签名。
boolean complete = textComponent.print(MessageFormat headerFormat,
MessageFormat footerFormat,
boolean showPrintDialog,
PrintService service
PrintRequestAttributeSet attributes,
boolean interactive);
当您使用所有参数调用print
方法时,您将明确选择打印功能,例如页眉和页脚文本,打印属性,目标打印服务,以及是否显示打印对话框,以及是交互式还是非交互式打印。要确定最适合您需要的参数,请参阅下面的可用功能描述。
JTextComponent
打印 API 提供以下功能:
交互式或非交互式打印
在交互 Pattern 下,将在打印期间显示带有中止选项的进度对话框。这是进度对话框的示例。
该对话框允许用户跟踪打印进度。在事件分配线程上调用print
方法时,进度对话框是 Pattern 对话框,否则是非 Pattern 对话框。重要的是您的文档在打印时保持不变,否则打印行为是不确定的。 print
方法可确保您的文档不会被更改,并在打印期间禁用该组件。
如果您以非交互 Pattern 在事件分发线程上调用print
方法,则所有事件(包括重绘)都将被阻止。这就是为什么只建议在具有不可见 GUI 的应用程序上在 EDT 上进行非交互式打印的原因。
Print Dialog
您可以显示一个标准的打印对话框,允许用户执行以下操作:
-
选择打印机
-
指定份数
-
更改打印属性
-
开始打印之前取消打印
-
Start printing
您可能会注意到,“打印”对话框未指定打印输出中的总页数。这是因为文本打印实现使用Printable
API,并且在打印之前未知总页数。
将页眉或页脚(或两者)添加到打印版式
页眉和页脚由MessageFormat参数提供。这些参数允许对页眉和页脚进行本地化。请阅读MessageFormat类的文档,因为单引号等字符是特殊字符,需要避免。页眉和页脚都居中。您可以使用{0}
插入页码。
MessageFormat footer = new MessageFormat("Page - {0}");
由于在打印之前输出的总页数未知,因此无法指定编号格式,例如“第 1 页,共 5 页”。
自动布局和分页
文本区域打印示例
让我们看一个名为 TextAreaPrintingDemo 的示例。该演示的主要功能是根据用户的选择在事件分发线程或后台线程上打印文本文档。该演示显示一个文本区域,允许选择几种打印功能,并根据所选选项打印文本区域的内容。该程序的完整代码可以在下面找到 TextAreaPrintingDemo.java。该演示的丰富 GUI 内置于NetBeans IDE GUI 构建器中。这是TextAreaPrintingDemo
应用程序的图片。
Note
boolean print()
布尔值打印(MessageFormat,MessageFormat)
布尔值打印(MessageFormat,MessageFormat,布尔值,PrintRequestAttributeSet,布尔值,PrintService)在不带参数的情况下调用时,将显示一个打印对话框,然后以交互方式打印此文本组件,而没有页眉或页脚文本。如果用户 continue 打印,则返回true
,如果用户取消打印则返回false
。
当使用两个MessageFormat
参数调用时,显示一个打印对话框,然后以指定的页眉和页脚文本交互式地打印此文本组件。
当使用一整套参数调用时,将根据指定的参数打印此文本组件。两个MessageFormat
参数指定页眉和页脚文本。第一个布尔参数定义是否显示打印对话框。另一个布尔参数指定是否以交互方式打印。使用其他两个参数可以指定打印属性和打印服务。
每当省略PrintService
参数时,将使用默认打印机。
About Oracle | Contact Us | Legal Notices | 使用条款 | 您的隐私权
上一页: 如何打印表格
下一页: 如何创建启动画面