在 WAMP 中从 PHP 打印 Word 文档

问题描述 投票:0回答:1

所以,我的打印机没有适用于 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()
不适用于这种情况的。

php printing wamp exec
1个回答
1
投票

老实说,我认为这是你最好的选择:

由于您似乎在使用 .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 . '"'

建议:

  1. 确保路径在 PHP 中有效。

    您可以使用

    file_exists() 和/或 realpath() 来验证这一点。

  2. 启用详细错误日志记录。在 PowerShell 中,我喜欢使用 try/catch 块和

    $error 对象。

© www.soinside.com 2019 - 2024. All rights reserved.