2012-04-18 62 views
0
<a href="_javascript:window.print()"> 
<img class="noPrint" src="Images/Print_icon.png" border="0"></a> 

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

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

谢谢

回答

0

我真的不认为这是可行的。您的网页不知道字体大小(缩放级别),页边距,方向或其他任何您需要知道的构建打印预览图像的知识。

另外,页面可以引用来自其他网站的图像和其他内容。你的代码如何知道这里需要什么?

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

+0

是的,浏览器得到了他们,但我需要手动实现它。这是一个有点要求。 – sarika 2012-04-18 05:26:05

0

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

@media print { 
// printer friendly page css 
} 

另一种方式是使用纯javascript。网上有一堆articles这个:

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

+0

雅我知道tHats唯一的选择left..thnx – sarika 2012-04-18 05:50:10

1

到目前为止基本上没有可用的功能,但您可以通过使用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> 
+0

嘿!!!我的代码运作良好,但问题是,我不能使用div的id在这里..我想打印多于一个div's.So你可以建议任何其他选项? – sarika 2012-04-18 09:36:37

+0

您可以随心所欲地创建多个div,只需在print.htm中添加您想要打印的所有内容即可。 – 2012-04-18 09:38:54