2014-08-29 69 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