如何在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);
发布于 2016-03-24 12:19:33
使用jrxml (注意,不是.jasper)将JRXmlLoader加载到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
然后,填充 it并按您的意愿导出。
自然的,textField可能在设计的外面,如果你把你的页边距增加到很多的话,带可能不适合页面的高度,这需要适当的注意。
这是另一个与完整代码类似的问题,如果目的是移动布局以适应预先打印的形式:如何移动整个版面以适应不同打印机上的预印形式?。
https://stackoverflow.com/questions/36199758
复制相似问题