簡體   English   中英

在asp.net中生成網頁的打印預覽

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM