2011-11-13 162 views
2

使用Chrome和Firefox等瀏覽器時,可以選擇將頁面打印爲PDF(即將網頁保存爲PDF文件)。自動打印網頁至pdf

<a href="JavaScript:window.print();">Print this page</a> 

此代碼打開從用戶手動選擇打印到PDF的打印頁面。這可以自動完成嗎?如果是這樣,請幫助。

回答

0

是的......只要您的用戶安裝了一些東西。

  1. 他們需要一個PDF打印驅動程序,如PrimoPDF
  2. 如果要自動打印到該驅動程序,就需要安裝一個插件,如JS打印設置(適用於Firefox)或MeadCo ScriptX爲IE

然後,使用該插件的API,您可以選擇要打印到哪個驅動程序。你甚至可以跳過打印對話框。

但是,一個更好的選擇是生成PDF服務器端,將它流式傳輸給它們,然後使用PDF內部的JavaScript在瀏覽它們時自動打開打印對話框。這樣他們不需要任何插件。

+0

如果用戶運行Linux,這很容易:-) – Pointy

+1

@Pointy:爲什麼?他們是否預裝了PDF打印機? – mpen

+0

@標記我已經嘗試使用html2pdf和dompdf以及..雖然他們似乎是不錯的選擇,他們實際上不是他們。他們不打印表格渲染需要太長時間,圖像大小是固定的,非常不穩定。... – Preets

2

您無法使用Javascript將頁面打印爲pdf。您必須使用服務器端腳本將頁面打印爲pdf。在PHP中,您可以使用第三方PDF庫,如http://www.tcpdf.org

+2

這不完全正確。 – mpen

1

在Javascript中沒有太多可打印的PDF。

最受支持的選項實際上是使用tcpdf等庫來生成服務器端(如Thein Hla Maw所示)。

我不認爲馬克的解決方案是正確的,因爲它需要用戶安裝一些軟件。

對於純JavaScript的PDF生成,有this

NB:thanks SO :-)

+0

感謝您回覆我的問題。我正在爲你投票。這是我能爲你做的最多的事情:-) –