1

我有一个托管在服务器“A”(SA)上的 Web 应用程序和一个托管在服务器“B”(SB)上的用于打印的 Web 服务。SA 创建需要打印的图像并将其发送给 SB。这样做时,打印速度相当慢,大约 15 秒。但是,如果我使用远程桌面作为用户从托管在 SA 上的应用程序的 webconfig 登录到 SB,那么它将在不到两秒的时间内打印出来。当我登录它时,它似乎正在启动某些东西,这使它打印得更快。知道这可能是什么吗?是否有一种方法可以让我在未登录的情况下保持快速打印?

编辑:正在打印的图像大小约为 20 KB。

这是托管在 SB 上的服务的代码:

public void PrintImage(Stream printImage, string printServer, string printer)
    {
        string printerName = String.Format(@"\\{0}\{1}", printServer, printer);

        Image image = Image.FromStream(printImage);

        PrintDocument printDocument = new PrintDocument();
        PrinterSettings settings = new PrinterSettings();
        settings.PrinterName = printerName;
        printDocument.PrinterSettings = settings;

        printDocument.PrintPage += (s, e) =>
        {
            e.Graphics.DrawImage(image, 0, 0);
        };

        printDocument.Print();
    }

感谢您花时间阅读本文:)

4

2 回答 2

1

我们发现,如果我们在 SB 上创建打印机映射,它在没有远程桌面连接的情况下执行速度也一样快。

于 2013-01-14T18:44:55.840 回答
0

请注意,通常不支持从 Web 应用程序(或服务)进行打印。请参阅msdn此 SO 帖子

于 2016-05-04T22:27:34.740 回答