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

В разработката на софтуер всичко е възможно. Въпреки че нямам уменията да направя такъв в момента, ето как трябва да работи.

  1. Потребител 1 прави "Emoji 1", "Emoji 2" и т.н.
  2. Той споделя с Потребител 2. 2a. Създава се масив от „Emoji 1“, „Emoji 2“ и т.н. 2б. Масивът се изпраща на Потребител 2. Потребител 1 може да качи масива в база данни и Потребителят може да го изтегли или (чрез Airdrop или други подобни) Потребител 1 може да го изстреля направо на Потребител 2.
  3. Потребител 2 получава масива.
  4. Устройството на потребител 2 отваря масива и поставя „Emoji 1“, „Emoji 2“ и т.н. в клавиатурата.

Надявам се това да помогне!!!

  -  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 laser на PrintServerMachine се появява в моите Windows принтери, но не работи...   -  person Diego Oliveira    schedule 03.01.2014


Отговори (1)


Повече от вероятно нямате достатъчно права за печат на този мрежов принтер чрез Visual Studio. Можете да опитате да се представите за друг потребител или да повишите текущите нива на потребителски достъп, за да позволите печат на този мрежов принтер.

Като алтернатива трябва да опитате да използвате класа printing.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