如何从服务器端(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插件的打印对话框而不是浏览器的打印对话框;这将允许在打印之前选择页面等。

+0

我没有得到这个。请给我看一些示例代码,或者一些链接以供参考。 感谢您的回复。 – 2009-07-19 20:06:27

据我所知,您无法在服务器上向浏览器生成打印命令。你可以做的最多的是生成JavaScript,它会使它弹出一个打印对话框(window.print()),但是这不会帮助你做你想做的事情。

只是猜测,但你可以尝试生成一个页面,并指向PDF文件的iframe,并在基本页面中有告诉iframe打印的javascript?

希望这有助于

达科