【问题标题】:how to print jasper report in Eclipse RCP using its print option?如何使用其打印选项在 Eclipse RCP 中打印碧玉报告?
【发布时间】:2011-12-15 20:07:17
【问题描述】:

我的问题:我在 Eclipse RCP 应用程序中有一个 ViewerComposite,它显示集成到其中的 Jasper Report (*.jrxml)。此 ViewerComposite 中显示的报告可以导出为 PDF、RTF、XML、jrxml、HTML、CSV 等。一切都很好,除了我无法使用 GUI 中 ViewerComposite 顶部提供的打印选项打印此报告。如何使用报表查看器的打印选项使用我的默认打印机打印报表。 Rem:我可以使用 Oracle JDeveloper Projects 中 jasper 报表查看器组合的打印选项打印 jasper 报表,而无需添加任何代码(默认情况下)。

【问题讨论】:

  • 我在 4 小时后自己解决了我的问题。我已经在下面发布了答案。

标签: eclipse printing jasper-reports rcp


【解决方案1】:

在 Eclipse RCP 应用程序中制作 Jasper 报告的最佳方法如下:

  1. 先用 SWT/AWT 复合和 JRViewer (net.sf.jasperreports.view.JRViewer) 替换 ViewerComposite(即 com.jasperassistant.designer.viewer.ViewerComposite.ViewerComposite)。
  2. 将生成的 JasperPrint 文档设置到 JRViewer 对象上。
  3. 将 JRViewer 对象添加到此 SWT/AWT 组合的 ContentPane 中。
  4. 运行报告并检查是否将报告数据打印并导出为允许的格式,即(.PDF、.ODT、.docx、.jrxml、。 jasper、.xml、.html、.xls 等);一切都会好起来的。

具体代码如下:

//generate the jaspser print document
JasperPrint jprint = generateReport(id, nepFromDate, nepToDate);

//initialize JRViewer object 
JRViewer jasperviewer = new JRViewer(jprint);

//add the SWT_AWT compposite for SWING contents of GUI              
final Composite swtAwtComposite = new Composite(comTBReport, SWT.EMBEDDED);
swtAwtComposite.setBounds(10, 0, 767, 600);

Frame frame = SWT_AWT.new_Frame(swtAwtComposite);

Panel panel = new Panel();
frame.add(panel);
panel.setLayout(new BorderLayout(0, 0));

JRootPane rootPane = new JRootPane();
rootPane.setSize(767, 600);
panel.add(rootPane);

//Define a container yourself
Container c = rootPane.getContentPane();

//Add the JRViewer object onto the container to render in GUI
c.add(jasperviewer);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 2021-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多