jasper-reports - 如何使用 JasperReports 更改打印页边距?

标签 jasper-reports

我正在生成一份直接发送给打印机的报告,但遇到了一些问题。如果我将它渲染到屏幕上并打印生成的 PDF,则打印效果很好。但是,当我直接打印时,出现奇怪的边距问题。目标是带有 4"x3"标签的斑马。

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

MediaSizeName mediaSizeName=MediaSize.findMedia(4, 3, MediaPrintableArea.INCH);
printRequestAttributeSet.add(mediaSizeName);

结果是标签靠上边距,左边距为半英寸(应该没有),右边距约为 0.25 英寸,标签的一部分被切掉,底部边缘为 1.5 英寸,很多标签被砍掉了。

如果我不设置纸张尺寸,那么上边距和左边距是完美的(意思是,没有任何边距,到标签的边缘),但我仍然得到大底边距(切掉的东西),我的右边距变大了(关于打印信息,在同一点切掉了)。

我在这里错过了什么?

最佳答案

您可以尝试使用JasperDesignsetBottomMargin、setTopMargin、setRightMargin、setLeftMargin 方法|类或来自 JasperPrint 的相同方法类。

可以看到样本here .

您还可以在报告的模板中设置边距,例如在 iReport 的帮助下。
报告模板片段:

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

您还可以查看 MediaPrintableArea class constructor并阅读此 post .

更新:

另一个解决方案是如何从 this discussion 中删除边距:

    PageFormat pf = PrinterJob.getPrinterJob().defaultPage();
    Paper paper = new Paper();
    paper.setImageableArea(0, 0, paper.getWidth(), paper.getHeight()); // no margin = no scaling
    pf.setPaper(paper);

关于jasper-reports - 如何使用 JasperReports 更改打印页边距?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8039495/

相关文章:

java - 如何在客户端jsp上显示报表?

java - 当数据源为 XML 时,报表中仅生成一行

java - 如何使用java代码在主报表中添加子报表

java - JasperReports 本地化

maven - 如何从 maven/gradle 下载和启动 iReport?

java - 在ireport中按日期对数据进行分组

jasper-reports - 警告元素位置无效。 iReport Jasperreports 中的文本被裁剪

java - 如何将 HtmlComponent 添加到 JasperDesign

xml - PDF导出在Grails 2.3.2中不起作用

java - 无法通过 JRXmlLoader 加载位于 jar 文件中的 jrxml : getting java. io.FileNotFoundException