2011-08-19 150 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