如何在 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("/reports/" + "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("/reports/" + "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 可能不适合页面高度,这需要适当注意。
如果目的是移动布局以适应预印形式,这是另一个具有完整代码的类似问题:
如何在 java 中为 jasper 报告设置边距!
我 reports.jasper 有页边距,但打印时我必须更改页边距!
JasperPrint.setTopMargins(myMarginsValue)
不行!!!
我用JRPrintServiceExporter
发送到打印机!
当前代码:
InputStream reportStream = FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream("/reports/" + "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("/reports/" + "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 可能不适合页面高度,这需要适当注意。
如果目的是移动布局以适应预印形式,这是另一个具有完整代码的类似问题: