c# - 如何在不遍历所有 papersources 的情况下直接打印到 "Tray 2"

标签 c# asp.net printing

现在,代码循环遍历每个打印机来源以获取纸张来源名称 Tray 2

有没有比遍历所有源更快的方法?打印速度很慢,因为我相信代码每次都在为每个纸张来源与打印机通信。由于这是网络打印机,打印可能需要一分钟!

我能想到的一个解决方案是将所有 papersources 加载到一个数组中,然后找到 Tray 2,但我不确定该怎么做。

另一种解决方案是使用 Tray 2 直接打印到源名称,但是怎么做呢?

下面的代码是我们目前拥有的:

private void reportPrintingSystem_StartPrint(object sender, PrintDocumentEventArgs e)
{
    for (int i = 0; i < e.PrintDocument.PrinterSettings.PaperSources.Count; i++)
        if (e.PrintDocument.PrinterSettings.PaperSources[i].SourceName.Equals("Tray 2"))
        {
            e.PrintDocument.DefaultPageSettings.PaperSource = e.PrintDocument.PrinterSettings.PaperSources[i];
            e.PrintDocument.PrinterSettings.Copies = 1;
            break;
        }
}

最佳答案

这整个代码真的是不必要的,如果默认打印设置没问题,可以跳过。在我们的环境中,某些打印机可能需要特定设置,如果需要,则逐步执行代码并找到包含所需纸张来源的数组并将其硬编码。

关于c# - 如何在不遍历所有 papersources 的情况下直接打印到 "Tray 2",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36877529/

相关文章:

javascript - 向 MVC Controller 发出 AJAX 请求并从 js 中的响应中获取数据

c# - 如何将文件文档发送到打印机并进行打印?

c# - DhtmlX 甘特图未获得正确的链接目标 ID

c# - 如何在 C# 中的每个窗体加载上调用一个函数?

asp.net - Visual Studio 中的 FTPS 发布失败,结果为 "Secure connection was closed by the remote connection end."

LPR 命令的 Linux 打印问题

python - 在 IPython 并行进程中打印到标准输出

c# - 如何跟踪调用方法的次数

c# - 使用 .Net Core 的 T4 参数指令

.net - ASP.NET 开发服务器 - 源代码可用吗?