Печать pdf из браузера

6yrop

Можно ли по одной кнопке печатать pdf из браузера? Pdf на сервере, пользователь нажимает одну кнопку и документ должен сразу распечататься. Такое возможно?

artimon

Можно, но браузеры обычно выводят диалог печати в котором надо нажать кнопку.
Как отключить этот диалог зависит от браузера, но в принципе возможно.

artimon

Ну и придётся модифицировать PDF-ку.

Dasar

Ну и придётся модифицировать PDF-ку.
в смысле?

artimon

В смысле это PDF-ка должна вызывать печать себя. А значит в неё нужно запихать код вызова печати.
Впрочем можно попробовать открыть pdf в новом окне и вызвать его печать

marat7256

Если кто-то сделает такое на каком-нибудь сайте, его необходимо будет изолировать от компьютера навсегда!

tokuchu

Если кто-то сделает такое на каком-нибудь сайте, его необходимо будет изолировать от компьютера навсегда!
И метод ahtoh-а применить для верности! :)

artimon

Изолируй гугл. Они это сделали для печати документов.

yolki

ну как в массы пойдёт - будет хуже спама факсами.
и будет плагинчик в браузер, который это будет блокировать

artimon

Браузеры сейчас спрашивают подтверждение для печати. Что бы получился спам, нужно самостоятельно отключить это подтверждение, что весьма нетривиально и никто этого случайно не сделает.
А вот для корпоративных нужд это может быть удобно.

marat7256

Объясни мне, зачем может быть неоходимо печатать документ предварительно его не посмотрев. Для простоты оставим за скобками специфические случаи вроде кассовых чеков.

artimon

Например какое-нибудь заявление на отпуск. Выбираешь на сайте в интранете даты и печатаешь. На что там смотреть?

marat7256

Если уж СЭД, то вообще ничего печататься не должно.

6yrop

Если кто-то сделает такое на каком-нибудь сайте, его необходимо будет изолировать от компьютера навсегда!
Браузеры сейчас используются не только для сайтов, но и для полноценных корпоративных приложений. Да и разделение на сайты и приложения очень условное. Если у тебя компьютеры это сайты и кассовые чеки, то ты себя изолировал от компьютеров.

Dasar

зачем может быть неоходимо печатать документ предварительно его не посмотрев
смотришь обычно электронную версию документа, а распечатать хочется его "твердую" копию.
Или другими словами, смотришь на "rich" версию документа с навигацией, подстраиванием под размер браузера и т.д., а печатаешь установленную форму, в которой всё должно быть жестко на своих местах с точностью до мм.

6yrop

Или другими словами, смотришь на "rich" версию документа с навигацией, подстраиванием под размер браузера и т.д., а печатаешь установленную форму, в которой всё должно быть жестко на своих местах с точностью до мм.
для этого сценария я и спрашиваю.
А логика меня просто убила, давайте заставим пользователя смотреть на документ. А вы поинтересовались у пользователя, будет ли он смотреть, надо ли ему смотреть?

marat7256

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

margadon

тем более никто не спрашивает может я хочу в файл распечатать или у меня несколько принтеров, или я не хочу дефолтным печатать, а послать по сети...
руки отрывать тем, кто убирает предпросмотр для типового юзера!
надо подвергать авторов тем же анальным карам, что и за сайты с неотключаемыми громкими звуковыми сообщениями "не уходите, у нас для вас выгодное предложение..."

6yrop

Не понял твою тираду про чиновников. Откуда ты взял чиновников? Клиент приходит в компанию и общается с сотрудником компании. Сотрудник видит документ на экране и работает с ним. Документ может быть распечатан и отдан клиенту. Совершенно обычный сценарий.

6yrop

тем более никто не спрашивает может я хочу в файл распечатать или у меня несколько принтеров, или я не хочу дефолтным печатать, а послать по сети...
руки отрывать тем, кто убирает предпросмотр для типового юзера!
вот именно у вас в голове какой-то "типовой" юзер, чиновник и т.п. А какой реальный пользователь, вам не известно, поэтому ваши категоричные утверждения выглядят смешно и глупо.

marat7256

Обычный сценарий, да. И работает уже не один десяток лет. Зачем его переносить в веб? Зачем создавать новые ненужные сущности?

6yrop

Обычный сценарий, да. И работает уже не один десяток лет. Зачем его переносить в веб? Зачем создавать новые ненужные сущности?
Какой десяток лет? Ты о чем? Ты о нашем сценарии ничего не знаешь, и сделал вывод, что он работает десяток лет. Я умываю руки, общаться с такой логикой.

marat7256

Ну, так расскажи про ваш уникальный сценарий. А то вот это вот "вы ничего про ситуацию не знаете, мне не о чем с вами говорить" немного надоело.

Dasar

стоит договориться о терминах сначала...
при печати из браузера есть следующие стадии:
web-html -> pdf -> browser print preview -> непосредственно печать (или web-html -> print-html -> browser print preview -> непосредственно печать).
print-html - это html специально подготовленный для печати
browser print preview - подразумевается, что там есть и preview, и выбор принтера и его настроек.
итого, получается 3 клика для того, чтобы распечатать документ.
вернемся к теме: начальный пост был о том, как автоматически перейти от фазы 1 к фазе 3, убрав показ фазы 2 пользователю. т.е. пользователь смотрит на веб-страницу, жмет кнопку печать и попадает в окно print preview уже для pdf-ной копии. Это даст 2 клика вместо 3.
Также для корпоративных целей при типовых потоковых операциях бывает нужен Quick Print: печать в один клик вместо 2 для экономии времени и уменьшения человеческих ошибок (при этом считается, что у пользователя заранее уже всё корректно настроено). В этом случае тогда требуется убрать и фазу 3. И пользователь смотря на веб страницу, при нажатии на печать сразу получает ее твердую копию.

Dasar

Ну, так расскажи про ваш уникальный сценарий.
широко используемый сценарий: печать yandex-карты. Там как раз все стадии процесса "web-html -> print-html -> print preview -> непосредственно печать" наглядно заметны.

Dasar

расскажи про ваш уникальный сценарий
типичный потоковый корпоративный сценарий: подошедшему клиенту/сотруднику по его номеру заказа выдать распечатанную накладную/акт/договор/путевой лист.

margadon

да, извиняюсь, такой вариант с пропуском фазы-2 разумен

zya369

подошедшему клиенту/сотруднику по его номеру заказа выдать распечатанную накладную/акт/договор/путевой лист.
номер -> штрихкод -> автомат со сканером и принтером?

tokuchu

как автоматически перейти от фазы 1 к фазе 3, убрав показ фазы 2 пользователю
Это, а css-стиль же можно для печати другой сделать и там оформить как нужно для печатной версии?

Dasar

номер -> штрихкод -> автомат со сканером и принтером?
это уже не браузерное решение
ps
браузерное решение дешевле в обслуживании

Dasar

Это, а css-стиль же можно для печати другой сделать и там оформить как нужно для печатной версии?
это только для случая, когда разница описывается css-ом.
иначе придется фактически всегда выдавать на страницу два html-я: и web, и print - и один из них скрывать в зависимости от режима.
ps
но, вообще, print-html достаточно сложно заставить печататься аккуратно. У тех же yandex-карт это не получается: постоянно - то на страницу не влезет, то масштаб отдельных элементов поплывет. И в каждом браузере всё это глючит еще и по своему.
Все-таки, для документов с жесткой структурой лучше по старинке: через формирование промежуточного pdf-а своим кодом.

Andbar

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

marat7256

Именно так.

Dasar

при нажатии на печать, запрос шлётся на специальный скрипт, который прямо с сервера отправляет документ на печать на ближайший к пользователю принтер.
вариант красивый.
Как определяется ближайший принтер? Особенно для wifi? Получается на сервере необходимо иметь карту: для какого ip-а какой принтер ближайший.
В целом, получается система более централизованная, но менее надежная и гибкая в управлении.

nas1234

Как определяется ближайший принтер? Особенно для wifi?
в настройках пользователя или же выбор принтера рядом с кнопкой печати.

apl13

тем более никто не спрашивает может я хочу в файл распечатать или у меня несколько принтеров, или я не хочу дефолтным печатать, а послать по сети...
Так это же очень просто: перед тем как зайти на сайт, ты должен нажать "Пуск" — "Контрольная панель" — "Устройства и Печать" — "Устройство печати по умолчанию" — "Изменить" — и выбрать нужный тебе принтер или "Печать в файл" в качестве устройства по умолчанию, а затем ты просто заходишь на сайт и сразу печатаешь одной кнопкой! :applause:

Dasar

ы должен нажать "Пуск" — "Контрольная панель" — "Устройства и Печать" — "Устройство печати по умолчанию" — "Изменить" — и выбрать нужный тебе принтер или "Печать в файл" в качестве устройства по умолчанию
Вообще, короче: Start -> Devices and Printers -> Context menu для желаемого принтера -> Set as default printer; и это только для сценария Quick Print.
Для сценария Print выбор дефолтного printer-а делается при просмотре preview-шки.
Оставить комментарий
Имя или ник:
Комментарий: