使用PHP打印Word文档

3
我正在使用PHP创建一个程序,接受来自表格的数据,然后创建20个不同的DOC文件,可以在单击时下载。我已经完成了这一切,如果您单击20个文件的URL,它会弹出窗口将这些文件保存为Word文件。现在我正在尝试实现从程序本身一键打印所有这些文件,而不需要保存它们。这些数据来自于数据库,因此是动态的。是否可能通过一键操作打印这些Word文件?另外,有些文档可能有多个副本。

1
http://php.net/manual/en/ref.printer.php - christopher
打印机库是一个不错的起点,也许将.doc转换为.xps是另一个需要考虑的步骤。 - Dave Chen
你想要在服务器端还是客户端打印? - Maerlyn
感谢大家的回复。@Maerlyn,在填写完HTML表单并提交后,应该会出现打印选项。打印必须在客户端计算机上完成。 - saint
@Chris,我正在看这个问题。我必须在php.ini上启用它并尝试。问题是数据是动态的,所以我不确定它是否会按预期工作。 - saint
@Dave,我也在研究这个问题。 - saint
2个回答

1
除非用户拥有浏览器的单词处理扩展程序(如Zotero),否则您无法直接从浏览器打印Word文件。另一种选择是将您的doc文件转换为PDF、HTML或图像格式,wvWare是可以使用的软件。参见: http://wvware.sourceforge.net/ 要使用PHPWord创建Word文件,请参见: http://phpword.codeplex.com/
使用此功能,您可以保存您的doc(x)文件,并将链接添加到您的php页面中。 或者,您可以通过创建自定义标头,在打开PHP页面时直接下载文件。
<?php
header('Content-Type: application/vnd.ms-word');
header('Content-Disposition: attachment;filename="myfile.docx"');
header('Cache-Control: max-age=0');

// Code that generates DOC

// output the file to the browser
$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007');
$objWriter->save('php://output');
exit;
?>

在这里查看论坛帖子:https://phpword.codeplex.com/discussions/225901


2
OP说他们已经可以做到这一点了,他们想要能够打印这些文档。 - christopher
只有在下载后才能打印Word文件。或者您可以将其转换为HTML并使用浏览器打印。请参见此线程:http://stackoverflow.com/questions/2772781/microsoft-word-to-html-in-php-script - Bence Gacsályi
也许你应该在回答中包含如何实现这个的方法。如果你这样做了,我会给你一个+1! - christopher
更新了我的回答。浏览器只能打印网站内容。尝试使用wvWare进行转换。 - Bence Gacsályi
Zotero不是浏览器的文字处理扩展程序,也不能让你打印Word文档或以任何方式改善任何其他类型文档的打印。 - Aurimas

0

在你的 PHP 或任何 HTML 代码的顶部

<?php
header("Content-Type: application/vnd.ms-word"); 
header("Expires: 0"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("content-disposition: attachment;filename=Report.doc");

?>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接