2013-10-15 47 views
3

我正嘗試使用Link-OS SDK將圖像發送到使用XCode for iOS中的GraphicsUtil類的Zebra iMZ320打印機。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英寸的空白紙。 I tried to set the "media.tof" var to 0 and tried to send the SETFF 50 2 command,沒有運氣。任何提示?謝謝!

+0

Xcode只是一個IDE - 你在說這裏的iOS或Mac OS X嗎? –

+0

這將適用於iOS。 –

+0

好的 - 我現在已經爲你添加了一個'iOS'標籤 - 對於未來的問題你可能想要更清楚的瞭解平臺,因爲如上所述,Xcode只是一個IDE。 –

回答

11

這通常是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'調用,就像您在代碼中看到的一樣,以實現相同的效果)

+0

瞭解它與連續媒體和標籤長度一起工作。非常感謝 ! –

+0

使用黑色標記紙張時遇到問題,遇到黑色標記時紙張會進入幾英寸。僅供參考,它在Android中。我已執行[此命令](http://pastie.org/9761876) –

+0

Hello @StephaneM。如何將命令發送到打印機?我有和你一樣的問題。 – benhi

0

我無法評論,但我必須在此添加此項。據我所知,接受的答案不是保存在打印機中的參數。每次打開打印機電源後都會重置。

要具備上述方法工作,你需要在每次開機並連接到打印機的時間發送SETVAR命令,否則將被重置。

這至少是發現與斑馬iMZ220運行固件V73.19.13Z(目前最新版本)真。

我還注意到,您可以使用Zebra Config Utility(v1.1.9.1122)配置介質類型。在「配置打印機設置」下,您可以設置日記/黑標/間隙感。您也可以在打印後設置進紙長度。但是如果您保存文件並將其發送到打印機並查看配置文件,那麼在那裏沒有配置介質類型或進紙長度。

斑馬技術支持尚未能夠識別他們有問題或指向解決方案。 :/