【问题标题】:Set paper size in Jasper to be recognized in Excel在 Jasper 中设置纸张大小以在 Excel 中识别
【发布时间】:2011-11-23 17:06:03
【问题描述】:

我有一个使用Jasper 3.7.5 生成的Excel 报告。 如果我预览文件,则不会显示报告的最后一列。

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

当我尝试打印它时,在Print 对话框中,纸张大小的第一个选项是Letter是否可以通过 Jasper 设置纸张尺寸,使 Excel 识别为 A4 并将 Paper Size 设置为 A4?或者这只能在 Excel 中实现而不在 Jasper 中实现?Print 对话框和预览中将 Paper Size 选择为 A4 会很好。

报告的宽度和高度(在jasperReport 标记内的jrxml 中设置)计算如下:

// 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 以上对报表没有明显影响。

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

【问题讨论】:

    标签: java jasper-reports export-to-excel


    【解决方案1】:

    我无法在 Jasper 中解决这个问题。我已经通过在生成报告之后使用Apache POI API 将其发送回浏览器之前对其进行操作来解决它:

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

    【讨论】:

    • 如果有人知道更好的解决方案,请分享!
    【解决方案2】:

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

    使用您的计算时,我得到:w=505.7 和 h=715.22

    【讨论】:

    • 我不知道您从哪里得到 595 和 842,但我已将 98 设置为 83.29 以获取您的值并且很奇怪(即使报告比以前更宽)Excel 预览显示较少列比以前。从第 15 列(含)开始,我没有从报告中看到任何内容。
    猜你喜欢
    • 2015-09-09
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-18
    相关资源
    最近更新 更多