Печатные бланки TCP Socket Connection - PullRequest
1 голос
/ 09 января 2020

У меня есть принтер этикеток, Brady i3300 , к которому я подключаюсь со своего iPad через tcp-сокет (с использованием CocoaAsyncSocket фреймворка). Каждый раз, когда я отправляю данные на принтер, он печатает, но этикетка всегда пуста.

Процесс

Сначала я запускаю connectToPrinter, и делегат didConnectToHost срабатывает. После успешного подключения я звоню printLabelToPrinter, куда на принтер отправляются данные. Делегат didWriteDataWithTag вызывается сразу после этого, принтер начинает / заканчивает печать, , но этикетка пуста.

Пока не имеет значения, какое содержимое находится в файле данных ( поясняется ниже), поэтому это похоже на проблему с подключением ... В любом случае принтер, похоже, получает запрос без каких-либо данных вместе с ним.

Почему принтер печатает пустые этикетки?


Код и файлы

Вот мои настройки подключения:

- (void)connectToPrinter {

    // Create the socket
    self.socket = [GCDAsyncSocket.alloc initWithDelegate:self delegateQueue:dispatch_get_main_queue()];

    // Connect to the printer via IP and port
    NSError *err = nil;
    if (![self.socket connectToHost:@"10.0.0.147" onPort:9100 error:&err]) {
        // Something went wrong!
        NSLog(@"I goofed: %@", err);
    }

}

- (void)socket:(GCDAsyncSocket *)sock didConnectToHost:(NSString *)host port:(uint16_t)port {

    NSLog(@"connected to host!: %@", host);
    [self printLabelToPrinter];

}

Примечание : ссылка на файл .zpl ниже содержит скрипт печати ZPL, один из поддерживаемых языков принтеров Brady

- (void)printLabelToPrinter {

    // Get the ZPL file and convert it over to data
    NSString *filePath = [NSBundle.mainBundle pathForResource:@"label" ofType:@".zpl"];
    NSData *data = [NSFileManager.defaultManager contentsAtPath:filePath];

    // Write the data to the printer
    [self.socket writeData:data withTimeout:10 tag:1];

}

- (void)socket:(GCDAsyncSocket *)sock didWriteDataWithTag:(long)tag {
    NSLog(@"did write data: %ld", tag);
}

Вот файл .zpl

^XA
^CF0,60
^FO50,50^GB100,100,100^FS
^FO75,75^FR^GB100,100,100^FS
^FO50,300
^FO504,300^FDTest
^XZ
...