У меня есть веб-сайт, на котором работает служба кассы, которая выдает билеты и отчеты. Я пытаюсь выяснить, как получить билеты (в настоящее время файлы PDF), отправленные непосредственно на указанный принтер на локальном / клиентском ПК.
Я следил за многими старыми / мертвыми / бесполезными ссылками и не нашел никаких современных решений для этого, хотя многие мучительные проблески надежды.
Сценарий таков: Удаленный хостинг-сайт – 1 или более подключенных пользователей – веб-страница генерирует билет / с (PDF), который бесшумно отправляется на указанный принтер на ПК пользователя (не принтер по умолчанию) (без дополнительного нажатия подсказок печати ).
Я знаю, что PHP не подключается к ПК с клиентами, но есть ли способ для веб-страницы (возможно, через jQuery) подключиться к установленному скрипту / службе?
Я думал, что сценарий на локальном ПК (который устанавливает доверенную ссылку, устанавливает принтер для использования и т. Д.) Будет получать данные / файл с веб-сервера, а затем обрабатывать его до тех пор, пока он находится на одном и том же месте на каждом компьютере. Этот (локальный) скрипт может быть добавлен на любой компьютер, которому необходимо запустить службу. Работа должна быть инициирована передаваемым файлом и не иметь скрипта / службы, которая будет выполнять опрос местоположения каждые несколько секунд.
Любые указатели будут очень благодарны.
Редактирование: я попробовал java-приложение jZebra, но получил его только один раз, прежде чем он сломался. Заинтересован, если кто-то действительно получил его на работу (и как).
Недавно я столкнулся с ТОЧНЫМ вопросом. У Google Chrome есть так называемый «киоск». Поэтому он будет печататься без вмешательства пользователя.
Для этого откройте Google Chrome с помощью следующей команды (вам нужно найти исполняемую команду chrome или команду chrome для машин * nix):
chrome.exe "http://www.example.com/mypage.php" --kiosk --kiosk-printing
Это откроет окно без каких-либо панелей инструментов, адресных баров, омнибокс и т. Д.
Затем вам нужно распечатать страницу. Для этого автоматически откройте диалоговое окно печати (для демонстрации я буду использовать простой Javascript):
<script> window.print(); </script>
Прежде чем переходить к среде разработки, window.print()
НЕ разрешает никаких аргументов (т. window.print()
URL).
Этот код открывает диалоговое окно печати. Однако в режиме киоска диалог печати будет обходить, и страница будет автоматически распечатана на принтере по умолчанию.
Теперь вы упоминали о PDF-файле и, скорее всего, генерируете его через PHP (если вы печатаете выпущенные / сгенерированные файлы), возможно, вы думаете: «О, ну, я не могу поместить HTML в PDF для выполнения javascript». Вам не нужно! Чтобы решить проблему с печатью правильной страницы, выполните следующие действия:
Вставьте следующее на страницу HTML / PHP, на которую пользователь отправляется (для этого решения пользователю не нужно посещать .pdf ), в <head>
страницы посадки / успеха:
<link rel="alternate" media="print" href="LINK TO PDF FILE">
Если у вас есть код выше на вашей странице, когда вы выполняете window.print();
, он напечатает страницу, указанную выше. Если вы не сохраняете PDF локально, вы можете поместить его во временный каталог, который каким-то образом (вне сферы действия этого вопроса) очищается по расписанию, основанному на времени или на основе действия, для предотвращения наращивания дискового пространства.
Помните следующее:
ALT + F4
. --kiosk
AND --kiosk-printing
. Аргумент печати требует аргумента --kiosk
. Я уверен, что другие браузеры имеют аналогичную функциональность, чтобы обойти диалоговое окно печати, однако я обнаружил, что Google Chrome лучше всего работает в таких функциях. Если у вас на машине Linux, у Google есть файл .deb, с которым вы можете установить Google Chrome в Linux, используя команду sudo dpkg -i (package / downloaded .deb file path)
. Chromium –might – поддерживает такую функциональность. Насколько я знаю, это должно быть.
Если вам нужна дополнительная помощь, оставьте свой вопрос в комментариях ниже, я отвечу как можно скорее.
Надеюсь, я помог. Если бы я это сделал, не стесняйтесь давать мне зеленый чек слева от вас. 😉