Установите размер бумаги в Джаспере для распознавания в Excel - PullRequest
2 голосов
/ 19 августа 2011

У меня есть Excel отчет, который я генерирую с Jasper 3.7.5.При предварительном просмотре файла последний столбец отчета не отображается.enter image description here

Если изменить размер бумаги в Page Setup с Letter на A4, отобразится последний столбец.enter image description here

Когда я пытаюсь распечатать его, в диалоговом окне Print первый параметр для формата бумаги - Letter. Можно ли установить размер бумаги от Джаспера таким образом, чтобы Excel распознал, что это A4, и установил бы Paper Size в A4?Или это возможно только в Excel, а не в Jasper? Было бы неплохо выбрать Paper Size для A4 как в диалоге Print, так и в предварительном просмотре.

Отчетширина и высота (которые установлены в jrxml внутри тега jasperReport) рассчитываются следующим образом:

// 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 ]

2 голосов
/ 23 августа 2011

Я не мог решить это в Джаспере. Я решил эту проблему путем манипулирования отчетом после его создания и перед отправкой обратно в браузер с помощью API Apache POI :

Sheet sheet = workbook.getSheetAt(0);
sheet.getPrintSetup().setPaperSize(PrintSetup.A4_PAPERSIZE);
0 голосов
/ 19 августа 2011

Попробуйте установить фиксированный размер виджета и высоты отчета, для формата А4 он должен быть: w = 595 и h = 842 в портретном режиме.

При использовании ваших расчетов я получаю: w = 505,7 и h = 715,22

...