加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP服务器端打印Ubuntu服务器

发布时间:2020-12-13 16:45:49 所属栏目:PHP教程 来源:网络整理
导读:我一直在堆栈,看着做这件事需要做些什么,并且有点困惑. 让我们直截了当这是一个基于本地的内部网,我知道PHP是服务器端. 我在基于Web的PHP,JAVA,Jquery Idea上运行公司管理解决方案.我们想直接从“LINUX”服务器和收据等打印报告. 我已经在服务器上安装了杯子
我一直在堆栈,看着做这件事需要做些什么,并且有点困惑.

让我们直截了当这是一个基于本地的内部网,我知道PHP是服务器端.

我在基于Web的PHP,JAVA,Jquery Idea上运行公司管理解决方案.我们想直接从“LINUX”服务器和收据等打印报告.

我已经在服务器上安装了杯子,服务器打印正常,我现在只是坚持认为是否真的可以让服务器打印我们直接从PHP代码生成的pdf文件.

即使我们有一个bash脚本运行并检查目录打印pdf然后将其删除,我也会很高兴,即使我暂时将其视为一种解决方法.

就像我说的那样,我确实理解如果这是在WWW上完成的话那么就会有一些可以使用的漏洞.如果我在www上运行这个系统,我会有一个完全不同的网站,不允许打印,这个功能是没有必要的.

先感谢您

亚历克斯

解决方法

如果CUPS配置正确,从shell打印PDF就像这样简单

lpr myfile.pdf

因此,一旦将PDF写入临时文件,就可以使用任何可用的PHP函数来执行该shell命令:exec(),shell_exec(),system()

您甚至可以在不编写临时文件的情况下执行此操作,并通过STDIN将数据直接提供给lpr(尝试cat myfile.pdf | lpr作为shell上的示例).

如果使用proc_open()运行数据,则可以使用PHP将数据提供给程序的STDIN. PHP Manual的第一个例子可以适用于这样的事情:

<?php
$descriptorspec = array(
   0 => array("pipe","r"),// stdin is a pipe that the child will read from
);

$process = proc_open('lpr',$descriptorspec,$pipes);

if (is_resource($process)) {
    // $pipes now looks like this:
    // 0 => writeable handle connected to child stdin
    // 1 => readable handle connected to child stdout
    // Any error output will be appended to /tmp/error-output.txt

    fwrite($pipes[0],$pdf_data);
    fclose($pipes[0]);
}
?>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读