如何制作和连接具有上传、设置页眉和页脚报告的Java swing程序
Posted
技术标签:
【中文标题】如何制作和连接具有上传、设置页眉和页脚报告的Java swing程序【英文标题】:How to make and connect the Java swing program that has uploading, setting header and footer report 【发布时间】:2012-12-07 17:49:39 【问题描述】:我正在 Java Swing 中开发一个应用程序。我在我的应用程序中使用 JasperReports 和 iReport。
我已经成功地在 JasperReports 和数据库之间建立了连接,并且还加载了 jrxml 文件。
我的问题是,在完成我的应用程序的开发后,我希望应用程序的用户能够设置他们的徽标,可以更改他们的页眉和页脚。我可以做到这一点的一种方法是创建一个用户界面,它是一个 JFrame,它具有上传图像选项 + 更改报告的页眉和页脚。但是如何将我的 JFrame 组件与 JR 报告联系起来,以便在我的 JFrame 组件中所做的更改应该反映在报告中?
【问题讨论】:
你的问题不是很清楚。您如何在报告中设置图像(即硬编码路径,您将图像字节作为参数传递等)?您将客户选择的上传图片存储在哪里? 是的,但是去哪里?它在您的数据库中,是否在某处的文件服务器上?就此而言,您是在服务器上生成报告并将其发送到客户端,还是在客户端生成? 是的,我将徽标保存在数据库中,它是客户端应用程序,而不是客户端服务器应用程序 先生,我在等你的回复 @ZaheerBoovaji 例如,您可以使用 JasperReports API 或 DynamicJasper API 【参考方案1】:我假设“上传”的意思是将图像保存在服务器计算机的硬盘中的特定路径中,然后将该路径保存在数据库中。
将上传的图片转换为InputStream
String imgPath = "[path_of_uploaded_image_here]";
BufferedImage image = ImageIO.read(new File(imgPath));
ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(image, "gif", os);
InputStream is = new ByteArrayInputStream(os.toByteArray());
将转换后的图像作为参数传递给jasperreport。(此处参数名称为ENTITY_IMAGE)
在 iReport 中,创建一个参数。该参数的数据类型应为java.io.InputStream
拖动图像。转到图像属性。在图像属性下,将 Expression Class 的值更改为 java.io.InputStream
,然后将 Image Expression 更改为 $PENTITY_IMAGE。
【讨论】:
以上是关于如何制作和连接具有上传、设置页眉和页脚报告的Java swing程序的主要内容,如果未能解决你的问题,请参考以下文章