Jasper reports 如何使用JasperReports更改打印边距?

Jasper reports 如何使用JasperReports更改打印边距?,jasper-reports,Jasper Reports,我正在直接向打印机生成报告,但遇到了一些问题。如果我将其渲染到屏幕并打印生成的PDF,它会打印得很好。然而,当我直接打印时,我会遇到奇怪的边距问题。目标是带有4个“x3”标签的斑马 如果我这样设置纸张大小: MediaSizeName mediaSizeName=MediaSize.findMedia(4, 3, MediaPrintableArea.INCH); printRequestAttributeSet.add(mediaSizeName); 结果是标签靠上边缘,左边缘有半英寸(应该

我正在直接向打印机生成报告,但遇到了一些问题。如果我将其渲染到屏幕并打印生成的PDF,它会打印得很好。然而,当我直接打印时,我会遇到奇怪的边距问题。目标是带有4个“x3”标签的斑马

如果我这样设置纸张大小:

MediaSizeName mediaSizeName=MediaSize.findMedia(4, 3, MediaPrintableArea.INCH);
printRequestAttributeSet.add(mediaSizeName);
结果是标签靠上边缘,左边缘有半英寸(应该没有),右边缘约为0.25英寸,部分标签被切掉,下边缘为1.5英寸,许多标签被切掉

如果我不设置纸张大小,那么上、左页边距都是完美的(也就是说,没有任何边距,直到标签的边缘),但我最终还是得到了较大的下页边距(将内容切掉),而我的右页边距变大了很多(在打印信息的同一点上切掉)


我这里缺少什么?

您可以尝试使用类的
setBottomMargin、setTopMargin、setRightMargin、setLeftMargin
方法或类中的相同方法

你可以看到样品

您还可以在报表模板中设置页边距,例如借助iReport。
报表模板的代码段:

<jasperReport ... language="groovy" pageWidth="595" pageHeight="842" columnWidth="593" leftMargin="1" rightMargin="1" topMargin="1" bottomMargin="1">

呃,在所有这些之后,它变成了系统上的打印机首选项选项。我无法解释为什么屏幕上的PDF打印有效。我试着在打印机设置中设置一个4“x3”大小的定制标签库,但这对我的Java应用程序没有帮助,所以我认为这是我编码错误的地方。不是这样。显然,定制标签库存的事情就是不正常。我能够深入研究高级选项并在那里设置大小,这很有效…

Hmmm,不幸的是,它在那里设置正确(我相信)。页面宽度=288。每英寸72。7左7右,最大的项目是274宽,总计288:-(@BrianKnoblauch打印生成的pdf文件时一切正常?生成的pdf(通过exportToPdfStream)显示良好,没有任何剪裁。@BrianKnoblauch尝试以下操作:PageFormat pf=PrinterJob.getPrinterJob().defaultPage();Paper Paper=new Paper();Paper.setImageableArea(0,0,Paper.getWidth(),Paper.getHeight());//无边际=无缩放。设定纸(纸);尽管不是我的确切情况的真实答案,但我从这个答案和由此产生的评论中学到了很多好东西!对于其他有相同症状的人来说,这可能是正确的答案!
    PageFormat pf = PrinterJob.getPrinterJob().defaultPage();
    Paper paper = new Paper();
    paper.setImageableArea(0, 0, paper.getWidth(), paper.getHeight()); // no margin = no scaling
    pf.setPaper(paper);