【问题标题】:How to change printing margins with JasperReports?如何使用 JasperReports 更改打印边距?
【发布时间】:2013-08-05 01:11:54
【问题描述】:

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

如果我这样设置纸张尺寸:

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

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

如果我不设置纸张大小,那么顶部和左侧边距是完美的(意思是,没有任何,到标签的边缘),但我仍然以大的底部边距结束(切掉的东西),我的右边距变得更大(在打印信息的同一点被切掉)。

我在这里错过了什么?

【问题讨论】:

    标签: jasper-reports


    【解决方案1】:

    您可以尝试使用JasperDesign 类的setBottomMargin, setTopMargin, setRightMargin, setLeftMargin 方法或JasperPrint 类的相同方法。

    您可以查看示例here

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

    <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);
    

    【讨论】:

    • 嗯,不幸的是,它正确设置在那里(我相信)。页面宽度=288。每英寸 72 个。 7 左边距和 7 右边距,最大的项目是 274 宽,总共 288。:-(
    • @BrianKnoblauch 打印生成的 pdf 文件时一切正常吗?
    • 生成的 PDF(通过 exportToPdfStream)出来很好,没有任何剪辑。
    • @BrianKnoblauch 试试这个:PageFormat pf = PrinterJob.getPrinterJob().defaultPage();纸纸=新纸(); paper.setImageableArea(0,0,paper.getWidth(),paper.getHeight()); // 无边距 = 无缩放 pf.setPaper(paper);
    • 尽管不是我的确切情况的真正答案,但我从这个答案和由此产生的 cmets 中学到了很多好东西!可能是其他有相同症状的人的正确答案!
    【解决方案2】:

    呃,毕竟这是系统上的打印机首选项选项。我无法解释为什么从屏幕打印 PDF 有效。我尝试在打印机设置中设置自定义标签纸,尺寸为 4"x3",但这对我的 Java 应用程序没有帮助,所以我认为这是我编码错误的原因。不是这样。显然,自定义标签库存的东西不能正常工作。我能够深入研究高级选项并在那里设置大小,这很有效......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-19
      • 2012-03-29
      • 1970-01-01
      相关资源
      最近更新 更多