C#Console App打印到网络打印机

时间:2018-03-15 14:48:08

标签: c# printing console-application

处理将打印作业发送到网络打印机的控制台应用程序。当控制台应用程序在我的本地计算机上运行时,打印机会打印出文档。当我们将控制台应用程序移动到虚拟机并在那里运行时,控制台应用程序会记录它成功打印文档但没有打印任何内容。打印机安装在VM上,我可以从记事本打印出文档。 Wben在vm上观察打印队列,它显示了作业假脱机,但很快就消失了。这是我们的代码:

 public void Print(PrintRequest request)
    {
        Console.WriteLine($"Preparing to print on {request.FullPrinterName}");
        Console.WriteLine($"Document Name: {request.DocumentName}");
        Console.WriteLine($"Document Length: {request.DocumentContent.Length}");

        var srv = new PrintServer($@"\\{ request.HostName}");
        var printQueue = srv.GetPrintQueue(request.PrinterName);
        var fileContent = request.DocumentContent;

        Console.WriteLine($"Attempting to print {request.FullPrinterName}");

        using (var job = printQueue.AddJob($"Print {request.DocumentName}"))
        {
            using (var stream = job.JobStream)
            {                    
                stream.Write(fileContent, 0, fileContent.Length);
            }

            Console.WriteLine($"Successfully printed {request.DocumentName}");
        }
    }

我的本​​地计算机正在运行Windows 7,虚拟机正在运行Windows Server 2012.任何想法在控制台应用程序在本地运行时与在vm上运行时打印的原因。

0 个答案:

没有答案