描述
最近在研究Java连接打印的方法,无脑百度了一番,发现有很多都是这样的模式。
根据java.awt中提供的一些打印的API,要实现打印,首先要获得打印对象,然后继承Printable实现接口方法print,以便打印机进行打印,最后用用Graphics2D直接输出直接输出。
— 优快云 @戴新美
对于这样的方式,不是太懂,有的代码运行起来,会弹出一个面板选择任务,着实不便。但是无意间看到了一个 Android 的实现方式,让我眼前一亮,这不就是我想要的 ‘滑板鞋’ 么,哈哈,运行起来,打印机立马就有了反应。给我打开了另一扇门。立马记录下来权当是笔记吧,也可以给大家另一种思路。
源码
package com.example.printertest;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.Socket;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @ POS小票打印机 网口无驱打印
*
*调用方法 new PrintLine().print(list,map,string);
* @author Btboy1978 QQ: 138027869
*
*/
public class PrintLine {
static String PRINT_IP = "192.168.1.254";
static int PRINT_PORT = 9100;
Socket socket = null;
OutputStream socketOut = null;
OutputStreamWriter writer = null;
String[] Colum_Name = new String[] { "ID", "菜名", "份数", "小计金额" };// 设定小票列标题
/**
* @throws IOException
*
*/
public PrintLine() throws IOException {
// TODO Auto-generated constructor stub
// 建立打印机连接
//
socket = new Socket(PRINT_IP, PRINT_PORT);
socketOut = socket.getOutputStream();
writer = new OutputStreamWriter(socketOut, "GBK")