2014-01-30 86 views
5

我用pdf.js生成了一個文檔,它顯示正確。我沒有打印按鈕。如何添加按鈕以允許用戶打印它? 我使用的是Chrome。如何打印pdf.js文件?

+0

顯示一次,報價<按鈕的onclick = window.print()>打印此頁 - 嵌入iframe,如果這是你想要打印的。 – dandavis

回答

7

嘗試使用JavaScript函數window.print();,它打開打印對話框。

你將不得不添加一個按鈕到你的html,這將觸發命令 - 它不可能在pdf中。

出於這個原因,你需要一個iFrame,並使用這樣的:

function printIt() { 
    var wnd = window.open('http://your-pdf-url'); 
    wnd.print(); 
} 

<input type="button" value="Print" onclick=printIt()> 

window.print()是行不通的,因爲它也將打印周圍的HTML。

編輯:

從你的評論,我現在知道了,你要打印的畫布元素的含量 - 這是容易得多。

你不需要一個iframe,你可以把按鈕放在同一頁上,並使用window.print();

爲了僅打印畫布元素,以及隱藏的環境(如按鈕),您可以使用CSS語法是這樣的:

@media print 
{  
    .no-print, .no-print * 
    { 
     display: none !important; 
    } 
} 

@media print指定的CSS代碼,僅適用對於網頁,如果它被打印。如果您現在將類.no-print設置爲除canvas-element之外的所有內容,則只會打印您的pdf。

您也可以使用這個CSS代碼,如果它更容易:

@media print 
{  
    * 
    { 
     display: none; 
    } 
    canvas 
    { 
     display: inline; 
    } 
} 
+0

謝謝,但問題是我沒有pdf的網址。我從服務器獲得了pdf的base64表示形式,將其轉換爲數組並從中創建pdf.js文檔。 – Dejo

+1

@Dejo:您正在通過瀏覽器訪問您的PDF - 所以必須有一個URL,它將開始生成pdf。如果你把它放到一個iframe中,你也可以使用'var wnd = document.getElementById(「myframe」)。contentWindow;' – maja

+0

Thx,但它不會那麼容易,因爲它在canvas元素中呈現。 – Dejo

-1

我一直在尋找一個解決方案來了這麼久,然後我降落在這個JS插件:

http://printjs.crabbly.com/

它就像一個魅力!

0

如果你想保持一致和食堂都使用jQuery儘可能少的,你可以嘗試這樣的:

<a href="#PATH_TO_PDF.pdf" target="_blank" onclick="window.print()"> print PDF </a>