ave*_*496 1 java swing jasper-reports
最近,我使用最新的jasper-reports lib更新了我的项目。有一个新的JRViewer类(net.sf.jasperreports.swing)代替了旧的类(net.sf.jasperreports.view)。现在我不知道如何设置导出选项。旧代码就像:
JRPdfSaveContributor pdf = new JRPdfSaveContributor(locale, resBundle);
JRRtfSaveContributor rtf = new JRRtfSaveContributor(locale, resBundle);
JRSingleSheetXlsSaveContributor xls = new JRSingleSheetXlsSaveContributor(locale, resBundle);
JRDocxSaveContributor docx = new JRDocxSaveContributor(locale, resBundle);
viewer.setSaveContributors(new JRSaveContributor[] { pdf, rtf, xls, docx });
Run Code Online (Sandbox Code Playgroud)
您必须扩展net.sf.jasperreports.swing.JRViewer并将导出贡献者设置为JRViewerToolbar。像这样:
public class MyJRViewer extends JRViewer {
//define the constructor that you use
public MyJRViewer(JasperPrint jasperPrint) {
super(jasperPrint);
}
@Override
protected JRViewerToolbar createToolbar() {
JRViewerToolbar toolbar = super.createToolbar();
Locale locale = viewerContext.getLocale();
ResourceBundle resBundle = viewerContext.getResourceBundle();
JRPdfSaveContributor pdf = new JRPdfSaveContributor(locale, resBundle);
JRRtfSaveContributor rtf = new JRRtfSaveContributor(locale, resBundle);
JRSingleSheetXlsSaveContributor xls = new JRSingleSheetXlsSaveContributor(locale, resBundle);
JRDocxSaveContributor docx = new JRDocxSaveContributor(locale, resBundle);
toolbar.setSaveContributors(new JRSaveContributor[] {pdf, rtf, xls, docx});
return toolbar;
}
}
Run Code Online (Sandbox Code Playgroud)