2016-10-11 5 views
0

У меня возникли проблемы, выполнив следующую команду беззвучно GhostScript:Ghostscript не интерпретируют поставки принтера

-q -dBATCH -dNOPAUSE -dNODISPLAY -c «метка/NoCancel истина/OUTPUTFILE (\\ золотник \ ServerName \ PrinterName)/UserSettings < </DocumentName (тест) >> (mswinpr2) finddevice putdeviceprops setdevice»-f "C: \ test.pdf" "C: \ test2.pdf"

команда Безразлично «Я выполняю молча, он продолжает предлагать мне выбрать принтер, поэтому я подозреваю, что свойство OutputFile может быть проблемой здесь. Раньше у меня была другая команда, которая работала отлично (см ниже), но требование для установки DocumentName заставил меня изменить его:

-dPrinted -dBATCH -dNOPAUSE -dNOSAFER -q -sDEVICE = mswinpr2 -sOutputFile = "\\ spool \\ ServerName \ PrinterName" "c: \ test.pdf"

Может ли кто-нибудь указать мне направление вправо? Чтобы быть понятным, команда работает после подтверждения приглашения принтера. Я бы предпочел встроенное решение, так как эта команда вызывается из управляемого кода с динамическим именем документа.

ответ

0

Оказывается, что вам нужно, чтобы избежать обратной косой черты в припиской части ..

-q -dBATCH -dNOPAUSE -dNODISPLAY -c «метка/NoCancel истина/OutputFile (\\\\ золотник \\\ \\\ ServerName \ PrinterName)/UserSettings < </DocumentName (тест) >> (mswinpr2) finddevice putdeviceprops setdevice»-f "C: \ test.pdf" "C: \ test2.pdf"

Выше работал в консоли, когда я включил его в свой проект C#, мне пришлось снова избежать этих экранов, в результате чего эта строка C#

-q -dBATCH -dNOPAUSE -dNODISPLAY -c \ "mark/NoCancel true/OutputFile (\\\\\\\\ spool \\\\\\\\\\ spool \\\\\\\\\\] имя_сервера \\ имя_сервера)/UserSettings < </DocumentName (тест) >> (mswinpr2) finddevice putdeviceprops setdevice \»-f \ "C: \\ test.pdf \" \ "C: \\ test2.pdf \"

Красивая не так ли?/s

+1

Вместо этого вы всегда можете использовать шестнадцатеричные строки, для которых не нужны экраны. – KenS

0

Устройство mswinpr2 является, мягко говоря, хакерским и нестандартным, о чем свидетельствует требование, -стандартный PostScript для его настройки.

Вы можете попробовать оставить исходную командную строку без изменений, и использовать это (до ввода файлов), чтобы установить DocumentName:

-c "currentdevice //null //false [ /UserSettings <</DocumentName (test) >> .putdeviceparams pop pop" -f 

Это должно перенастроить устройство после его установки. Я не в состоянии проверить это, я боюсь, поскольку ваша командная строка вызывает ошибку rangecheck для меня, даже когда я использую действующий принтер.

+0

Спасибо за то, что посмотрели на него, к сожалению, это не сработало, см. ответ ниже. –