как изменить формат страницы во время выполнения?(jasperreport)
Я создал страницу отчета в формате A4 в iReport4.5 и использовать в java-приложении.
Как изменить формат A4 на A5 во время выполнения в приложении java?
1 ответов
прежде чем я покажу вам, как это сделать, обратите внимание, что просто изменение размера страницы, вероятно, не даст вам то, что вы хотите. Это сделает страницу больше или меньше в зависимости от того, что вы хотите, поместите позиционирование элементов не изменится. В вашем случае отчет может даже не компилироваться в зависимости от того, где у вас есть элементы.
у вас есть несколько вариантов, хотя:
- сначала вы можете создать второй отчет для формата A5, а затем на бегу время захватить соответствующий отчет в зависимости от того, что вы хотите. Это, вероятно, самое простое решение, но это означает, что вы в конечном итоге почти 2 одинаковых отчета. Любые изменения в будущем вам придется обойтись в двух местах.
- во-вторых, если это довольно прямой отчет с типичным макет вы можете использовать что-то вроде Динамический Джаспер для создания отчет в коде java.
- наконец, вы можете работать непосредственно против API отчета Jasper к создайте отчет во время выполнения.
Теперь отвечу на ваш вопрос. Сначала загрузите файл 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
вы можете установить размер страницы на то, что вы хотите. Бумага A5 от чего я могу сказать 5.83 "× 8.27". Чтобы преобразовать это в размер, который JasperReports понимает, умножьте каждый на 72, получив 420 x 596 (я округлил, поскольку мы должны установить целые числа).
design.setPageHeight(596);
design.setPageWidth(420);
отсюда cointinue на вашем экспорте приключений, как вы обычно.