做一个项目,服务器生成了一个 pdf 文件。现在由于保密要求,需要操作员直接点击一个按钮就把这个文件从打印机打印出来。而不能新开一个窗口看见这个 pdf 文件的内容,再点击打印,也不能预览打印的内容。有什么比较好的解决方案吗。
1
ccc008 2020-11-18 23:07:46 +08:00
操作员打印出来,直接拿起打印好的纸张不还是可以看到吗
|
2
loading 2020-11-18 23:10:56 +08:00 via Android
打印到文件
.prn 这只能自欺欺人。 |
3
Xusually 2020-11-18 23:11:27 +08:00
https://stackoverflow.com/questions/13045153/directly-print-with-php
Now printing a PDF file is a totally different issue. You can print it via shell execution: shell_exec( 'lpr /path/to/file/filename.pdf' ); Or with a PHP class found here: require_once( 'PrintIPP.php' ); $ipp = new PrintIPP(); $ipp->setHost( 'localhost' ); $ipp->setPrinterURI( '/printers/epson' ); $ipp->setData( '/path/to/file/filename.pdf' ); $ipp->printJob(); |
4
loading 2020-11-18 23:11:53 +08:00 via Android
建议使用端到端非对称加密,配合打印端用加密狗。
|
5
yyss8 2020-11-18 23:37:10 +08:00 via iPhone
你要用浏览器打印基本没办法 只能走 chrome 的预览
如果要不走那个直接调用打印机就只能本地架个 php 服务器 然后 php 直接调用打印机 当然你还得解决打印的人不会拿起来看一眼 |
8
Oceanhime 2020-11-19 00:08:38 +08:00
PHP 不能直接操作浏览器,即客户端的任何设备的,PHP 对硬件发起的任何动作都操作的是服务器,除非你要把 PHP 服务器搭建在操作员电脑里。
然后就是如果必须要用 JavaScript 或者必须要使用浏览器内建打印,那就绕不过去浏览器自己的预览。 所以 你可以像 #5 说的,在电脑里搭一个 PHP 服务端然后起 PHP 调用打印机 或者可以写一个小脚本,浏览器端请求 localhost 特定端口,POST 发送文件,然后脚本调用打印。 但是只要服务端需要回传给客户端文件,那客户端完全可以通过各种方式获取到想要的文件。除非进行加密,打印端还需要进行防护,这样就比较复杂了 |
9
Ansonyi 2020-11-19 00:12:28 +08:00
|
10
Sunyanzi 2020-11-19 01:07:44 +08:00
很简单啊 ... 我做过类似的项目 ...
Web 服务器放公司走内网 ... 客户机连内网 Web 服务器 ... 服务器 USB 直连打印机 ... 下打印指令的时候直接 Web 服务器后台把文件加入打印队列就好 ... 啥也不用给客户端传 ... |