Печать необработанных данных без диалога из PHP / JAVASCRIPT - PullRequest
1 голос
/ 17 мая 2011

В настоящее время я добавляю функции в веб-приложение PHP для клиента. Им необходимо иметь возможность распечатывать некоторые необработанные данные на билетном / термопринтере прямо с php, который будет запускаться в интернет-браузере из киоска самообслуживания.

Данные необходимо распечатать на местном киоске во встроенном принтере билетов.

Из моего предварительного исследования я понимаю, что должен выполнить эту задачу, используя javascript для любых действий на стороне клиента, и задался вопросом, знает ли кто-нибудь какой-либо метод или пример функции, которая позволит печатать строку на указанном принтере / com-порту, который будет обойти диалоговое окно принтера?

Заранее спасибо за любую помощь

Alex

Ответы [ 3 ]

5 голосов
/ 28 февраля 2012

Этот плагин требует установленной на стороне клиента Java, но после первого запроса безопасности он будет делать то, что вам нужно (работает с Linux, Mac, Windows, Solaris - все, что может запускать настольное приложение Java)

https://github.com/qzind/tray

1 голос
/ 17 мая 2011

Если он не зависит от браузера и платформы, остановитесь прямо сейчас и запустите. НЕТ способа, и я имею в виду НЕТ способа для Javascript получить доступ к информации о принтерах, полях, размере бумаги и всех переменных в принтерах. Даже если в вашем браузере есть кнопка быстрой печати, печать с использованием настроек по умолчанию и принтеров по умолчанию, вы не знаете тип бумаги, чернила, поля и т. Д., И вы можете печатать на бумаге формата А4 или в США. , наш юридический размер, 8,5 "X 11,5".

В целях безопасности браузеры НЕ предоставляют javascript какой-либо доступ к этой информации, предоставляемой им Windows API и драйверами принтера. Наиболее близкий из известных мне вариантов - в небольших сетях, где переменные известны и настраиваются с использованием Internet Explorer JScript или ActiveX. Если не считать этого, ваш единственный простой способ - написать свой собственный веб-браузер / плагин / плагин или изменить тот, который будет работать на этих платформах, с такой встроенной возможностью.

Более подробная информация доступна здесь .

РЕДАКТИРОВАТЬ: Хотя, если вы действительно хотите упростить свою жизнь, скажите им, чтобы установить Firefox, и прочитайте эту статью для самого простого решения. Кроме того, вы рассматривали VBScript? У него есть такая возможность, я видел это раньше.

0 голосов
/ 17 мая 2011

Невозможно, по крайней мере, без дополнительных шагов.

Не зная больше о среде киоска, у вас есть три основных варианта:

1).Установите веб-сервис в локальном киоске.Этот веб-сервис будет управлять печатью и, в конечном счете, станет наиболее расширяемым решением.

2).Создайте плагин для службы печати.Это было бы ужаснее и навсегда связывало бы вас с одним браузерным решением.

3).Оберните браузер в пользовательский код, чтобы разрешить внешние вызовы.Опять же, несколько уродливо, но, поскольку у вас есть киоск, у вас, скорее всего, будет какая-то специальная / расширяемая оболочка.

...