Вопрос по jasper-reports, java – как изменить формат страницы во время выполнения? (jasperreport)

7

Я создал страницу отчета в формате A4 в iReport4.5 и использую ее в приложении Java.

Как изменить формат А4 на A5 во время выполнения в приложении Java?

Ваш Ответ

1   ответ
6

как это сделать, обратите внимание, что простое изменение размера страницы, вероятно, не даст вам того, чего вы хотите. Это сделает страницу больше или меньше в зависимости от того, что вы хотите, но расположение элементов не изменится. В вашем случае отчет может даже не скомпилироваться в зависимости от того, где у вас выложены предметы.

У вас есть несколько вариантов:

First you could create a second report for the A5 format, and then at run time grab the appropriate report depending on what you want. This is probably the easiest solution, but it does mean you end up with almost 2 identical reports. Meaning any changes in the future you would have to do in two places. Second if it is a fairly straight forward report with a typical layout you could use something like Dynamic Jasper to generate your report in java code. Lastly you could work directly against the Jasper Report's API to generate your report at run time.

Теперь, чтобы ответить на ваш вопрос. Сначала загрузите файл JRXml вJasperDesign объект:

//Note JRXMLLoader could also take a File object or 
//InputStream instead of a String as the parameter.
JasperDesign design = JRXmlLoader.load("report.jrxml");

Когда у вас естьJasperDesign Вы можете установить размер страницы на то, что вы хотите. Бумага А5 из того, что я могу сказать, это 5.83 & quot; & # XD7; 8,27 & Quot ;. Чтобы преобразовать это в размер, который JasperReports понимает, умножьте каждый на 72, получая 420 x 596 (я округлил, поскольку мы должны установить целые числа).

design.setPageHeight(596);
design.setPageWidth(420);

Оттуда вы отправляете свое экспортное приключение, как обычно.

Похожие вопросы