我希望使用C#,Microsoft Visual Studio,asp.net进行打印。
目标:我正在尝试打印传真文档中的所有页面。
格式:传真文档作为包含多个页面的单个.tiff文件接收。
需要做什么: - 我需要迭代.tiff图像中的每一页并将它们全部打印出来。
// This function will iterate all pages, one at a time. //
protected void PrintAll_Click(object sender, EventArgs e)
{
// counts number of pages in the fax document.//
int number = _FaxPages.Count;
// for loop to iterate through each page. //
for (int i = 0; i < number; i++)
{
string _FaxId = Page.Request["FaxId"];
_PageIndex = i;
imgFax.ImageUrl = "ShowFax.ashx?n=" + _FaxId + "&f=" + _PageIndex + "&mw=750";
PrintAll.Attributes.Add("onclick", "return printing()");
}
}
在我的Java脚本中我有:
function printing() { window.print(); }
现在的问题是:
该功能仅打印一页(tiff文件的最后一页)....它打印整个窗口,而不仅仅是整个Web浏览器窗口中嵌入的.tiff图像。
关于如何打印.tiff嵌入图像而不是整个网络浏览器窗口的任何想法。
虽然我的for循环遍历页面。只有在循环遍历所有页面并在最后一页停止后才会调用print函数(例如第6/6页)。然后它只打印最后一页(以及浏览器窗口中的其余内容)。这不是我想要发生的......我不想在浏览器窗口上打印所有多余的材料,如按钮,链接等...我只想从浏览器窗口中嵌入.tiff图像。
答案 0 :(得分:1)
在将页面发送到客户端之前,您当前的代码将遍历服务器端的所有页面并更新映像URL。这意味着ImageUrl
将永远只是您的最后一页。
要打印所有图像,有多种解决方案:
ShowFax.ashx
,添加一个选项以立即渲染所有传真页面并将其放入图片网址。Image
元素到父容器。printing()
进行回发,增加页面索引和图片上的网址,然后重复代码。要仅打印图像,请使用CSS样式表隐藏其他元素并添加media="print"
,如下所示:
<link rel="stylesheet" type="text/css" media="print" href="print.css" />