我使用PrinterJob打印快递单,怎么才能在某个区域换行,中文+英文好像换行有问题 .部分代码:
Graphics2D g2 = (Graphics2D) g;
PrinterJob prjob = ((PrinterGraphics) g2).getPrinterJob();
g2.drawString("测试地址测试地址测试地址测试地址b座", iPosX, iPosY += iAddY);打印出来没有换行,字体重叠了 !JavaPrinterJob Graphics2D 

解决方案 »

  1.   

    你可不可以先将他转换成文档或者pdf来打印。这样一是可以预览你打印的东西先将需要打印的字符写入文件,然后直接掉打印程序打印文件就OK了
      

  2.   

    g2.drawString("测试地址测试地址测试地址测试地址a座", iPosX, iPosY);
    iPosY += iAddY; // iAddY是文字高加行间距,值应足够大
    g2.drawString("测试地址测试地址测试地址测试地址b座", iPosX, iPosY);
      

  3.   

    现成的排版软件你不用,我想PrinterJob也没有排版的方法
    用 g2.drawString 来输出,这应该就是基本的实现方法了
    至于每行多少字,字体统一时可以是固定的字符数,也可以计算每次输出的串的宽度和高度