5

我知道有多种方法可以将 PDF 打印到与服务器位于同一网络上的网络打印机,但这对我没有帮助,因为服务器是远程的。在我的情况下,用户单击“打印标签”的链接,然后生成并输出为他们格式化的 PDF 文件。我目前将文件输出“流式传输”到浏览器,以便 Adob​​e Reader 使用以下代码自动打开它:

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Content-type: application/pdf");
header('Content-Disposition: attachment; filename="labels.pdf"');
readfile($ServerPathToFile);

还有什么我可以添加到这个代码中的东西,它会自动触发打印对话框打开,这样他们只需要点击打印吗?在这种情况下,谷歌云打印不是一个选项,也不是其他需要在用户端“特殊设置”的东西......因为这将被各种用户使用。

4

2 回答 2

3

您可以将 PDF 输出到<iframe>同一域上的子窗口 ( ),然后调用window.print()该窗口。

<p>Don't forget to print your document!</p>
<iframe src="/path/to/your/pdfgenerator.php" id="mypdf"></iframe>

<script>
function printIframe(id) {
    var iframe = document.frames ? document.frames[id] : document.getElementById(id);
    var ifWin = iframe.contentWindow || iframe;
    iframe.focus();
    ifWin.printPage();
    return false;
}
</script>

在 iframe 页面中,添加以下内容:

function printPage() {
    print();
}
于 2012-12-06T04:05:58.887 回答
0

我刚刚完成了一个项目,该项目将标签从浏览器打印到网络上的 dymo 标签打印机。您必须使用 javascript 执行此操作。我使用了 Dymo 的 SDK 并创建了自己的自定义界面,以便在用户在信息亭注册后自动打印姓名标签。然后,名牌在主要的登记站等着他们。

我使用的 srcipt 只需要安装在服务器上,网络中的所有其他人都可以打印到网络打印机。

于 2012-12-06T04:01:57.897 回答