[英]How to set margins to jasper report in java?
如何在Java中为Jasper Report设置边距!
我的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);
使用JRXmlLoader将jrxml (注意不是.jasper) 加载到JasperDesign中
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可能不适合页面高度,这需要适当注意。
如果目的是移动版式以适应预打印表格,则这是另一个带有完整代码的类似问题: 如何在不同打印机上移动整个版式以适应预打印表格?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.