【问题标题】:Printing a pdf file on client side printer in asp.net C#?在asp.net C#的客户端打印机上打印pdf文件?
【发布时间】:2014-03-20 22:48:59
【问题描述】:

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

我需要你的帮助。请为此建议我一些代码。

【问题讨论】:

    标签: c# asp.net pdf-generation


    【解决方案1】:

    您需要使用 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();
    

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

    【讨论】:

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

    试试这个代码,它会为你工作。

        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();
    

    【讨论】:

    • 如果这是一个 asp.net 站点,那么它将在服务器而不是客户端上打印。
    • 警告!这不会在客户端上打印!
    猜你喜欢
    • 1970-01-01
    • 2014-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多