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

2014-11-23 21:31:27 · 作者: · 浏览: 25
; //文本已结束
  }
 }
}

/*将打印目标文本按页存放为字符串数组*/
public String[] getDrawText(String s) {
 String[] drawText = new String[PAGES]; //根据页数初始化数组
 for (int i = 0; i < PAGES; i++)
  drawText[i] = ""; //数组元素初始化为空字符串
 int k, suffix = 0, lines = 0;
 while (s.length() > 0) {
  if (lines < 54) //不够一页时
  {
   k = s.indexOf(\\\\\\\\\\\\\\\ \\\\\\\);
   if (k != -1) //存在回车符
   {
    lines += 1; //行数累加
    //计算该页的具体文本内容,存放到相应下标的数组元素
    drawText[suffix] = drawText[suffix] + s.substring(0, k + 1);
    if (s.substring(k + 1).length() > 0)
     s = s.substring(k + 1);
   }
   else
   {
    lines += 1; //行数累加
    //将文本内容存放到相应的数组元素
    drawText[suffix] = drawText[suffix] + s;
    s = "";
   }
  }
  else //已满一页时
  {
   lines = 0; //行数统计清零
   suffix++; //数组下标加1
  }
 }
 return drawText;
}


  2) 计算需要打印的总页数

public int getPagesCount(String curStr) {
 int page = 0;
 int position, count = 0;
 String str = curStr;
 while(str.length() > 0) //文本尚未计算完毕
 {
  position = str.indexOf(\\\\\\\\\\\\\\\ \\\\\\\); //计算回车符的位置
  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 p <script type="text/java script">
<script type="text/java script">BAIDU_CLB_fillSlot("771048");
点击复制链接 与好友分享! 回本站首页
<script> function copyToClipBoard(){ var clipBoardContent=document.title + '\r\n' + document.location; clipBoardContent+='\r\n'; window.clipboardData.setData("Text",clipBoardContent); alert("恭喜您!复制成功"); }
分享到: 更多
<script type="text/java script" id="bdshare_js" data="type=tools&uid=12732"> <script type="text/java script" id="bdshell_js"> <script type="text/java script"> var bds_config = {'snsKey':{'tsina':'2386826374','tqq':'5e544a8fdea646c5a5f3967871346eb8'}}; document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js cdnversion=" + Math.ceil(new Date()/3600000)
您对本文章有什么意见或着疑问吗?请到 论坛讨论您的关注和建议是我们前行的参考和动力
上一篇: Java数据对象(JDO)的前世今生
下一篇: 改善编码风格
相关文章
<script type="text/java script">BAIDU_CLB_fillSlot("182716");
<script type="text/java script">BAIDU_CLB_fillSlot("517916");
图文推荐
<iframe src="http://www.2cto.com/uapi.php tid=13616&catid=85&title=SmF2YbTy06GzzNDyyei8xsiruaXC1A==&forward=http://www.2cto.com/kf/200609/13616.html" width="100%" height="100%" id="comment_iframe" name="comment_iframe" frameborder="0" scrolling="no">
<script type="text/java script">BAIDU_CLB_fillSlot("771057");
排行
热门