【发布时间】:2013-08-26 14:14:46
【问题描述】:
我有PrintTest.aspx 页面从数据库加载图像路径并将其呈现在 div 中以打印 这些图像可能多达 20000 张图像。
for (int i = 0; i < Files.Count; i++)
{
HtmlImage image=new HtmlImage();
image.ID="ImageAN"+i.ToString();
image.Src=Files[i].ToString();
image.Alt="PrintImage";
image.Attributes.Add("class","PrintImage");
div_Print.Controls.Add(image);
}
然后调用JavaScript函数打印div_Print的内容
this.ClientScript.RegisterStartupScript(this.GetType(), "ClientScript", " PrintContent('div_Print')", true);
java脚本函数>
<script type="text/javascript">
function PrintContent(divName) {
var DocumentContainer = document.getElementById(divName);
var WindowObject = window.open();
WindowObject.document.writeln(DocumentContainer.innerHTML);
WindowObject.document.close();
WindowObject.focus();
WindowObject.print();
WindowObject.close();
}
</script>
但是这种情况会导致我的浏览器不断崩溃并关闭。
我希望任何情况下都可以避免这种情况或打印图像而不在 HTML 中呈现它
【问题讨论】:
-
这对于网络浏览器来说太多了,您必须将其分成单独的块,并且一次打印更少的图像。
-
@bfavaretto,这没有意义。数据将在 n 时间内假脱机到打印机,是吗?谁在乎页面有多大,打印需要很长时间。
-
@neoistheone 我相信浏览器甚至在向打印机发送任何内容之前就崩溃了......如果例如每张图片50KB,整页1GB!
标签: c# javascript jquery asp.net printing