【问题标题】:Generate print preview of a web page in asp.net在 asp.net 中生成网页的打印预览
【发布时间】:2012-04-18 05:15:34
【问题描述】:
<a href="_javascript:window.print()">
<img class="noPrint" src="Images/Print_icon.png" border="0"></a>

这是我用来实现打印功能的唯一代码。它会生成一个打印对话框。为了使页面打印友好,我使用了样式表并将不需要的 div 隐藏在打印页面中。

我现在需要生成该页面的打印预览。有什么建议吗?

谢谢

【问题讨论】:

    标签: javascript jquery asp.net print-preview


    【解决方案1】:

    到目前为止,基本上没有可用的功能,但您可以通过使用 Print css 创建名称为 print.htm 的相同 html 文件的副本并在按钮 Print Preview 上打开此文件单击作为弹出页面并呈现它来实现,这将预览页面:

    <html> 
    <head> 
    <title></title> 
    //do it in simple way.. 
    <script LANGUAGE=”JavaScript”> 
    function displayMessage(printContent) { 
    var inf = printContent; 
    win = window.open(”print.htm”, ‘popup’, ‘toolbar = no, status = no’); 
    win.document.write(inf); 
    win.document.close(); // new line 
    } 
    </script> 
    </head> 
    <body> 
    <div id=”printarea”>Print this stuff.</div> 
    <a href=”javascript:void(0);” onclick=”displayMessage(printarea.innerHTML)”>Print Preview</a>
    
    </body> 
    </html> 
    

    【讨论】:

    • 嘿!!!你的代码运行良好,但问题是我不能在这里使用 div 的 id..我想打印超过 1 个 div。所以你能建议任何其他选择吗??
    • 您可以根据需要创建任意数量的 div,只需在您的 print.htm 中添加您想要打印的所有内容。
    【解决方案2】:

    我真的不认为这很实用。您的网页不知道字体大小(缩放级别)、页边距、方向或构建打印预览图像所需的任何其他信息。

    此外,网页还可以引用其他网站的图片和其他内容。您的代码如何知道这里需要什么?

    幸运的是,我使用的浏览器(IE 和 Chrome)提供打印预览,所以无论如何您都可以免费获得它。但是,如果您尝试手动实现打印预览,我只是不认为这是一个实际目标。

    【讨论】:

    • 是的,浏览器得到了它们,但我需要手动实现它。这是一种要求。
    【解决方案3】:

    一种方法是在您的 css 中使用 mediaType 打印。只有当您以打印模式打开页面时,才会应用此 css。在您的 css 文件中添加以下类:

    @media print {
    // printer friendly page css
    }
    

    另一种方法是使用纯 JavaScript。网上有很多articles为此:

    如果您有打印友好页面的通用模板。我建议您为打印版本创建一个单独的页面,当用户单击链接时,将其导航到您的新打印机友好页面。我会推荐这种方法,因为这是万无一失的,而且你可以完全控制它,其他方法都有一些缺陷。

    【讨论】:

    • 是的,我知道这是唯一的选择..thnx
    猜你喜欢
    • 1970-01-01
    • 2016-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-08
    • 2019-08-12
    • 1970-01-01
    相关资源
    最近更新 更多