我试图打印一个包含很多内容的JPanel,它有点大,需要知道页面数和页面格式。但是,当我尝试在车道崩溃中了解这些情况时,我有一个nullpointer异常。
这是一小段代码:
private Component componentToBePrinted;
private PageFormat format;
private int numPages;
componentToBePrinted = this.PanelMatricula;
Dimension page = this.componentToBePrinted.getPreferredSize();
numPages = (int) Math.ceil(page.height/format.getImageableY());// Nullpointerexception
print(componentToBePrinted.getGraphics(), format, this.getNumberOfPages());
我是印刷界的新手,我不知道失败的原因,我做了很多研究,没有找到任何解决方案。
谢谢大家的帮助。
最佳答案
Math.ceil(page.height/format.getImageableY());
我要打败format
是null
printerJob.defaultPage()
函数:创建一个新的PageFormat实例并将其设置为默认大小和方向。并且printerJob.getPageFormat(PrintRequestAttributeSet attributes)
计算的PageFormat的值与该作业的当前PrintService支持的值一致(即getPrintService()
返回的值)以及属性中包含的介质,可打印区域和方向。
因此,您可以使用它们之一获取PageFormat
。