отображение действительно огромных изображений в отчетах яшмы - PullRequest
2 голосов
/ 05 мая 2010

Мое java-приложение генерирует изображение (в основном, диаграмму организации) для отчета о яшме. Поскольку диаграммы org идут, нет никакого способа определить окончательный размер выходного изображения. Также вывод изображения может стать слишком большим, что обрезка изображения бесполезна.

Возможно ли даже иметь отчет о яшме для динамического изменения размера элемента изображения без разделения изображений?

Ответы [ 2 ]

1 голос
/ 05 мая 2010

Попробуйте это:

<image scaleImage="ReatinShape" hAlign="Center"> 
    <reportElement x="100" y="150" width="600" height="150"/> 
    <graphicElement/> 
    <imageExpression class="net.sf.jasperreports.engine.JRRenderable">
     <![CDATA[new com.onbarcode.barcode.jasper.JasperRenderer(yourImage)]]></imageExpression> 
</image>
0 голосов
/ 05 мая 2010

Я сам не проверял это, но оно должно работать. Получите элемент изображения из дизайна, измените его размер, затем скомпилируйте измененный дизайн.

BufferedImage img = ImageIO.read(new File(wo_image_path));
height = img.getHeight();
width = img.getWidth();         
jasperSubDesign = JasperManager.loadXmlDesign(context.getRealPath("/WEB-INF/reports/decoration_sheet_header.jrxml"));

JRDesignImage image = (JRDesignImage)jasperSubDesign.getPageHeader().getElementByKey("wo_image");

image.setX(3);
image.setY(69);
image.setHeight(new Long(height - Math.round(height*.35)).intValue());
image.setWidth(new Long(width - Math.round(width*.35)).intValue());

JasperCompileManager.compileReportToFile(jasperSubDesign, context.getRealPath("/WEB-INF/reports/decoration_sheet_header.jasper"));

С Джасперфордж

...