所以,我的打印机没有适用于 Windows 以外的任何操作系统的驱动程序,因此,我想在连接到打印机的 Windows PC 上运行服务器,以便我可以从任何设备上传文件本地网络并让 PHP 脚本调用文件上的 MS Word 来打印它。当我从命令行给出命令并且文件上传有效时,我必须调用 Word 来打印文档的命令有效,但是当使用
system()
或 exec()
从 PHP 脚本运行该命令时,它不起作用。我看到 WINWORD.exe
从任务管理器运行,但没有显示 GUI,也没有进行打印。我在 Windows 8 上运行最新的 WAMP,我尝试进入 services.msc
并将 wampapache 的登录更改为我的用户(即管理员)或启用复选框以允许服务与桌面交互,但这些都不起作用。这是我正在使用的实际命令:"C:\Program Files\Microsoft Office\Office14\WINWORD.EXE" C:\path\file.txt /q /n /mFilePrintDefault /mFileExit
。它位于我使用 exec()
运行的批处理文件中
编辑:我不想打印到网络打印机,这是连接到服务器计算机的打印机,并且我正在使用最新版本的 WAMP,因此我无法使用链接问题中的 PHP 函数。另外,我正在尝试打印 Word 文档而不是原始文本。这是专门关于 PHP 的
exec()
不适用于这种情况的。
老实说,我认为这是你最好的选择:
由于您似乎在使用 .bat 文件方法时遇到问题,我建议您尝试使用 PowerShell 脚本。例如:
print_doc.ps1 =>
Param([string] $filePath)
# This should handle any file type, including an MS-Word .doc/.docx
Start-Process -FilePath $filePath -Verb print
在 PHP 中,您可以
exec()
脚本如下:
'powershell.exe -noprofile -executionpolicy bypass -file \path\to\script\print_doc.ps1 "' . $path . '"'
建议: