如何从服务器端(asp.net)触发窗口打印对话框?
问题描述:
我想在服务器端生成PDF文件,然后作为响应,希望发送该文件(缓冲区,文件名 - 无论可能工作),并显示一个打印对话框,要求用户打印生成的PDF文件。如何从服务器端(asp.net)触发窗口打印对话框?
我试过下面的东西。但它不会触发window.print()对话框。
public static void ForcedPrint(HttpResponse response, byte[] buffer, string fileName, string fileExtension) {
response.Clear();
response.Buffer=true;
response.Write("<script>window.print();</script>");
response.Charset="";
response.Cache.SetCacheability(HttpCacheability.NoCache);
response.ContentType="application/pdf";
response.BinaryWrite(buffer);
response.Flush();
response.End();
}
有人可以帮助我吗? 我正在寻找的功能是,我应该能够在服务器上创建PDF文件,并作为响应用户应该得到一个对话框来打印生成的文件。
在此先感谢。
答
你需要嵌入在HTML文档中的PDF,说在一个div称为thePDF
,并在文件中的JavaScript代码,你需要调用
thePDF.printWithDialog()
出现的对话框将是Adobe Reader插件的打印对话框而不是浏览器的打印对话框;这将允许在打印之前选择页面等。
答
据我所知,您无法在服务器上向浏览器生成打印命令。你可以做的最多的是生成JavaScript,它会使它弹出一个打印对话框(window.print()
),但是这不会帮助你做你想做的事情。
只是猜测,但你可以尝试生成一个页面,并指向PDF文件的iframe,并在基本页面中有告诉iframe打印的javascript?
希望这有助于
达科
我没有得到这个。请给我看一些示例代码,或者一些链接以供参考。 感谢您的回复。 – 2009-07-19 20:06:27