`
chun521521
  • 浏览: 281766 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

java调用打印机

    博客分类:
  • java
阅读更多

 

网上转的,我自己测试着玩的。

 

package com.chengyi.common;

import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import usb.core.*;

public class Print extends JFrame implements ActionListener, Runnable {

 private static final long serialVersionUID = 2264172608765466416L;
 
 Thread readThread;
 JScrollPane p1;
 JTextField Text = new JTextField(10);
 JButton ok = new JButton("打印");
 JButton zou = new JButton("走纸");

 JTextArea area = new JTextArea(15, 10);
 JLabel l1 = new JLabel("Message:");

 JLabel l2 = new JLabel("         序号:");
 JLabel l3 = new JLabel("店号:");

 JTextField txtTitle = new JTextField(10);
 JTextField txtPhoNo = new JTextField(10);

 JLabel l4 = new JLabel("货号");
 JLabel l5 = new JLabel("商品");
 JLabel l6 = new JLabel("数量");
 JLabel l7 = new JLabel("金额");

 JTextField txtHouNo = new JTextField(10);
 JTextField txtHouName = new JTextField(10);
 JTextField txtNum = new JTextField(10);
 JTextField txtKin = new JTextField(10);

 JLabel l8 = new JLabel("共计:");
 JLabel l9 = new JLabel("件商品");
 JTextField txtGongji = new JTextField(10);

 JLabel l10 = new JLabel("现金:");
 JTextField txtXianjin = new JTextField(10);

 JLabel l11 = new JLabel("-------------------------------------------" + "-----------------------------------------------------");
 JLabel l12 = new JLabel("--------------------------------------------" + "----------------------------------------------------");

 JLabel l13 = new JLabel("--------------------------------------------" + "----------------------------------------------------");

 Print() {
  setTitle("POS测试");
  setVisible(true);
  setLayout(null);
  p1 = new JScrollPane(area);
  add(l1);
  l1.setBounds(35, 30, 100, 25);
  add(Text);
  Text.setBounds(100, 30, 150, 25);
  add(ok);

  ok.setBounds(270, 30, 80, 23);
  add(zou);
  zou.setBounds(370, 30, 80, 23);

  add(l11);
  l11.setBounds(35, 50, 400, 20);

  add(l2);
  l2.setBounds(35, 70, 100, 25);
  add(txtTitle);
  txtTitle.setBounds(100, 70, 100, 25);

  add(l3);
  l3.setBounds(250, 70, 50, 25);
  add(txtPhoNo);
  txtPhoNo.setBounds(300, 70, 100, 25);

  txtTitle.setText("002");
  txtPhoNo.setText("001");

  add(l4);
  l4.setBounds(35, 100, 50, 15);
  add(l5);
  l5.setBounds(150, 100, 100, 15);
  add(l6);
  l6.setBounds(275, 100, 50, 15);
  add(l7);
  l7.setBounds(400, 100, 50, 15);

  add(txtHouNo);
  txtHouNo.setBounds(35, 115, 50, 25);
  add(txtHouName);
  txtHouName.setBounds(150, 115, 100, 25);
  add(txtNum);
  txtNum.setBounds(275, 115, 50, 25);
  add(txtKin);
  txtKin.setBounds(400, 115, 50, 25);

  txtHouNo.setText("N2105");
  txtHouName.setText("还魄丹");
  txtNum.setText("1");
  txtKin.setText("0.50");

  add(l12);
  l12.setBounds(35, 140, 400, 20);

  add(l8);
  l8.setBounds(35, 165, 100, 25);
  add(txtGongji);
  txtGongji.setBounds(85, 165, 50, 25);
  add(l9);
  l9.setBounds(150, 165, 100, 25);

  add(l10);
  l10.setBounds(35, 190, 100, 25);
  add(txtXianjin);
  txtXianjin.setBounds(85, 190, 50, 25);
  txtGongji.setText("1");
  txtXianjin.setText("0.50");

  add(l13);
  l13.setBounds(35, 215, 400, 20);

  ok.addActionListener(this);
  zou.addActionListener(this);

  setSize(500, 500);
  setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  setResizable(false);
  setVisible(true);
  Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
  setLocation((screen.width - 400) / 2, (screen.height - 400) / 2);
  addWindowListener(new WindowAdapter() {
   public void windowClosing(WindowEvent e) {
    System.exit(1);
   }
  });
 }

 public void run() {
  try {
   Thread.sleep(2000);
  } catch (InterruptedException e) {
  }
 }

 public static void main(String[] args) {
  try {
   Host host = HostFactory.getHost();
   Bus[] bus = host.getBusses();
   int total_bus = bus.length;
   for (int i = 0; i < total_bus; i++) {
    Device root = bus[i].getRootHub();
    int total_port = root.getNumPorts();
    for (int j = 1; j <= total_port; j++) {
     Device device = root.getChild(j);
     if (device != null) {
      // USB操作
     }
    }
   }
  } catch (Exception e) {
   e.printStackTrace();
  }

  
  //new Print();
 }

 public void actionPerformed(ActionEvent e) {
  if (e.getSource() == ok) {

   try {
    FileWriter fw = new FileWriter("LPT1:");
    if (fw != null) {
     Text.setText("连接打印机成功! ");

     PrintWriter pw = new PrintWriter(fw);

     pw.print("\r\n");
     pw.print("      山 高 路 远 大 药 房");

     pw.print("\r\n");
     pw.print("------------------------------");
     pw.print("\r\n");

     pw.print("        序号:" + txtTitle.getText() + "   店号: " + txtPhoNo.getText());
     pw.print("\r\n");
     pw.print("货号    商品    数量    金额  ");
     pw.print("\r\n");
     pw.print("" + txtHouNo.getText() + "   " + txtHouName.getText() + "    " + txtNum.getText() + "    " + txtKin.getText());

     pw.print("\r\n");
     pw.print("共计:" + txtGongji.getText() + " 件商品 ");
     pw.print("\r\n");
     pw.print("现金:" + txtXianjin.getText());
     pw.print("\r\n");
     pw.print("------------------------------");
     pw.print("\r\n");

     setBondD(pw);
     pw.print("      欢 迎 再 次 光 临");
     pw.write(0x1c);
     pw.write(0x21);
     pw.write(0);
     pw.print("\r\n");
     pw.print("\r\n");
     pw.print("\r\n");
     pw.close();
    }

   } catch (IOException e1) {
    e1.printStackTrace();
    Text.setText("连接打印机失败!");
   }

  } else if (e.getSource() == zou) {
   try {
    FileWriter fw = new FileWriter("LPT1:");
    if (fw != null) {
     Text.setText("连接打印机成功! ");
     PrintWriter pw = new PrintWriter(fw);
     pw.print("\r\n");
     pw.print("\r\n");
     pw.close();
    }

   } catch (IOException e1) {
    e1.printStackTrace();
    Text.setText("连接打印机失败!");
   }
  }

 }

 public static void setBondD(PrintWriter pr) {
  pr.write(0x1c);
  pr.write(0x21);
  pr.write(8);
 }

 public static void setBondX(PrintWriter pr) {
  pr.write(0x1c);
  pr.write(0x21);
  pr.write(0);
 }

}

分享到:
评论
2 楼 woadaia 2015-01-26  
jar 要哪些子啊,能不能直接发我一份,qq 394305323 或者QQ邮箱
1 楼 deyangliningl 2011-12-29  

相关推荐

    java调用打印机指令实现

    使用java实现调用打印机动态指令打印条码。

    java调用打印机打印的相关教程

    ### Java调用打印机打印的相关教程 #### 一、Java打印API简介 Java打印API主要包含在`java.awt.print`包中。随着Java的发展,特别是从JDK 1.4开始,Java提供了更为丰富的打印支持,这主要体现在`javax.print`及其...

    java调用本地打印机

    在Java编程环境中,调用本地打印机是一项常见的任务,特别是在企业级应用中,如报表生成、文档打印等场景。本文将详细讲解如何利用Java API来实现这一功能,以及可能遇到的问题和解决方案。 首先,Java提供了`java....

    JAVA网络调用打印机工具类

    本工具类实现了这一需求,通过Java调用网络打印机来完成打印任务,并且支持自定义打印内容,如快递单号、发票等。本文将详细介绍该工具类的关键实现逻辑。 #### 二、核心功能 - **自动化打印**:根据用户订单信息...

    java 如何调用系统打印机打印文件

    java 如何调用系统打印机打印文件,也是从别人借鉴过来,免费的

    Java调用小票打印机打印小票

    在IT行业中,尤其是在开发零售或餐饮系统的背景下,Java调用小票打印机打印购物清单是一项常见的任务。这个过程涉及到几个关键的技术点,包括打印机驱动的处理、串口通信、文本格式化以及与硬件设备的交互。以下是对...

    java调用usb并口打印机.zip

    Java调用USB并口打印机是一项技术任务,涉及到Java编程、硬件接口通信以及打印技术。在本文中,我们将深入探讨如何通过Java实现这一功能,以及相关的技术细节。 首先,理解“并口”(LPT)是一种古老的接口,常用于...

    java调用实体打印机打印pdf文件

    在Java编程环境中,调用实体打印机来打印...总之,Java调用实体打印机打印PDF文件涉及到PDF处理库的使用、打印服务API的配置以及错误处理等多个环节。正确理解和运用这些知识点,可以帮助你构建一个可靠的PDF打印系统。

    java打印Excel(与打印机通信、jacob)

    Java打印Excel技术主要涉及到Java应用程序如何与打印机进行交互,以便将Excel文档的内容输出到纸质媒介上。在这个过程中,一个常见的第三方库是Jacob(Java COM Bridge),它为Java提供了与COM组件交互的能力,使得...

    纯java代码跨平台调用打印机打印word、pdf、图片等。

    4. **PDF和图片打印**:`PrintUtil.java`可能是实现打印逻辑的类,它包含了调用Java的`PrinterJob`和`PrintService`接口的方法。`PrinterJob.print()`方法用于实际的打印操作,它可以接收各种类型的图形对象(如...

    Java调用后台的打印机功能,直接复制可用

    Java原生的打印功能,连接打印机可直接代用代码打印,也可以出现文件选择框功能,选中文件再打印!

    用java编写打印机打印图片程序

    打印图片程序,里面有详细的语句注释;在pic.printjpg("filename.gif", "1");输入文件名"filename.gif" 和打印份数"1";

    Java实现斑马打印机ZPL指令打印,源码,可运行

    在Java环境下,我们可以编写程序来发送ZPL指令到斑马打印机,实现打印任务。本项目提供了可运行的源码,使得开发者无需依赖ts24.lib库就能处理中文和二维码打印。 首先,理解ZPL指令是实现斑马打印机打印的基础。...

    JAVA连接打印机打印小票

    总的来说,JAVA连接打印机打印小票涉及到硬件交互、网络编程和可能的本地库调用。理解和掌握这些知识点,能帮助开发者灵活应对不同场景下的小票打印需求。在实践中,记得不断调试和优化,以确保打印效果和效率。

    JAVA通过网络调用网络打印机的工具类

    - `paperW` 和 `paperH`: 分别表示打印纸张的宽度和高度,这些值可以通过调用打印机获取。 - `printType`: 打印类型,用于区分打印的是快递单还是发票。 - `map`: 存储打印所需的各种参数,如订单信息等。 ##### ...

    JAVA调用打印机打印代码

    如果你还在为看不懂java打印服务源码而发愁,请下载这个代码吧。此代码可以根据你的喜好打印不同的字体和图片,还可以根据打印机名自动区分打印机进行打印。代码里面的大小是根据 58mmPOS打印机设计的,已经对代码...

    java调用佳博条码机tsclib.zip

    佳博大部分条码打印机的编程接口包,如 GP-9134T条码打印机其他品牌的TSC系列打印机也可以;内含JAVA,JSP,等语言的样例;内含TSCLib.dll,TSC signed.ocx,TSCLIB.DLL 函数库使用说明.pdf,3120T说明书,GP-9035T...

    java实现打印功能代码

    java调用打印机实现word打印功能java调用打印机实现word打印功能

Global site tag (gtag.js) - Google Analytics