后端生成 pdf 文件(标签、装箱单等) - 需要从浏览器自动打印到预先选择的打印机 - 解决方法


Backend generates pdf files (labels, packing slips, etc) - Need to automatic print to pre-selected printers from browser - Workaround?

我正在开发一个Web应用程序;在管理后端中,我需要具有为运行的不同进程执行自动打印作业的功能,并在管理员中生成pdf(标签,装箱单),该pdf将被发送到我仓库中预先选择的LAN网络打印机。

我一直在对此进行一些研究,我知道由于安全问题,像这样的自动打印很难配置。 但是,我有一些帖子,人们写道,他们能够通过活动x,java,打印服务器,客户端软件等做到这一点......但是关于如何做到这一点并没有明确的大纲。

有人可以帮助我找出一种解决方法,当某个进程运行并生成 pdf 文件时,我可以使用它自动打印到仓库中的不同 LAN 网络打印机?

谢谢!

我还管理一个执行这些任务的仓库系统。 我不会声称以下解决方案是最好的方法,但它们一直在为我们工作。 我们的系统是使用PHP 5.3构建的,使用Apache的Windows服务器。 通过此设置,用户不需要从浏览器打印任何内容,它都是句柄服务器端。

要求:Apache 需要以管理员权限运行。可能不建议用于面向 Web 的服务器。

要通过 PHP 在 Windows 上打印 PDF:

$file = "c:''path''to''file.pdf";
$exec = '"C:''Program Files''bioPDF''Acrobat Wrapper''acrowrap.exe" /t ';
session_write_close(); // prevents hanging
pclose(popen($exec. $file . " ''networked''printer",'r'));

这只会启动读取器、打印文件并关闭读取器。

在 Linux/Mac 上,您应该能够使用(没有管理员权限):

$file = "/path/to/file.pdf";
$command = "lpr -P /printer/path " . $file;
exec($command);