2011-08-19 208 views
2

我有一个Excel报告,我用Jasper 3.7.5生成。 如果我预览文件,报告的最后一列未显示。 enter image description here在Jasper中设置要在Excel中识别的纸张尺寸

如果我将Page Setup中的纸张尺寸从Letter更改为A4,则会显示最后一列。 enter image description here

当我尝试打印,在Print对话框纸张大小的第一个选项是Letter是否可以从Jasper中设置纸张尺寸,Excel会识别为A4,并将Paper Size设置为A4?或者这是唯一可能的Excel和不在贾斯珀?如果在Print对话框和预览中将Paper Size选择为A4会很好。

报告宽度和高度(被设置在jrxmljasperReport标签内)的计算如下:

// A4 size is 210 mm X 297 mm 
int quality = 236; // 236 dpmm = 600 dpi 
int width = 210 * quality/98; 
int height = 297 * quality/98; 

我不知道为什么公式需要用98分但是我已经注意到,将值设置为100以上对报告没有可见的影响。

更新: 报告处于横向模式。

回答

2

贾斯珀我不可能解决这个问题。我已经通过操作报告解决它生成后,它和之前使用Apache POI API发送回浏览器:

Sheet sheet = workbook.getSheetAt(0); 
sheet.getPrintSetup().setPaperSize(PrintSetup.A4_PAPERSIZE); 
+0

如果有人知道更好的解决方案,请分享! – Atticus

0

尝试将报告的宽度和高度设置为固定大小,对于A4格式,它应该是:纵向模式下w = 595和h = 842。

在使用你的计算,我得到:W = 505.7和H = 715.22

+0

我不知道你从哪里得到595和842,但我已经设置了98 83.29获得您的价值并且足够奇怪(即使报告比以前更宽),Excel预览显示的列比以前少。从列15(包括)我没有看到报道中的任何内容。 – Atticus