private void printTextAction()
{
printStr = area.getText().trim();
//获取需要打印的目标文本
if (printStr != null && printStr.length() > 0)
//当打印内容不为空时
{
PAGES = getPagesCount(printStr);
//获取打印总页数
PrinterJob myPrtJob = PrinterJob.getPrinterJob();
//获取默认打印作业
PageFormat pageFormat = myPrtJob.defaultPage();
//获取默认打印页面格式
myPrtJob.setPrintable(this, pageFormat);
//设置打印工作
if (myPrtJob.printDialog())
//显示打印对话框
{
try { myPrtJob.print();
//进行每一页的具体打印操作
}
catch(PrinterException pe)
{ pe.printStackTrace();
}
}
�� }
else
{
//如果打印内容为空时,提示用户打印将取消
JOptionPane.showConfirmDialog(null, "Sorry, Printer Job is Empty, Print Cancelled!",
"Empty", JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE);
}
}
3.2、以jdk1.4新版本提供的API实现打印动作按钮监听,并完成具体的打印操作
private void printText2Action()
{
printFlag = 0;
//打印标志清零
printStr = area.getText().trim();
//获取需要打印的目标文本
if (printStr != null && printStr.length() > 0)
//当打印内容不为空时
{
PAGES = getPagesCount(printStr);
//获取打印总页数
//指定打印输出格式
DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE;
//定位默认的打印服务
PrintService printService = PrintServiceLookup.lookupDefaultPrintService();
//创建打印作业
DocPrintJob job = printService.createPrintJob();
//设置打印属性
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
DocAttributeSet das = new HashDocAttributeSet();
//指定打印内容
Doc doc = new SimpleDoc(this, flavor, das);
//不显示打印对话框,直接进行打印工作
try {
job.print(doc, pras);
//进行每一页的具体打印操作
} catch(PrintException pe)
{
pe.printStackTrace();
}
}
else
{
//如果打印内容为空时,提示用户打印将取消
JOptionPane.showConfirmDialog(null,
"Sorry, Printer Job is Empty, Print Cancelled!",
"Empty", JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE);
}
}