4

XCode for iOS の GraphicsUtil クラスを使用して、Link-OS SDK を使用して画像を Zebra iMZ320 プリンターに送信しようとしています。

-(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」var を 0 に設定しようとし、SETFF 50 2 コマンドを送信しようとしましたが、うまくいきませんでした。ヒントはありますか?ありがとう!

4

2 に答える 2

14

これは通常、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」呼び出しを使用するだけで同じ効果が得られます)

于 2013-10-15T23:12:30.363 に答える
0

コメントはできませんが、ここに追加する必要があります。私の知る限り、受け入れられた回答は、プリンターに保存されるパラメーターではありません。プリンターの電源を入れ直すたびにリセットされます。

上記の方法を機能させるには、電源を入れてプリンターに接続するたびに setvar コマンドを送信する必要があります。そうしないと、プリンターがリセットされます。

これは、ファームウェア V73.19.13Z (現在最新バージョン) を実行している Zebra iMZ220 で少なくとも当てはまることがわかっています。

また、Zebra Config Utility (v1.1.9.1122) を使用してメディア タイプを構成できることにも注意しました。ここの「プリンター設定の構成」の下で、ジャーナル/ブラックマーク/ギャップセンスを設定できます。印刷後に送り長さを設定することもできます。しかし、ファイルを保存してプリンターに送信し、構成ファイルを見ると、メディアの種類や送りの長さの構成がありません。

Zebra サポートは、問題があることや解決策を指摘していることをまだ認識できていません。:/

于 2016-01-13T22:38:04.263 に答える