彩票走势图

【Stimulsoft Reports Java教程】从Java打印报表翻译

翻译|使用教程|编辑:李爽夏|2018-11-15 13:41:53.000|阅读 575 次

概述:此示例显示如何将报表从Java打印到指定的打印机(Swing)。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

下载Stimulsoft Reports Java最新版本

此示例显示如何将报表从Java打印到指定的打印机(Swing)。

首先,创建JFrame并设置必要的选项。

public static void main(final String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            try {
                JFrame frame = new JFrame();
                frame.add(new Printing(frame));
                frame.setSize(FRAME_SIZE);
                frame.setLocationRelativeTo(null);
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setVisible(true);
            } catch (Throwable e) {
                StiExceptionProvider.show(e, null);
            }
        }
    });
}

接下来,在主面板上添加打印按钮。 作为操作,我们将打印报告定义为默认打印机。

JButton button = new JButton("Print");
leftPanel.add(button);
button.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        StiReport report = getReport();
        PrinterJob printerJob = StiPrintHelper.preparePrinterJob(report.getRenderedPages());
        try {
            StiPrintHelper.printJob(printerJob, report, true);
        } catch (PrinterException pe) {
            StiExceptionProvider.show(pe, null);
        }
    }
});

接下来,添加用于选择打印机的元素和用于将报告打印到所选打印机的按钮。

final JComboBox printerList = new JComboBox(PrintServiceLookup.lookupPrintServices(null, null));
rightPanel.add(printerList);
printerList.setSelectedIndex(0);
button = new JButton("Print");
rightPanel.add(button);
button.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        StiReport report = getReport();
        PrinterJob printerJob = StiPrintHelper.preparePrinterJob(report.getRenderedPages());
        try {
            AttributeSet attr_set = new HashAttributeSet();
            PrintService printService = (PrintService) printerList.getSelectedItem();
            attr_set.add(new PrinterName(printService.getName(), null));
            PrintService[] services = PrintServiceLookup.lookupPrintServices(null, attr_set);
            printerJob.setPrintService(services[0]);
            StiPrintHelper.printJob(printerJob, report);
        } catch (Exception e1) {
            StiExceptionProvider.show(e1, parentFrame);
        }
    }
});

我们还需要加载报告以进行打印。 我们使用SimpleList报告 - 加载它并将Demo数据库添加到报告对象。 在这些操作呈现报告之后。

private StiReport getReport() {
    if (report == null) {
        try {
            String demoDir = "Data/";
            StiXmlDatabase xmlDatabase = new StiXmlDatabase("Demo", demoDir + "Demo.xsd", demoDir + "Demo.xml");
            StiReport renderReport = StiSerializeManager.deserializeReport(new File("Reports/SimpleList.mrt"));
            renderReport.getDictionary().getDatabases().add(xmlDatabase);
            renderReport.setCalculationMode(StiCalculationMode.Interpretation);
            renderReport.Render(false);
            report = renderReport;
        } catch (Exception e) {
            StiExceptionProvider.show(e, null);
        }
    }
    return report;
}

在下面的屏幕截图中,您可以看到示例代码的结果。

购买Stimulsoft正版授权,请点击“”哟!


标签:报表Java报表控件Stimulsoft

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP