3
我花了很多時間瞭解如何在Zebra打印機上(通過網絡)使用CPCL打印PCX圖像,而無需將圖像下載到打印機。使用CPCL在Zebra打印機上打印PCX圖像
在我看來,文檔上的示例很模糊。
我附上一個示例類,以顯示如何簡單地打印圖像。 它需要在你的類路徑上有一個「zebra.pcx」圖像。
希望它有幫助。
我花了很多時間瞭解如何在Zebra打印機上(通過網絡)使用CPCL打印PCX圖像,而無需將圖像下載到打印機。使用CPCL在Zebra打印機上打印PCX圖像
在我看來,文檔上的示例很模糊。
我附上一個示例類,以顯示如何簡單地打印圖像。 它需要在你的類路徑上有一個「zebra.pcx」圖像。
希望它有幫助。
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Socket;
public class PrintZebraPCXImage {
public static void main(String[] args) throws Exception {
PrintZebraPCXImage instance = new PrintZebraPCXImage();
instance.print("192.168.1.133", 6101);
}
public void print(String address, int port) throws Exception {
Socket socket = null;
DataOutputStream stream = null;
socket = new Socket(address, port);
try {
stream = new DataOutputStream(socket.getOutputStream());
ByteArrayOutputStream bos = readFileToString(this.getClass().getClassLoader().getResourceAsStream("zebra.pcx"));
stream.writeBytes("! 0 200 200 300 1\r\n");
stream.writeBytes("PCX 20 0\r\n");
stream.write(bos.toByteArray());
stream.writeBytes("PRINT\r\n");
} finally {
if (stream != null) {
stream.close();
}
if (socket != null) {
socket.close();
}
}
}
public ByteArrayOutputStream readFileToString(InputStream is) {
InputStreamReader isr = null;
ByteArrayOutputStream bos = null;
try {
isr = new InputStreamReader(is);
bos = new ByteArrayOutputStream();
byte[] buffer = new byte[2048];
int n = 0;
while (-1 != (n = is.read(buffer))) {
bos.write(buffer, 0, n);
}
return bos;
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
if (isr != null) {
try {
isr.close();
} catch (IOException e) {
}
}
if (is != null) {
try {
is.close();
} catch (IOException e) {
}
}
}
}
}