最近我用最新的 jasper-reports 库更新了我的项目。 有一个新的 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 });
最佳答案
您必须扩展 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;
}
}
关于java - 如何设置 JRViewer 导出选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47349042/