問題: 遅滞なく (複数の) 領収書を印刷するにはどうすればよいですか?
私の知る限り、OSX または iOS デバイスで T88V を使用して印刷するには、少なくとも 3 つのオプションがあります。残念ながら、これら 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];
}
すでにエプソンに直接問い合わせたのですが、意図したとおりに動作していること以外は何も答えてもらえませんでした。