【发布时间】:2015-09-24 00:18:56
【问题描述】:
所以,我有这台打印机,它没有 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
exec()在文档上调用 MS Word 以打印它的问题。 -
不,您不需要通过“system()”调用显式调用 winword.exe 来打印文档。 PHP printer_open() 可以工作(在 Windows 上运行 Apache/PHP); .Net/MS-Office Interop 也可以工作:sitepoint.com/make-microsoft-word-documents-php
-
这在最新版本的 PHP 中有效吗?我在某处没有读到。
-
你真的用这些方法取得了成功吗?我看不到如何使用普通的
printer_open()方法指定 word 文档,我尝试从您的链接中遵循 Interop 方法,但指定的文件在 Win 8 中非常不同。我更喜欢这种方法。