3

问题:如何毫不拖延地打印(多张)收据?

据我所知,在 OSX 或 iOS 设备上使用 T88V 打印至少有 3 个选项。不幸的是,所有这三个选项都有缺陷。

选项 1:我一直在使用官方 OSX 驱动程序(最新版本 1.2a)并且使用它打印没有问题。但是,在每个打印命令之间,有 1 秒的延迟。

- (IBAction)button1:(id)sender
{
    [self TMAppPrint];
}

- (OSStatus)TMAppPrint
{   
    TMTextView *textWindow = [[TMTextView alloc] init];
    NSPrintInfo *printInfo = [NSPrintInfo sharedPrintInfo];

    OSStatus err = noErr;

    err = [TMPrintSupport TMSetJobTicket:printInfo printerName:@"TM-T88V" documentSize:NSMakeSize(204.0, 841.8) resolution:@"180x180dpi" speed:@"1" blank:@"Off" paperCut:@"DocFeedCut" chashDrwr1:@"Off" chashDrwr2:@"Off" buzzerControl:@"Off" buzzerPattern:@"Internal" buzzerRepeat:@"1"];

    NSPrintOperation *printOperation = [NSPrintOperation printOperationWithView:textWindow printInfo:printInfo];
    [printOperation setCanSpawnSeparateThread:YES];
    [printOperation setShowsPrintPanel:NO];
    [printOperation runOperation];

    return err;
}

选项 2:使用 iOS SDK(最新版本 1.3.0)我也可以毫无问题地打印,但情况更糟。发送打印命令后,将有 1 秒的延迟直到打印。

- (IBAction)button2:(id)sender
{
    if (printer != nil)
    {
        errorStatus = EPOS_OC_SUCCESS;
        if (builder != nil)
        {
            int printStatus = EPOS_OC_SUCCESS;

            // create a print document
            printStatus = [builder addTextLang: EPOS_OC_LANG_EN];
            printStatus = [builder addTextSmooth: EPOS_OC_TRUE];
            printStatus = [builder addTextFont: EPOS_OC_FONT_A];
            printStatus = [builder addTextSize: 1 Height: 1];
            printStatus = [builder addTextStyle: EPOS_OC_FALSE Ul: EPOS_OC_FALSE Em: EPOS_OC_TRUE Color: EPOS_OC_PARAM_UNSPECIFIED];

            // specify the print data>
            printStatus = [builder addText: @"hello!\n"];
            printStatus = [builder addCut: EPOS_OC_CUT_FEED];

            // send data>
            errorStatus = [printer sendData:builder Timeout:1000 Status: &status];

            // end communication with the printer>
            errorStatus = [printer closePrinter];
        }
    }
}

选项 3:最后一个选项是使用 ESC/POS 命令。我设法让它打印了一些基本的行,但我仍然不明白其中的大部分内容。不过打印没有延迟。

- (IBAction)button3:(id)sender
{   
    printer = [[EposPrint alloc] init];
    errorStatus = [printer openPrinter:EPOS_OC_DEVTYPE_TCP DeviceName:@"192.168.1.168"];
    builder = [[EposBuilder alloc] initWithPrinterModel:@"TM-T88V" Lang:EPOS_OC_MODEL_ANK];
}

我已经直接向爱普生询问过这个问题,但他们无法给我任何答案,除非它按预期工作......这意味着我必须深入研究 ESC/POS 命令并学习它,还是还有其他选择?

4

0 回答 0