如何在 java 中设置 jasper 报告的边距?

How to set margins to jasper report in java?

如何在 java 中为 jasper 报告设置边距!

我 reports.jasper 有页边距,但打印时我必须更改页边距!

JasperPrint.setTopMargins(myMarginsValue) 不行!!!

我用JRPrintServiceExporter发送到打印机!

当前代码:

InputStream reportStream = FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream("/rep‌​orts/" + "myReport"+".jasper"); 
JasperReport template = (JasperReport) JRLoader.loadObject(reportStream);
template.setWhenNoDataType(WhenNoDataTypeEnum.ALL_SECTIONS_NO_DETAIL);

jrxml(注意不是 .jasper)加载到 JasperDesign using the JRXmlLoader

JasperDesign design = JRXmlLoader.load(stream); //Location of jrxml file example FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream("/rep‌​orts/" + "myReport"+".jrxml");
design.setBottomMargin(bottomMargin); //set the margins
design.setTopMargin(topMargin)
design.setLeftMargin(leftMargin)
design.setRightMargin(rightMargin);
design.setColumnWidth(design.getPageWidth()-leftMargin-rightMargin);//if you change your left and right margin you need to set new correct columnWidth

//compile the report
JasperReport report = JasperCompileManager.compileReport(design); //this is what you called template

然后根据需要填充它并导出它。

当然,textField 可能超出设计范围,如果您将页边距增加太多,band 可能不适合页面高度,这需要适当注意。

如果目的是移动布局以适应预印形式,这是另一个具有完整代码的类似问题: