PHP 服务器端打印 Ubuntu 服务器

标签 php printing lamp intranet cups

我一直在寻找执行此操作所需的条件,结果有点困惑。

让我们弄清楚一件事,这是一个基于本地的内部网,我知道 PHP 是服务器端。

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

我已经在服务器上安装了 cups 并且服务器打印正常,我现在只是想知道是否真的可以让服务器打印我们直接从 PHP 代码生成的 pdf 文件。

即使我们有一个 bash 脚本来运行并检查目录打印 pdf 然后删除它,我也会很高兴,即使我暂时认为这是一种解决方法。

就像我说的那样,我明白如果这是在 WWW 上完成的,那么就会有某些漏洞可以被利用。如果我要在 www 上运行这个系统,我会得到一个完全不同的站点,它不允许打印,并且不需要这个功能。

提前谢谢你

亚历克斯

最佳答案

如果 CUPS 配置正确,从 shell 中打印 PDF 就像字面上一样简单

lpr myfile.pdf

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

您甚至可以在不编写临时文件的情况下通过 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]);
}
?>

关于PHP 服务器端打印 Ubuntu 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11168116/

相关文章:

c++ - 使用 MFC 打印到打印机 DC

php - 获取 php 提示和教程作为每日电子邮件,以提高 php 编程知识

apache - 设置不记录/存储 IP 地址的 LAMP 服务器?

php - 为 php 网站创建一个安全的仅限管理员的部分

vbscript - VBS - 获取默认打印机

c++ - 如何设置来自DeviceCapability的纸质表单?

php - 编译安装php5.4,make : *** [libphp5. la] 错误1

php - 登录时保存 IP,如果 IP 更改则注销,PHP MySql

php - 将参数添加到从 Python 调用的 PHP 脚本

javascript - laravel 在菜单栏中添加一个下拉菜单,其中包含指向其他页面的链接