2011-10-24 128 views
0

我想在我的網站上使用「Google打印」打印文檔的「打印」按鈕,但我希​​望目標的「url」(PDF文件)用於在按鈕被點擊後(特別是基於AJAX調用返回的內容)動態更改。使用動態URL打印到Google雲打印

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事件已被點擊,不過這似乎有些不雅&不當。我查看了與上面鏈接的gpwidget.js,但代碼已被最小化並且無法理解(無論如何,對我來說)。

我似乎渴望的是一個Javascript print函數,您將[文檔URL]和[文檔標題]傳遞給。

有沒有更好的方法來實現所需的功能,而不是'我點擊隱藏的按鈕'?

謝謝您的閱讀。

+0

這是我能與下面的答案做...看到這個線程:http://stackoverflow.com/questions/8593065/customize-google-cloud-print-button-function/10707695#10707695 –

回答

3

您可以打開打印對話框,只要你想要的,只要致電:

gadget.openPrintDialog() 

,這將打開打印機對話框。 因此,對於你的情況,你可能需要使用靜態方法來創建打印按鈕:

cloudprint.Gadget.createDefaultPrintButton("print_button_container"); 

然後將自定義的處理程序按鈕,只要你準備好只要致電:

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

謝謝,尤里。順便提一句,你可以編輯你以前的答案(而不是提供一個新的答案)。 –

2

即使在打印對話框打開之後,您隨時都可以調用方法gadget.setPrintDocument()。

+0

謝謝尤里。我可以打印對話框塊(等待),直到我打電話給setPrintDocument(即,直到我得到一個Ajax響應,告訴我什麼是PDF網址)? –