繁体   English   中英

如何在Java中为Jasper Report设置边距?

[英]How to set margins to jasper report in java?

如何在Java中为Jasper Report设置边距!

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

使用JRXmlLoaderjrxml (注意不是.jasper) 加载JasperDesign中

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可能不适合页面高度,这需要适当注意。

如果目的是移动版式以适应预打印表格,则这是另一个带有完整代码的类似问题: 如何在不同打印机上移动整个版式以适应预打印表格?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM