2014-08-29 39 views
2

我正在嘗試創建一個打印機友好頁面。 我們已經使用第三方軟件對頁面進行了快照,並將圖像文件吐出。現在我們創建了一個圖片頁面的鏈接,並且希望創建一個可以直接打開打印預覽的JavaScript。打開另一頁或打印圖像預覽

我已經發現了兩個Java腳本首先在一個新的頁面,另一個打開打印預覽打開。這在IE 9,我需要我曾嘗試任何事情:-)

這兩個JavaScript的將所有的作品我知道把它們結合起來,但沒有成功.. 我能請大師幫忙嗎? :-)

第一個腳本:

function printpage(url) 
{ 
    child = window.open(url, "", "height=1, width=1"); //Open the child in a tiny window. 

    window.focus(); //Hide the child as soon as it is opened. 
    //child.print(); //Print the child. <-- I need this to call PrintPreview() 
    child.close(); //Immediately close the child. 
} 

第二個腳本打印預覽部分

function PrintPreview() 
{ 
    var OLECMDID = 7; 

    /* OLECMDID values: 
    * 6 - print 
    * 7 - print preview 
    * 0 - open window 
    * 4 - Save As 
    */ 

    var PROMPT = 1; // 1 PROMPT USER 2 DON'T PROMPT USER 
    var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>'; 


    window.document.body.insertAdjacentHTML('beforeEnd', WebBrowser); 

    WebBrowser1.ExecWB(OLECMDID, PROMPT); 
    WebBrowser1.outerHTML = ""; 

} 

任何幫助是非常讚賞。

回答

0

您可以給要打印的元素指定一個特殊的id,並使用css按照自己想要的樣式對其進行設置。然後,你可以調用使用

window.print(); 

一個好的技巧是,以填補所需的信息的可打印DIV瀏覽器的打印預覽只是顯示打印視圖(通過Ajax調用?)之前,打印後視圖顯示清晰可打印的div。

你可以找到在這個線程的建議:How to print HTML content on click of a button, but not the page?通過回答並行2ne

這裏是一個純CSS版本JSFIDDLE

<div class="example-screen">You only see me in the browser</div> 

<div class="example-print">You only see me in the print</div> 

而CSS:

.example-print { 
    display: none; 
} 
@media print { 
    .example-screen { 
     display: none; 
    } 
    .example-print { 
     display: block; 
    } 
} 
+0

您好,感謝您的回答,德凱。但是,我們想要打印的頁面是圖像,所以我們沒有放置CSS的靈活性。它只是一個PNG文件。 – 2014-09-01 03:33:38

+1

如果我們可以傳遞一個url到第二個函數(PrintPreview()),那麼我得到的JavaScript將是完美的解決方案 – 2014-09-01 03:36:44