2011-11-26 72 views
0

我想創建一個打印按鈕,當打開一個打印按鈕時,它將打印出當前瀏覽網頁的打印版本。我應該怎麼做呢?我想在ajax/jQuery彈出窗口中顯示文檔的打印預覽。用戶還可以放大,縮小和旋轉內容。創建一個打印鏈接

+0

放大,縮小,旋轉?你的意思是,他們看到的是他們打印的內容? –

+0

正確。它將成爲當前瀏覽頁面的打印預覽版本。 –

回答

2

通常我爲打印介質使用CSS樣式表,並提供打印友好的頁面視圖,我調用頁面並在頁面上添加相應的CSS文件。說我有一個main.css文件來設置我的頁面風格,以及一個print.css打印媒體。在打印預覽視圖中,我將print.css文件鏈接到main.css文件之後,因此可以重新修改頁面視圖以使其更易於打印。你可以在你的URL像這樣:的http:// .... P1 = V1 & ...... &視圖=打印

所以服務器端代碼將重視打印機的CSS文件。如果這是您的解決方案,那麼您可以通過JavaScript添加額外的參數來調用相同的頁面URL。所以你打印預覽按鈕的onclick行動可能是:

$('#printPrevButton').click(function() {window.open(window.location + '&view=print')}); 

注意,上面的代碼是一個示例模擬起來需要更多的工作(比如檢查查詢字符串的存在起始字符等?)。

+0

如果您將樣式表的媒體類型設置爲打印,那麼瀏覽器是否將其用於打印?這將消除對view = print和服務器添加特殊樣式表的需求。 http://meyerweb.com/eric/articles/webrev/200001.html –

+0

如何添加功能,用戶可以放大,縮小,旋轉網頁?我如何去實現這個? –

+0

@PhpMyCode:yes鏈接標記的media = print屬性會導致瀏覽器爲打印介質加載CSS,但不能用於打印預覽。打印預覽位於網頁的同一媒體上,但需要模擬打印介質。通過使用URL參數並在您的服務器端應用程序中寫入代碼,您可以強制打印CSS文件到當前媒體(監視器)。 – farzad