Swift 使用端口9100上的插槽将图像发送到打印机
我目前能够使用Swift将文本发送到打印机(如爱普生TM20-II)。打印机接收数据并打印,没有任何问题。(为此,我用UTF-8编码我的字符串) 套接字的自定义类:Swift 使用端口9100上的插槽将图像发送到打印机,swift,sockets,printing,swift2,Swift,Sockets,Printing,Swift2,我目前能够使用Swift将文本发送到打印机(如爱普生TM20-II)。打印机接收数据并打印,没有任何问题。(为此,我用UTF-8编码我的字符串) 套接字的自定义类: class OutSocket { var addr: String var port: Int var task: NSURLSessionStreamTask! init(host: String, port: Int){ print("init") self.
class OutSocket {
var addr: String
var port: Int
var task: NSURLSessionStreamTask!
init(host: String, port: Int){
print("init")
self.addr = host
self.port = port
setupConnection()
}
func setupConnection() {
print("setup")
let session = NSURLSession(configuration: .defaultSessionConfiguration())
task = session.streamTaskWithHostName(addr, port: port)
self.task.resume()
}
func send(data: NSData) {
self.task.writeData(data, timeout: 5.0) { (error) in
if error == nil {
print("Data sent")
} else {
print("Nope")
}
}
}
}
我是这样使用它的:
let socket = OutSocket(host: "192.168.1.42", port: 9100)
socket.send((itemText + "\n").dataUsingEncoding(NSUTF8StringEncoding)!)
我可以向打印机发送图像,但它只打印数据字符。
如何打印图像而不是数据字符
我看到了Epson SDK,但我希望它能与任何支持TCP/IP打印的打印机配合使用。我试图用base64编码我的图像,但仍然没有打印图像
代码如下:
let socket = OutSocket(host: "192.168.1.42", port: 9100)
let image = UIImage(named: "name-logo")
let imgData = UIImagePNGRepresentation(image!)
let imgEncoded = imgData!.base64EncodedDataWithOptions(.Encoding64CharacterLineLength)
socket.send(imgEncoded)
提前感谢,如果您使用爱普生打印机,您可以搜索爱普生ePos SDK。否则,如果您自己打印图像,则必须将图像转换为Base64编码字符串。如果您使用Epson打印机,则可以搜索Epson ePos SDK。否则,如果您自己打印图像,则必须将图像转换为Base64编码字符串。