#java #javascript #printing
#java #javascript #печать
Вопрос:
Этот вопрос может быть очень простым. До сих пор я думал, что команда для печати веб-страницы может быть инициирована только на стороне клиента.
(window.print при использовании javascript)
Но я наткнулся http://juixe.com/techknow/index.php/2008/01/17/print-a-pdf-document-in-java / в котором говорится о печати с использованием Java. Я думаю, что это, похоже, связано с каким-то настольным клиентом, и то же самое может быть невозможно в веб-клиенте. Кто-нибудь может подтвердить и объяснить это?
Ответ №1:
Вы не можете выполнить код на стороне сервера на клиенте, поэтому единственный способ сделать это в браузере — через javascript или с помощью плагинов / flash / java-апплетов.
Вы могли бы печатать с помощью java, но для этого java должна запускаться на клиенте.
Ответ №2:
Веб-сайт может попросить браузер открыть диалоговое окно печати (например, Google Maps делает это на странице «указания по печати»), но на самом деле он не может заставить браузер что-либо печатать. (Если бы это было возможно, вы можете быть уверены, что рекламодатели использовали бы его для печати рекламы на вашем принтере.)
Приложение Java, запущенное локально с достаточными разрешениями, может печатать, как и любое другое настольное приложение. Это не имеет ничего общего с веб-страницами.
Ответ №3:
Не путайте Java и JavaScript. При попытке использовать Java в браузере вам придется изучить использование апплетов. Java-апплет определенно можно использовать для выполнения той работы, которую обычно выполняет богатый клиент из браузера.
Java-апплеты также могут получать события, отправляемые с сервера через сокеты или какой-либо другой механизм, хотя я не уверен, позволят ли это ограничения безопасности. Также кажется немного окольным путем.
Помните, что просмотр веб-страниц зависит от клиента. В определенных инфраструктурах есть несколько моделей push (я считаю, что это возможно с использованием JavaServer Faces). Но это, вероятно, просто своего рода механизм опроса, инициируемый клиентом, который абстрагируется, чтобы выглядеть как нажатие на стороне сервера.