java调用打印机接口

 时间:2024-10-15 02:53:06

1、新建一个窗口类,并实现Printable接口。本文以一条数据为例

java调用打印机接口
java调用打印机接口

2、实现Printable接口的print方法,使用Graphics2D相关绘制出打印的格式图片。

java调用打印机接口

3、使用PrinterJob开启打印进程,导出打印相关的pdf文件

java调用打印机接口
java调用打印机接口
java调用打印机接口

4、导出后的文件如图所示

java调用打印机接口

5、全部代码:import java.awt.BorderLayout;import java.awt.Color;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.print.PageFormat;import java.awt.print.Printable;import java.awt.print.PrinterException;import java.awt.print.PrinterJob;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JScrollPane;import javax.swing.JTable;public class Frame extends JFrame implements Printable, ActionListener { private Object[][] data = {{"100", "0.8", "0.1", "90"}}; //JTableb表头 private Object[] head = {"单价", "折扣", "税", "调整后价"}; //定义一个存放数据的JTable private JTable table = new JTable(data, head); //打印出一条记录的按钮 private JButton printBtn = new JButton("打印"); private JScrollPane scrollPane = new JScrollPane(table); //设置窗口的信息,添加各种面板按钮,及初始化按钮的监听器。 public Frame() { setSize(800, 600); //设置窗体大小位置 add(printBtn, BorderLayout.NORTH); add(scrollPane, BorderLayout.CENTER); printBtn.addActionListener(this); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } @Override public void actionPerformed(ActionEvent e) { //获取打印服务对象 PrinterJob job = PrinterJob.getPrinterJob(); job.setPrintable(Frame.this); //添加打印任务 try { job.print(); //执行打印任务 } catch (PrinterException e1) { e1.printStackTrace(); } JOptionPane.showMessageDialog(this, "导出打印pdf文件成功"); } @Override public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException { Graphics2D g = (Graphics2D) graphics; int x = (int)pageFormat.getImageableX(); int y = (int)pageFormat.getImageableY(); switch(pageIndex){ case 0: g.setColor(Color.RED); g.drawString("单价:" + table.getValueAt(0, 0), x + 100, y + 10); g.drawString("折扣:" + table.getValueAt(0, 1), x + 100, y + 30); g.drawString("税率:" + table.getValueAt(0, 2), x + 100, y + 50); g.drawString("单价:" + table.getValueAt(0, 3), x + 100, y + 70); return PAGE_EXISTS; default: return NO_SUCH_PAGE; } } public static void main(String[] args) { new Frame(); }}

  • qiyou联机宝如何充值
  • Windows server 2012如何更新网卡驱动程序
  • 台式机开机去除开机按F1键的方法
  • win10系统局域网看不到其他电脑怎么办
  • Windows XP取消设置不显示最后的用户名
  • 热门搜索
    感恩手抄报简单又漂亮 禁毒手抄报图片 关于消防的手抄报 语文手抄报内容 端午节手抄报资料 爱国手抄报图片 法律手抄报 清明节手抄报。 珍爱生命预防溺水手抄报 新学期新气象手抄报