Откройте диалоговое окно принтера для файла PDF Автоматически

Я знаю, что есть способы распечатать PDF-файл на сетевой принтер, расположенный в той же сети, что и сервер, но это не помогает мне, поскольку сервер удален. В моей ситуации пользователь нажимает ссылку на «печать меток», которая затем генерирует и выводит файл PDF, отформатированный для них. Я в настоящее время «передаю» вывод файла в браузер, так что Adobe Reader автоматически открывает его, используя следующий код:

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Content-type: application/pdf"); header('Content-Disposition: attachment; filename="labels.pdf"'); readfile($ServerPathToFile); 

Есть ли что-то еще, что я могу добавить к этому коду, который будет автоматически запускать диалоговое окно печати для открытия, так что им нужно только щелкнуть печать? В этом случае Google CloudPrint не является вариантом, а также другими вещами, которые требуют «специальной настройки» в конце пользователя … поскольку это будет использоваться различными пользователями.

Вы можете вывести PDF в дочернее окно ( <iframe> ) в том же домене, а затем вызвать window.print() в этом окне.

 <p>Don't forget to print your document!</p> <iframe src="/path/to/your/pdfgenerator.php" id="mypdf"></iframe> <script> function printIframe(id) { var iframe = document.frames ? document.frames[id] : document.getElementById(id); var ifWin = iframe.contentWindow || iframe; iframe.focus(); ifWin.printPage(); return false; } </script> 

На странице iframe добавьте следующее:

 function printPage() { print(); } 

Я только что закончил проект, который печатал ярлыки из браузера на принтер для печати этикеток в сети. Вы должны сделать это с помощью javascript. Я использовал SDK от Dymo и создал собственный пользовательский интерфейс для автоматической печати тегов имени после того, как человек зарегистрировался в киоске. Значки знака ожидали их на главной станции регистрации.

Srcipt, который я использовал, должен был быть установлен только на сервере, а все остальные в сети могли печатать на сетевом принтере.