PrintDialog中拒绝访问网络打印机

时间:2016-09-29 17:31:06

标签: c# wpf printing

我正尝试从代码打印到网络打印机,但打印对话框中的网络打印机状态显示为Access denied, unable to connect,并且打印按钮被禁用。但是如果我从另一个应用程序打印,我可以打印到该打印机。而且,如果我从打印对话框中选择“打印到PDF”,那也可以正常工作。我无法打印到网络打印机。我有某种权限问题吗?

if (File.Exists(previewDocument))
    File.Delete(previewDocument);

PrintDialog printD = new PrintDialog();
printD.PageRangeSelection = PageRangeSelection.AllPages;
printD.UserPageRangeEnabled = true;

if (printD.ShowDialog() ?? false)
{
    XpsDocument xpsDoc = new XpsDocument(previewDocument, FileAccess.ReadWrite);
    XpsDocumentWriter xpsWriter = XpsDocument.CreateXpsDocumentWriter(xpsDoc);
    xpsWriter.Write(((IDocumentPaginatorSource)messageFlow).DocumentPaginator);

    FixedDocumentSequence fixedDocSeq = xpsDoc.GetFixedDocumentSequence();
    printD.PrintDocument(fixedDocSeq.DocumentPaginator, "Hello!");
}

2 个答案:

答案 0 :(得分:0)

您应该在实例化打印对话框后添加此代码片段以找到您的共享网络打印机并打印到它

printD.PrintQueue = New PrintQueue(New PrintServer(@"\\computer server name"), "the exact name of your network printer")

希望有所帮助

答案 1 :(得分:-1)

我还不能发表评论,但我想分享一下我对你的问题的想法。

我从应用程序访问网络驱动器时遇到问题。 即使以管理员身份运行。我认为以类似的方式访问打印机。

我的问题在于用户帐户控制(UAC)。

尝试根据此设置寄存器:Windows 10 and network drive