如何获得Zebra打印机标签的宽度(以点为单位)?
I see that PrinterStatus
contains this property:
- (NSInteger) labelLengthInDots
描述如下:
标签的长度(以点为单位)。对于CPCL打印机,此值始终为0.
它非常适合以点状查找标签的长度,但我还需要以点为单位的标签宽度。是否可以以点形式获得标签的宽度?
答案 0 :(得分:1)
这将以点为单位返回标签的打印宽度:
NSError *getError;
NSString *width = [SGD GET:@"ezpl.print_width" withPrinterConnection:printerConnection error:&getError];
默认情况下,这是打印头的宽度。要以点为单位计算标签的宽度,您需要将其尺寸乘以打印机的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"];