В веб-приложении Java, как распечатать файл сервера со стороны клиента - PullRequest
1 голос
/ 24 марта 2010

В веб-приложении java необходимо выбрать файл с сервера и распечатать на локальном принтере. как это можно сделать

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 24 марта 2010

Это будет непросто, когда вам потребуется минимум взаимодействия с пользователем (т. Е. Просто щелкните ссылку, а затем выполните магию печати), и это также зависит от типа рассматриваемого файла. Если это, например, файл .doc, то вам, в основном, нужно загрузить его в клиентскую среду и открыть в соответствующем приложении по умолчанию (в данном случае MS Word), а затем разрешить приложению выполнить команду печати. Вы не можете сделать это со стороны сервера.

Лучше всего создать апплет , который в свою очередь отображает дерево файлов, загружает файл в файловую систему локального диска при взаимодействии с клиентом и использует Desktop#print() распечатать это. Э.Г.

File file = new File("/temp/file.doc");
// Read file from server using URLConnection, write it to this file and then do:
Desktop.print(file);

Но если это, например, простые text файлы, такие как text/html, text/xml, и так далее, то вы можете использовать Javascript для загрузки файла в некоторый элемент <div> или <iframe> и затем выполнить window.print() метод, если необходимо, вместе с правилом CSS CSS .

2 голосов
/ 24 марта 2010

Вам понадобится applet, flash, silverlight, javafx - т.е. встроенное приложение. Там:

  • загрузить файл с сервера, создав запрос GET (в апплете - используя URL.openConnection()), получив возвращенные байты и сформировав документ в памяти
  • отправка этого на принтер. Если вы выбрали апплет - это может помочь

(я не знаю, нельзя ли достичь того же потока с помощью javascript)

...