斑马iMZ320图像打印进纸过多问题

5

我正在尝试使用Link-OS SDK,通过XCode的GraphicsUtil类将图像发送到Zebra iMZ320打印机,用于iOS。

-(void)printImage:(UIImage *)image{

    NSString *serialNumber = @"";
    EAAccessoryManager *sam = [EAAccessoryManager sharedAccessoryManager];
    NSArray * connectedAccessories = [sam connectedAccessories];
    for (EAAccessory *accessory in connectedAccessories) {
        if([accessory.protocolStrings indexOfObject:@"com.zebra.rawport"] != NSNotFound){
            serialNumber = accessory.serialNumber;
            break;
        }
    }
    self.connection = [[MfiBtPrinterConnection alloc] initWithSerialNumber:serialNumber];
    NSError *error = nil;

    BOOL success = [self.connection open];

    self.printer = [ZebraPrinterFactory getInstance:self.connection error:&error];

    //Set the device language to zpl or the image prints its HEX value
    [SGD SET:@"device.languages" withValue:@"zpl" andWithPrinterConnection:self.connection error:&error];

    id<GraphicsUtil, NSObject> graphicsUtil = [self.printer getGraphicsUtil];

    success = [graphicsUtil printImage:[image CGImage] atX:0 atY:0 withWidth:200 withHeight:200 andIsInsideFormat:NO error:&error];


}

图片可以正确打印,但是打印机在打印图片之前会送出大约9英寸的空白纸。我尝试将“media.tof”变量设置为0,并尝试发送SETFF 50 2命令,但没有成功。有什么提示吗?谢谢!

Xcode只是一个集成开发环境 - 你是在谈论iOS还是Mac OS X? - Paul R
那将是针对iOS的。 - Stephane M.
好的 - 我已经为您添加了一个iOS标签 - 对于将来的问题,您可能希望更清楚地了解平台,因为正如注意到的那样,Xcode只是一个IDE。 - Paul R
@StephaneM. 您能告诉我如何使用斑马打印机打印图像吗?我正在尝试下载link-ios sdk,但无法下载。如果可能的话,您也可以分享链接。 - Funny
当使用黑标纸并遇到黑标后,纸张会向前进几英寸,我正在面临问题。 - SweetWisher ツ
2个回答

15

通常这是Zebra打印机配置的问题。 Zebra打印机可以设置为连续模式(用于打印收据)或标签模式(用于打印标签)。 此外,在设置为标签模式时,打印机可能正在寻找黑色条以分隔标签或标签之间的间隙。 因此,最重要的问题是:您使用的是什么类型的介质?

连续“收据”纸 -

如果您使用的是连续纸张,您需要提前设置打印作业的标签长度。 您还需要指示您正在使用连续介质。 您可以发送这些命令来执行:

! U1 setvar "ezpl.media_type" "continuous"
! U1 setvar "zpl.label_length" "500"

黑色条纹标签 -

如果您正在使用黑色条纹标签,则需要将以下 SGD 命令发送到打印机:

! U1 setvar "ezpl.media_type" "mark"

标签之间有间隔 -

如果您使用的是标签之间有间隔的标签,需要发送以下 SGD 命令:

! U1 setvar "ezpl.media_type" "gap/notch"

(请注意上面的命令是使用!U1 SGD符号表示的。您可以在代码中看到,只需使用SDK“SGD”调用即可实现相同的效果)


已经成功地处理了连续媒体和标签长度。非常感谢! - Stephane M.
我在使用黑标纸时遇到了问题,遇到黑标后,纸张会向前进几英寸。这是在Android中发生的。我已经实现了这个命令 - SweetWisher ツ
你好@StephaneM。我该如何向打印机发送命令?我遇到了与你完全相同的问题。 - benhi
您可以下载“Zebra设置实用程序” - 一个可以让您通过USB或以太网向打印机发送命令的程序:https://www.zebra.com/us/en/products/software/barcode-printers/zebralink/zebra-setup-utility.html。如果您的打印机在网络上,您可以使用putty并直接将命令发送到端口9100(如果是移动打印机,则为6101)。 - jason.zissman

1
我不能发表评论,但我必须在这里补充一点。据我所知,被接受的答案不是保存在打印机中的参数。每次重新启动打印机时都会重置。
要使上述方法起作用,您需要每次开机并连接到打印机时发送setvar命令,否则它将被重置。
至少在运行固件V73.19.13Z(目前的最新版本)的Zebra iMZ220上发现这是真实的。
我还注意到,您可以使用Zebra Config实用程序(v1.1.9.1122)配置媒体类型。在“配置打印机设置”下,您可以设置日志/黑标/间隙感应器。您还可以设置打印后的进纸长度。但是,如果您保存该文件并将其发送到打印机,并查看配置文件,则其中没有媒体类型或进纸长度的配置。
Zebra支持尚未能够认识到他们存在问题或指出解决方案。:/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接