此示例显示如何将 告从 Java 打印到指定的打印机 (Swing)。
此示例显示如何将 告从 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” 告 – 加载它并将演示数据库添加到 告对象。在这些操作呈现 告之后:
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;}
在下面的屏幕截图中,您可以看到示例代码的结果:

Aspose、E-iceblue、FastReport、Stimulsoft等文档/ 表图表类开发工具享超低折扣,如有需要可直接联系在线客服。
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!