c# - 如何从 .Net 打印对话框中删除打印机?

标签 c# .net printing

我正在开发一个 Winforms 应用程序,它允许用户打印一些不同的 Reporting Services 报告。不幸的是,如果用户尝试使用 Adob​​e PDF 打印机打印成 PDF,它就会崩溃。我们未能解决此问题,因此作为变通办法,我们希望取消用户使用 Adob​​e PDF 打印机进行打印的功能。

有没有办法以编程方式从打印对话框的打印机列表中删除 Adob​​e PDF 打印机?

最佳答案

在调用 PrintDialog() 之前用打印机名称调用它....我认为这会解决您的问题

public bool RemovePrinter(string printerName)
{
        ManagementScope scope = new ManagementScope(ManagementPath.DefaultPath);
        scope.Connect();
        SelectQuery query = new SelectQuery("select * from Win32_Printer");
        ManagementObjectSearcher search = new ManagementObjectSearcher(scope, query);
        ManagementObjectCollection printers = search.Get();
        foreach (ManagementObject printer in printers)
        {
            string printerName = printer["Name"].ToString().ToLower();

            if (printerName.Equals(printerName.ToLower()))
            {
                printer.Delete();
                break;
            }
        }                    

        return true;
}

关于c# - 如何从 .Net 打印对话框中删除打印机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4272713/

相关文章:

c# - 使用特定命令的 C# 语音识别

c# - 如何使用 Control.DrawToBitmap 将 Form 渲染为没有装饰(标题栏、边框)的 Bitmap?

html - 如何在不使用 WebBrowser 控件的情况下打印网页

c# - indexOf() 的性能与函数循环做同样的事情

css - 媒体查询彩色单色和打印

ios - PrinterToPrint 不显示打印作业进度对话框

c# - 用于属性注入(inject)的 DryIOC 容器配置

c# - Oracle Entity Framework 'Specified cast is not valid' GetDecimal

c# - Return value, Ref, Out 有什么区别吗?

java - 对服务器上的 MS Office(Word、Excel 等)和 PDF 文件进行数字签名