打印页面大小出现问题

ljishen 2009-05-05 05:02:59
我做了一个打印程序,里面用的纸不是标准纸,是自己设定好的好奇特的纸,

我写了几个打印语句:




System.out.println("设定纸张大小:" + pf.getPaper().getWidth() + " * "
+ pf.getPaper().getHeight());
System.out.println("实际纸张大小:"
+ job.validatePage(pf).getPaper().getWidth() + " * "
+ job.validatePage(pf).getPaper().getHeight());
System.out.println("设定可打印区域大小:" + pf.getPaper().getImageableWidth()
+ " * " + pf.getPaper().getImageableHeight());
System.out.println("实际可打印区域大小:"
+ job.validatePage(pf).getPaper().getImageableWidth() + " * "
+ job.validatePage(pf).getPaper().getImageableHeight());




pf是PageFormat,job是PrinterJob

出来的结果是

结果1(第一种规格):

设定纸张大小:498.8974 * 798.8033
实际纸张大小:521.8582677165355 * 756.0
设定可打印区域大小:454.8974 * 790.8033
实际可打印区域大小:454.8974 * 756.0

结果2(第二种规格):

设定纸张大小:455.2438 * 751.7477
实际纸张大小:498.89763779527556 * 708.6614173228346
设定可打印区域大小:435.2438 * 675.7477
实际可打印区域大小:435.2438 * 675.7477


显示设定纸张大小以及设定可打印区域确实和我设好的一样,但是validatePage之后就全都变了,我这个格式差一点都不行啊,所以才保留到小数点后面这么多位,不过还好第二种规格的可打印区域大小没变,客户也只有一台打印机,你如果说打印机不支持我就彻底没法了,有没这方面的高手遇到过这个问题?如果纸张大小修改不了最起码都要可打印区域一样

...全文
50 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljishen 2009-05-06
  • 打赏
  • 举报
回复
继续在研究,我看是

paper.setSize(455.2438, 751.7477);
paper.setImageableArea(10, 38, 435.2438, 675.7477);

起不了作用,但是MediaSize这个类好像也不支持自定义大小啊,只能选择里面定义好的,不知道怎样做...

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧