Печать чека на принтере Star Micronics TSP 650 через iPad - PullRequest
0 голосов
/ 01 марта 2012

Я использую Star iOS SDK для печати чеков (например, счет в ресторане), но столкнулся с проблемами при настройке столбцов и интервалах между ячейками для правильного выравнивания. Я проверил документацию, но не нашел что-то полезное.

В руководстве по строковому коду есть некоторые сигналы / команды, которые я не могу понять. Кто-нибудь может мне помочь с этим?

Ответы [ 2 ]

1 голос
/ 08 февраля 2014

Я разговаривал с разработчиками SDK для start micronics, поскольку столкнулся с той же проблемой при использовании модели TSP100. Вот ответ одного из техников.

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

Итак, ясно, что вы должны сами поддерживать ширину столбца, форматирование, выравнивание и т. Д.

1 голос
/ 08 марта 2012

Команды, указанные в руководстве по линейному режиму, должны быть преобразованы в байты и затем отправлены на принтер.В загруженном пакете StarIO iOS SDK есть руководство под названием «README_StarIO_POSPrinter_iOS_SDK.pdf».(http://www.starmicronics.com/absolutefm/absolutefm/afmviewfaq.aspx?faqid=175) Вы проверяли страницы 9-15? Здесь объясняется инфраструктура StarIO.

В частности, на ваш вопрос об отправке команд, на странице 13 показано, как записывать данные в порт с помощью байтового массива, ноубедитесь, что вы добавили StarIO.framework и сначала открыли порт связи.

Из руководства:

//Set a byte array to send to the printer
//command = { A, B, C, D, Feed 3mm, Full Cut}
unsigned char command = {0x41, 0x42, 0x43, 0x44, 0x1B, 0x7A, 0x00, 0x1B, 0x64, 0x02};

Uint bytesWritten = 0;

@Try
{ 
   While(bytesWritten < (sizeof command)) 
   {
    bytesWritten += [port writePort: command : bytesWritten : sizeof command - bytesWritten];
   }
}
@Catch(PortException)
{
   //There was an error writing to the port
}

Также описано, как закрыть порты (убедитесь, что вы закрыли каждый открытый порт) иполучение статуса принтера.

Дайте мне знать, если это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...