快速业务通道

Java打印程序设计全攻略 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
0) //文本尚未计算完毕  {   position = str.indexOf(''\n''); //计算回车符的位置   count += 1; //统计行数   if (position != -1)    str = str.substring(position + 1); //截取尚未计算的文本   else    str = ""; //文本已计算完毕  }  if (count > 0)   page = count / 54 + 1; //以总行数除以54获取总页数  return page; //返回需打印的总页数 }

以jdk1.4以前的版本实现打印动作按钮监听,并完成具体的打印操作

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);   } }

Java打印程序设计全攻略(4)

时间:2010-12-23

以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);   } }

打印预览

1、应用场景

大多少商业应用都需要提供打印预览机制,它可以让我们在屏幕上看到页面,这样就不会因为不喜欢的打印结果而浪费纸张。假设我们在打印上一节所说的文本之前,需要先进行打印预览。那么该怎么实现呢? 界面实现图示如下:(Next预览下一页,Preview预览前一页,Close则关闭预览)

2、解决方法

基本思路:虽然Java2平台的打印API并不提供标准的打印预览对话框,但是自己来进行设计

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号