现在能过JAVA程序去连接针式打印机可以打印,之前打印的是快递单,现在又要做一个送货单的打印,可是这个内容填满了整个打印纸,纸张规格为:22.4cm*14cm,可是总是只能打印中间一部分,也就是周边有一部分无法打印出来,本以为是打印区域设置问题,可是设置了也无效,打印和原来一样,代码如下public int print(Graphics graphics, PageFormat pageFormat, int pageIndex)
throws PrinterException {
// 只打印第一页
switch (pageIndex) {
case 0:
Graphics2D g2 = (Graphics2D) graphics;
g2.setColor(Color.BLUE);
Paper p = new Paper();
p.setSize(800, 500);// 纸张的大小
p.setImageableArea(0, 0, 800, 500);// 可打印区域
pageFormat.setPaper(p);
drawCurrentPageText(g2, pageFormat);
return PAGE_EXISTS;
default:
return Printable.NO_SUCH_PAGE;
}
}不知道这个应该怎么设置,可是如果通过像excel表格去打印的话,内容是可以都打印出来的。如果有知道的,请指教
QQ:2369085769
MSN:[email protected]

解决方案 »

  1.   

    long time ago 做过一个打印的项目,当时还是看core java里的例子
    印象中如果打印区域无法打印出完整的信息,可以在画出数据的处理做相应的缩放
    LZ试试看在你的drawCurrentPageText(g2, pageFormat);方法中做一些缩放处理
      

  2.   

    我这里打印的是一张图片,可是只能打印出图片中间一部分,通过:p.setSize(800, 500);// 纸张的大小
                p.setImageableArea(0, 0, 800, 500);// 可打印区域
    都无效果(加上和不加效果是一样的),你的意思就是让我把这张图片缩放是吗?可是如果缩放的话,图片中的文件就会变小的,我就想如果图片是多大,就能打印出相同大小的内容
      

  3.   

    如果你的page本身不能100%打印你的图片(区域不够),你又怎么能让它100%完全打印。
    调用excel能打印,是因为excel本身也有缩放,在打印预览就能看到到底缩放了百分之多少
      

  4.   

    嗯。明白你的意思了,你是说有可能Page就没有打印出所有内容,发给打印机,自然也打印不了,不知道JAVA打印是否有打印前的预览功能?
      

  5.   

     p.setSize(800, 500);// 纸张的大小
     p.setImageableArea(0, 0, 800, 500);// 可打印区域
    ==>p.setSize(590,840);//纸张大小 width 590; height 840
    p.setImageableArea(10,10, 590,840);//A4(595 X 842)设置打印区域,10,10为A4边距。
      

  6.   

    你这样设置肯定不行的,b/s打印一定要通过 activex打印,才能出现实际的效果。按照activex的方向找找是否有开源报表吧。
      

  7.   

    百度了一下,说了转化一下。希望对LZ有帮助。
    http://blog.csdn.net/ppl2046/article/details/6577252
      

  8.   

    我使用的是JAVA打印,和浏览器无关的