C# 如何在asp.net中打印具有特定大小的多个图像?
我有agridview显示问题,每行显示问题和名为“打印”的模板字段 当我按print时,我想循环到数据库中,获取所有属于此问题的文档(如图像),并以固定大小(打印纸张大小)打印 我使用这个代码C# 如何在asp.net中打印具有特定大小的多个图像?,c#,asp.net,printing,C#,Asp.net,Printing,我有agridview显示问题,每行显示问题和名为“打印”的模板字段 当我按print时,我想循环到数据库中,获取所有属于此问题的文档(如图像),并以固定大小(打印纸张大小)打印 我使用这个代码 PrintDocument pd = new PrintDocument(); if (Images.Count >0) { foreach (string file in Images)
PrintDocument pd = new PrintDocument();
if (Images.Count >0)
{
foreach (string file in Images)
{
try
{
filename = file;
if (!File.Exists(filename))
{
throw new FileNotFoundException();
}
pd.PrintPage += Doc_PrintPage;
pd.Print();
}
catch (Exception exce)
{ MessageBox.Show(exce.Message.ToString()); }
}
}
private void Doc_PrintPage(object sender, PrintPageEventArgs e)
{
System.Drawing.Image i = System.Drawing.Image.FromFile(filename);
e.Graphics.DrawImage(i, 0, 0);
}
但打印对话框未出现,打印的文档不适合打印纸张
如何实现此功能您必须使用javascript(或类似的东西,例如jQuery)在浏览器上打印图像。您不能通过ASP.NET直接与用户计算机交互 ASP.NET是一种服务器端语言 实际上,唯一能够同时支持服务器端和客户端的语言是Java,因为您可以使用Java应用程序与用户计算机进行交互,但是我不建议这样做 您无法从Web服务器直接与用户计算机交互是有原因的,这仅仅是出于安全原因。如果有可能的话,那么任何人都可以设置一个Web服务器,基本上只需把任何访问的人都搞定 我想看看这个:
这是客户机/服务器差异的问题。如果您运行服务器代码,它将在服务器上运行,因此在服务器上打印,而不是在客户端打印…不,我希望它作为客户端,因此显然您不应该使用服务器代码来执行此操作。。。使用print CSS和javascript的print()函数,您可能会达到您想要的效果,但是您必须研究并返回一个特定的问题亲爱的用户1637402,用户Bartdude说的是100%正确的。您缺少一些基本的web应用程序原则,请允许我澄清。您提供的代码在web服务器上执行,而不是在运行浏览器的最终用户计算机上执行,因此,您必须从数据库中获取日期,并将其转换为客户端浏览器计算机下载并向用户显示的内容>确定,谢谢4解释,但我真的想运行服务器代码来获取所有图像吗?好的,但我如何将图像从数据库传递到javascript?请告诉我需要帮助。有人可以帮助我吗?有人知道如何获取吗数据库中的所有图像,并将其传递给javascript,然后通过其链接打印所有图像?