Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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
在asp.net C#中的客户端打印机上打印pdf文件?_C#_Asp.net_Pdf Generation - Fatal编程技术网

在asp.net C#中的客户端打印机上打印pdf文件?

在asp.net C#中的客户端打印机上打印pdf文件?,c#,asp.net,pdf-generation,C#,Asp.net,Pdf Generation,我有一个问题,在我的项目中,我打开了一个动态生成的PDF文件在弹出窗口中正常工作。但现在我想在客户端打印机打开弹出窗口时直接打印pdf,我如何解决它 我需要你的帮助。请为我推荐一些代码。您需要使用javascript打开弹出窗口,并在其上启动print()函数 var opts = 'width=700,height=500,toolbar=0,menubar=0,location=1,status=1,scrollbars=1,resizable=1,left=0,top=0'; var ne

我有一个问题,在我的项目中,我打开了一个动态生成的PDF文件在弹出窗口中正常工作。但现在我想在客户端打印机打开弹出窗口时直接打印pdf,我如何解决它


我需要你的帮助。请为我推荐一些代码。

您需要使用javascript打开弹出窗口,并在其上启动
print()
函数

var opts = 'width=700,height=500,toolbar=0,menubar=0,location=1,status=1,scrollbars=1,resizable=1,left=0,top=0';
var newWindow = window.open(yourUrl,'name',opts);
newWindow.print();

请注意,您打开的url必须与当前页面位于同一域中,才能正常工作。

请尝试此代码,它将对您有效

    Process printjob = new Process();

    printjob.StartInfo.FileName = @"D:\R&D\Changes to be made.pdf" //path of your file;

    printjob.StartInfo.Verb = "Print";

    printjob.StartInfo.CreateNoWindow = true;

    printjob.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;

    PrinterSettings setting = new PrinterSettings();

    setting.DefaultPageSettings.Landscape = true;

    printjob.Start();

我也试过这个,但它不能直接在客户端的打印机上打印。它只是在弹出窗口中打开文件,而不是从客户机的默认打印机自动打印。我需要在弹出窗口打开时自动打印该文件,有没有办法?没有。只能打开“打印”对话框。它打开打印对话框了吗?它应该这样做。但你不能强迫打印,这是一个可怕的想法。想象一下,如果有可能的话,你可以用它进行攻击,互联网将不可用。是的,它会打开打印对话框。但我想给的功能,将直接打印该文件从打印机,以便用户不需要点击打印按钮,它直接打印出来时,文件是在弹出窗口打开。我可能在其他项目中看到过这种特性。但我不知道怎么做,不知道。不可能从没有插件的浏览器或类似的东西-不是从你的基本网站。你在哪里见过这个?我真的很想看。如果你有一个浏览器插件/插件或一些ActiveX魔术,也许你可以做到这一点,但即使这样听起来也不太可能,而且完全可怕。想象一下如果我能做到这一点会有多恐怖;我可以将一些网站的链接发送给我的“朋友”,如果他们点击,他们的打印机就会开始打印数千页的营销材料(是的,好的,小马的图片);不是。在客户需求的该页面中,它列出了“WebClientPrint处理器”。在代码注释中:“WCPP实用程序安装在客户端”。这意味着一个简单的基本浏览器无法做到这一点,客户端将需要安装一个插件。或者你想创建一个类似的插件?或者,如果客户端拥有该插件,您希望使用它吗?如果是这样,您应该改为询问。如果这是一个asp.net站点,那么它将在服务器而不是客户端上打印。请注意!这不会在客户端上打印!