2011-12-13 95 views
4

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

+0

我解决我的问题我就做什么,4小时后。我已经发布了下面的答案。 – yayayokoho3

回答

5

我,使我的碧玉,最好的方法报告在Eclipse RCP应用程序如下:

  1. 更换ViewerComposite(即com.jasperassistant.designer.viewer.ViewerComposite.ViewerComposite)的SWT/AWT复合和JRViewer(net.sf.jasperreports.view.JRViewer)。
  2. 将生成的JasperPrint文档设置到JRViewer对象上。
  3. 将JRViewer对象添加到此SWT/AWT组合的ContentPane中。
  4. 运行报告并检查打印和报表数据导出到允许的格式,即(.PDF,的.odt,.DOCX,的.jrxml,开发文件, .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);