Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从服务器端(asp.net)触发windows打印对话框?_C#_Asp.net_Pdf_Printing - Fatal编程技术网

C# 如何从服务器端(asp.net)触发windows打印对话框?

C# 如何从服务器端(asp.net)触发windows打印对话框?,c#,asp.net,pdf,printing,C#,Asp.net,Pdf,Printing,我想在服务器端生成一个PDF文件,然后作为响应,我想发送该文件(缓冲区,文件名-任何可能的工作),并显示一个打印对话框,要求用户打印生成的PDF文件 我试过下面的方法。但它不会触发window.print()对话框 publicstaticvoidforcedprint(HttpResponse响应,字节[]缓冲区,字符串文件名,字符串文件扩展名){ response.Clear(); response.Buffer=true; Write(“window.print();”); 响应。Char

我想在服务器端生成一个PDF文件,然后作为响应,我想发送该文件(缓冲区,文件名-任何可能的工作),并显示一个打印对话框,要求用户打印生成的PDF文件

我试过下面的方法。但它不会触发window.print()对话框

publicstaticvoidforcedprint(HttpResponse响应,字节[]缓冲区,字符串文件名,字符串文件扩展名){
response.Clear();
response.Buffer=true;
Write(“window.print();”);
响应。Charset=“”;
response.Cache.SetCacheability(HttpCacheability.NoCache);
response.ContentType=“application/pdf”;
二进制写入(缓冲区);
response.Flush();
response.End();
}
有人能帮我吗? 我正在寻找的功能是,我应该能够在服务器上创建PDF文件,作为响应,用户应该获得一个对话框来打印生成的文件


提前感谢。

据我所知,您无法向服务器上的浏览器生成打印命令。您所能做的最多就是生成javascript,它将通过打印对话框(
window.print()
)弹出,但这无助于您尝试执行的操作

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

希望这有帮助


Darko

您需要将PDF嵌入HTML文档中,比如在名为
thePDF的div中,以及在文档中的JavaScript代码中,您需要调用

thePDF.printWithDialog()

出现的对话框将是Adobe Reader插件的打印对话框,而不是浏览器的打印对话框;这将允许在打印前选择页面等。

我没有;我不明白。你能给我看一些示例代码,或者一些链接以供参考吗。谢谢你的回复。只需在谷歌上搜索
printWithDialog
,你就会从搜索结果中找到一些有用的信息。
thePDF.printWithDialog()