使用动态网址打印到Google云打印

时间:2011-10-24 18:31:23

标签: javascript google-widget google-cloud-print

我想在我的网站上使用“打印”按钮来打印带有Google云打印的文档,但我希望目标的“网址” - PDF文件 - 在按钮被删除后动态更改点击(特别是根据AJAX调用返回的内容)。

GCP Web Element(GCPWE)似乎有类似的功能,但不是我想要的。特别是,似乎只能在单击按钮之前更改“目标”(通过调用setPrintDocument)。

单击按钮后,有没有办法指定GCPWE的URL?

以下是GCPWE网站的示例代码:

<div id="print_button_container"> </div>


<script src="http://www.google.com/cloudprint/client/cpgadget.js">
</script>
<script defer="defer">
    var gadget = new cloudprint.Gadget();
    gadget.setPrintButton(
          cloudprint.Gadget.createDefaultPrintButton("print_button_container"));
    gadget.setPrintDocument("url", "[document title]", "[document URL]");
</script>

我已经考虑过隐藏<div id='print_button_container'>并在点击可见的打印按钮后触发.click事件,但这似乎相当不优雅&amp;不当。我查看了上面链接的gpwidget.js,但代码已经被最小化并且无法理解(无论如何)。

我似乎想要的是一个Javascript print函数,您将[文档URL]和[文档标题]传递给。

是否有更好的方法来实现所需的功能,而不是“点击隐藏的按钮”我想出了什么?

感谢您的阅读。

2 个答案:

答案 0 :(得分:3)

您可以随时打开打印对话框,只需打电话:

gadget.openPrintDialog()

这将打开打印机对话框。 因此,对于您的情况,您可能希望使用静态方法创建打印按钮:

cloudprint.Gadget.createDefaultPrintButton("print_button_container");

然后为按钮附加自定义处理程序,无论何时准备好,只需致电:

var gadget = new cloudprint.Gadget();
gadget.setPrintDocument(...);
gadget.openPrintDialog();

答案 1 :(得分:2)

即使在打开打印对话框后,您也可以随时调用方法gadget.setPrintDocument()。