Google 和 JavaDocs 是你的朋友
JTextArea#print
显示打印对话框的便捷打印方法,然后
以交互模式打印此 JTextComponent,没有标题或
页脚文本。注意:此方法会阻塞,直到打印完成。注:在
无头模式,不会显示任何对话框。
该方法调用全功能打印方法来执行
打印。
返回:
true,除非用户取消打印
JTextArea#print(MessageFormat headerFormat, MessageFormat footerFormat)
显示打印对话框的便捷打印方法,然后
使用指定的交互模式打印此 JTextComponent
页眉和页脚文本。注意:此方法会阻塞,直到打印完成
完毕。注意:在无头模式下,不会显示任何对话框。
该方法调用全功能打印方法进行打印。
参数:
headerFormat - MessageFormat 中的文本,用作
页眉,或 null 表示没有页眉
footerFormat - 文本,在
MessageFormat,用作页脚,或 null 表示没有页脚
返回: true,除非用户取消打印
JTextArea#print(MessageFormat headerFormat, MessageFormat footerFormat, boolean showPrintDialog, PrintService service, PrintRequestAttributeSet attributes, boolean interactive) throws PrinterException
...你自己看那个,太长了...
JTextArea#getPrintable(MessageFormat headerFormat, MessageFormat footerFormat)
返回一个 Printable 用于打印 this 的内容
文本组件。返回的 Printable 按外观打印文档
除了被重新格式化以适合纸张。返回的
Printable 可以包装在另一个 Printable 中以创建
复杂的报告和文件。返回的 Printable 共享
带有此 JTextComponent 的文档。这是该部门的责任
开发人员确保文档在此期间不会发生变异
使用可打印的。当文档是未定义的打印行为
在打印过程中发生变异。
页眉和页脚文本可以通过提供添加到输出中
MessageFormat 参数。打印代码从
格式,提供可以包含在
格式化字符串:表示当前页码的 Integer。
打印时返回的Printable,格式化文档内容
适合页面大小。为了正确换行
所有页面的可成像宽度必须相同。看
PageFormat.getImageableWidth().
此方法是线程安全的,尽管大多数 Swing 方法不是。
请参阅如何使用线程了解更多信息。
返回的 Printable 可以在任何线程上打印。
这个实现返回的 Printable 在
事件调度线程,不管它用在什么线程上。
参数:
headerFormat - MessageFormat 中的文本,用作
页眉,或 null 表示没有页眉
footerFormat - 文本,在
MessageFormat,用作页脚,或 null 表示没有页脚
返回:
用于打印此内容的 Printable
文本组件
对我来说很好用...
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.print.PrinterException;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.text.MessageFormat;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
public class TestPrint {
public static void main(String[] args) {
new TestPrint();
}
public TestPrint() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
ex.printStackTrace();
}
JTextArea ta = new JTextArea(20, 100);
try (FileReader reader = new FileReader(new File("C:/Script.txt"))) {
ta.read(reader, ta);
} catch (IOException ex) {
ex.printStackTrace();
}
JButton print = new JButton("Print");
print.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
MessageFormat header = new MessageFormat("Star Wars IV A new Hope");
MessageFormat footer = new MessageFormat("Page {0}");
try {
ta.print(header, footer);
} catch (PrinterException ex) {
ex.printStackTrace();
}
}
});
JFrame frame = new JFrame("Testing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new JScrollPane(ta));
frame.add(print, BorderLayout.SOUTH);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}