[英]Generate print preview of a web page in asp.net
<a href="_javascript:window.print()">
<img class="noPrint" src="Images/Print_icon.png" border="0"></a>
這是我用來實現打印功能的唯一代碼。 它生成一個打印對話框。 為了使頁面打印友好,我使用了樣式表並將隱藏的div隱藏在打印頁面中。
現在,我需要生成該頁面的打印預覽。 有什么建議么?
謝謝
到目前為止,基本上沒有可用的功能,但是您可以通過使用Print css創建名稱為print.htm
的相同html文件的副本,並在“打印預覽”按鈕上打開該文件,然后單擊作為彈出頁面並進行渲染,以實現預覽。頁面:
<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>
我真的不認為這是可行的。 您的網頁不了解字體大小(縮放級別),頁邊距,方向或構造打印預覽圖像所需的其他任何知識。
另外,頁面可能引用其他站點的圖像和其他內容。 您的代碼如何知道這里需要什么?
幸運的是,我使用的瀏覽器(IE和Chrome)提供了打印預覽,因此您還是可以免費獲得它。 但是,如果您嘗試手動實現打印預覽,那么我只是認為這不是一個實際目標。
一種方法是在CSS中使用mediaType打印。 僅當在打印模式下打開頁面時,才會應用此CSS。 在css文件中添加以下類:
@media print {
// printer friendly page css
}
另一種方法是使用純JavaScript。 互聯網上有很多關於此的文章 :
如果您具有用於打印機友好頁面的通用模板。 我建議您為打印版本創建一個單獨的頁面,當用戶單擊鏈接時,將其導航到新的打印機友好頁面。 我建議使用這種方法,因為這是萬無一失的,您可以完全控制它,而其他方法都有一些陷阱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.