有什么 js 或者 PHP 直接调用打印机打印文件不预览的方法吗。

2020-11-18 22:47:06 +08:00
 ANEYE

做一个项目,服务器生成了一个 pdf 文件。现在由于保密要求,需要操作员直接点击一个按钮就把这个文件从打印机打印出来。而不能新开一个窗口看见这个 pdf 文件的内容,再点击打印,也不能预览打印的内容。有什么比较好的解决方案吗。

1809 次点击
所在节点    问与答
10 条回复
ccc008
2020-11-18 23:07:46 +08:00
操作员打印出来,直接拿起打印好的纸张不还是可以看到吗
loading
2020-11-18 23:10:56 +08:00
打印到文件
.prn

这只能自欺欺人。
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();
loading
2020-11-18 23:11:53 +08:00
建议使用端到端非对称加密,配合打印端用加密狗。
yyss8
2020-11-18 23:37:10 +08:00
你要用浏览器打印基本没办法 只能走 chrome 的预览
如果要不走那个直接调用打印机就只能本地架个 php 服务器 然后 php 直接调用打印机

当然你还得解决打印的人不会拿起来看一眼
ANEYE
2020-11-18 23:47:38 +08:00
@ccc008
@yyss8
感谢 甲方的意思好像是打印机距离操作员很远 有专门的人收打印的文件
ANEYE
2020-11-18 23:53:08 +08:00
@Xusually
@loading
谢谢老哥,我研究研究
Oceanhime
2020-11-19 00:08:38 +08:00
PHP 不能直接操作浏览器,即客户端的任何设备的,PHP 对硬件发起的任何动作都操作的是服务器,除非你要把 PHP 服务器搭建在操作员电脑里。
然后就是如果必须要用 JavaScript 或者必须要使用浏览器内建打印,那就绕不过去浏览器自己的预览。

所以 你可以像 #5 说的,在电脑里搭一个 PHP 服务端然后起 PHP 调用打印机
或者可以写一个小脚本,浏览器端请求 localhost 特定端口,POST 发送文件,然后脚本调用打印。
但是只要服务端需要回传给客户端文件,那客户端完全可以通过各种方式获取到想要的文件。除非进行加密,打印端还需要进行防护,这样就比较复杂了
Ansonyi
2020-11-19 00:12:28 +08:00
Sunyanzi
2020-11-19 01:07:44 +08:00
很简单啊 ... 我做过类似的项目 ...

Web 服务器放公司走内网 ... 客户机连内网 Web 服务器 ... 服务器 USB 直连打印机 ...

下打印指令的时候直接 Web 服务器后台把文件加入打印队列就好 ... 啥也不用给客户端传 ...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/726891

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX