当我尝试在当前的大学项目中为特定的标签打印机打印某些内容时,出现此错误:
java.awt.print.PrinterException: Paper's imageable width is too small.
at sun.print.RasterPrinterJob.printPage(Unknown Source)
at sun.print.RasterPrinterJob.print(Unknown Source)
at sun.print.RasterPrinterJob.print(Unknown Source)
at Printer.print(Printer.java:91)
at Printer.<init>(Printer.java:43)
at VisitorDBTest.main(VisitorDBTest.java:10)
但我看不出原因。我有此特定打印机的确切标签代码,标签的宽度和高度正确。我将可成像尺寸设置为确切的标签尺寸(以1/72英寸的英寸为单位),然后尝试将其设置为较小而没有运气。
当我在A4页面上使用普通喷墨打印机打印时,此代码可以正常工作。仅在尝试打印到DYMO 450标签打印机(使用其他Paper和PageFormat对象)时,才出现错误。
查看google结果,看来我实际上是历史上唯一出现此错误的人。
编辑:将可成像的宽度打印到屏幕后,我得到以下结果:
Paper imageable width is 196.0
PageFormat imageable width is 151.0
PrinterJob imageable width is -65.0267716535433
据我了解,PageFormat可以从Paper中获取其可成像的宽度,而PrinterJob可以从PageFormat中获取其可成像的宽度。
我显然在这里错过了一些东西。
最佳答案
Dymo 420P也有同样的问题。
尝试将可成像区域设置为与纸张相同的尺寸,原点为0,0。然后在PrinterJob.printDialog()
之后,以您的页面格式调用PrinterJob.validatePage()
。它将返回具有适当可成像区域的有效页面格式。
关于java - “PrinterException:纸张的可成像宽度太小”,我可以看到问题所在,但是如何解决?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10601620/