Печать на внешний чековый принтер с помощью SenchaTouch с Phonegap - PullRequest
3 голосов
/ 16 декабря 2011

Я создаю приложение в SenchaTouch.Также я собираюсь использовать PHONEGAP для развертывания для iOS, Android и BlackBerry.В приложении мне нужно распечатать некоторые детали, такие как квитанция.Я не знаю, как сделать функции печати, которые должны быть совместимы с вышеупомянутыми платформами.

Мне тоже нужно получить список принтеров.

Ответы [ 4 ]

2 голосов
/ 17 января 2012

Я не могу говорить за Android или Blackberry, но приложения для iOS могут печатать на двух типах принтеров:

  1. Принтеры, сертифицированные AirPrint. Вы можете печатать на принтерах AirPrint из приложения iOS PhoneGap, используя плагин для печати Phonegap. https://build.phonegap.com/plugins/1113
  2. Единицы, сертифицированные Apple как часть их «Программы MFi». Мне известен только один принтер MFi, но это чековый принтер, поэтому он может быть именно тем, что вам нужно (вам нужно написать собственный плагин PhoneGap, хотя бы для взаимодействия с SDK принтера): http://www.bluebamboo.com/products/show.asp?id=16

Примечание: при использовании AirPrint вам не нужно беспокоиться о списке доступных принтеров. Пользователю предоставляется диалоговое окно, содержащее список всех доступных принтеров AirPrint в их сети. Ваша работа будет отправлена ​​на тот принтер, который они выберут.

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

Основной алгоритм состоит в том, чтобы программно создать экземпляр iframe, заполнить его содержимым, а затем вызвать его метод печати, как показано ниже:

// create print frame
var pFrame = Ext.get('printerFrame');
if (!pFrame) {
  Ext.getBody().insertHtml("beforeEnd","<iframe id='printerFrame' style='display:none'>    </iframe>");
  pFrame = Ext.get('printerFrame');
}

var contentWindow = pFrame.dom.contentWindow;
contentWindow.document.body.innerHTML = 'This is some html';
contentWindow.print();

Вызов метода print() запускает средство выбора принтера iOS, позволяя вам печатать на любом принтере AirPrint. Эта техника также должна работать для Ext JS 4.

0 голосов
/ 16 декабря 2011

Это может не работать для вашей конкретной среды, но это решение будет работать, если вы можете приложить усилия в:

Настройка веб-службы на прием, который принимает запросы на печать с данными для печати. Затем напишите небольшую программу для Windows / Linux / OSX, которая опрашивает ваш веб-сервис на наличие новых заданий на печать. Если программа находит новый запрос на печать, она отправляет его на нужный принтер. Это можно записать как службу или запустить как запланированное задание.

Теперь, когда вам нужно распечатать из вашего мобильного приложения, оно может сделать ajax-вызов на ваш веб-сервис и отправить данные для печати.

0 голосов
/ 16 декабря 2011

Во-первых, вы должны знать, что iOS поддерживает печать только на некоторых принтерах HP.Во-вторых, я даже не уверен, что Blackberry может это сделать, но я могу ошибаться.

Что вам нужно сделать, это написать код пробела для взаимодействия с исходным кодом печати для iOS, реализацией Android и затем BlackBerry.

...