获得Zebra打印机标签的宽度(以点为单位)?

时间:2016-04-03 00:49:04

标签: ios objective-c printing zebra-printers

如何获得Zebra打印机标签的宽度(以点为单位)?

I see that PrinterStatus contains this property

- (NSInteger) labelLengthInDots

描述如下:

  

标签的长度(以点为单位)。对于CPCL打印机,此值始终为0.

它非常适合以点状查找标签的长度,但我还需要以点为单位的标签宽度。是否可以以点形式获得标签的宽度?

2 个答案:

答案 0 :(得分:1)

这将以点为单位返回标签的打印宽度:

NSError *getError;
NSString *width = [SGD GET:@"ezpl.print_width" withPrinterConnection:printerConnection error:&getError];

enter image description here 默认情况下,这是打印头的宽度。要以点为单位计算标签的宽度,您需要将其尺寸乘以打印机的dpi。我的打印机是230 dpi,带有3英寸宽的标签,因此它的点宽为690.

我需要使用SGD SET将print_width设置为690。

[SGD SET:@"ezpl.print_width" withValueAsInt:690 andWithPrinterConnection:connection error:error];

答案 1 :(得分:0)

我无法在常规界面中找到它,但是如果您获得Link OS界面,然后获得设置,它就在那里:

Zebra.Sdk.Comm.TcpConnection tcpConn = new Zebra.Sdk.Comm.TcpConnection(ipAddress, 9100);
tcpConn.Open();

var instance = Zebra.Sdk.Printer.ZebraPrinterFactory.GetInstance(tcpConn);
var stat = instance.GetCurrentStatus();
var printer = Zebra.Sdk.Printer.ZebraPrinterFactory.CreateLinkOsPrinter(instance);
// If we have got this far the connection is successful.

var settings = printer.GetAllSettings();
var pw = settings["ezpl.print_width"];