Process.StartInfo.Arguments Имя сетевого принтера не работает

Я хочу печатать PDF-файлы на сетевом принтере, установленном на моем сервере печати. Я написал код ниже, и он работает только для локальных принтеров. Когда я использую имя сетевого принтера, оно не работает.

 Dim ProcessoImp As New Process
    Dim VerToUse As String
    VerToUse = "PrintTo"
    ProcessoImp.StartInfo.CreateNoWindow = False
    ProcessoImp.StartInfo.Verb = VerToUse
    ProcessoImp.StartInfo.FileName = PrintFileList(i)
    ProcessoImp.StartInfo.Arguments = "\\PrintServerMachine\samsung laser"
    ProcessoImp.Start()
    ProcessoImp.WaitForExit(10000)
    ProcessoImp.CloseMainWindow()
    ProcessoImp.Close()

Помните, что если я использую локальный принтер, он работает отлично, но если это сетевой принтер, он не работает!

Что я могу сделать, чтобы решить эту проблему?


person Diego Oliveira    schedule 02.01.2014    source источник
comment
Будет ли это работать, если вы поместите это в кавычки, например: Arguments = """\\PrintServerMachine\samsung laser"""   -  person Steven Doggart    schedule 02.01.2014
comment
Я сделал, как сказал @StevenDoggart, но не работает...   -  person Diego Oliveira    schedule 03.01.2014
comment
Выдает какую-то ошибку?   -  person Steven Doggart    schedule 03.01.2014
comment
Нет, просто не печатает.   -  person Diego Oliveira    schedule 03.01.2014
comment
Я тоже пробовал: лазер samsung на PrintServerMachine вроде появляется в моих принтерах Windows, но не работает...   -  person Diego Oliveira    schedule 03.01.2014


Ответы (1)


Скорее всего, у вас недостаточно прав для печати на этом сетевом принтере через Visual Studio. Вы можете попытаться выдать себя за другого пользователя или повысить уровень доступа текущего пользователя, чтобы разрешить печать на этом сетевом принтере.

В качестве альтернативы вы должны попробовать использовать класс print.PrintDocument.

Это дублирующий вопрос: Печать из ASP. NET на сетевой принтер

person PeonProgrammer    schedule 02.01.2014
comment
Здравствуйте, я решил эту проблему следующим образом: я удалил строку: ProcessoImp.StartInfo.Arguments = \\PrintServerMachine\samsung laser И затем добавил строку: Shell(String.Format(rundll32 printui.dll,PrintUIEntry /y/ n {0}, \\printermachine\samsung laser)) установить этот принтер по умолчанию в Windows, и он отлично работает! - person Diego Oliveira; 03.01.2014