2013-10-15 5 views
3

iOS 용 XCode의 GraphicsUtil 클래스를 사용하여 Zebra iMZ320 프린터로 이미지를 보내려는 경우 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 인치의 빈 용지를 급지합니다. 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

OK - 지금 Xcode가 IDE 일 뿐이므로 플랫폼에 대해 더 명확하게하고자하는 질문에 대해서는'iOS' 태그를 추가했습니다. –

답변

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에 있습니다. [this command] (http://pastie.org/9761876) –

+0

Hello @StephaneM을 구현했습니다. 프린터에 명령을 보내려면 어떻게해야합니까? 나는 너와 똑같은 문제가있다. – benhi

0

여기에 추가해야하지만 여기에 추가해야합니다. 필자가 아는 한 대답은 프린터에 저장된 매개 변수가 아닙니다. 프린터의 전원을 껐다 켤 때마다 재설정됩니다.

위의 방법을 사용하려면 전원을 켜고 프린터에 연결할 때마다 setvar 명령을 보내야합니다. 그렇지 않으면 재설정됩니다.

Zebra iMZ220에서 펌웨어 V73.19.13Z (현재 최신 버전)를 실행하면이 사실이 발견됩니다.

또한 Zebra 구성 유틸리티 (v1.1.9.1122)를 사용하여 용지 유형을 구성 할 수 있다고 언급했습니다. 여기서 "프린터 설정 구성"에서 저널/블랙 마크/간격 감지를 설정할 수 있습니다. 인쇄 후 용지 길이를 설정할 수도 있습니다. 하지만 파일을 저장하고 프린터로 보내면 설정 파일을 보면 거기에 미디어 유형이나 피드 길이에 대한 설정이 없습니다.

Zebra 지원은 아직 문제가 있거나 해결 방법을 가리키고 있음을 인식하지 못했습니다. :/