如何使用其打印选项在Eclipse RCP中打印jasper报告?

yay*_*ho3 4 eclipse printing rcp jasper-reports

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

yay*_*ho3 5

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

  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);
Run Code Online (Sandbox Code Playgroud)