Устройство mswinpr2 должно иметь возможность выбрать принтер Windows, да. Если по какой-либо причине это невозможно (например, неправильно введено имя принтера), появится диалоговое окно выбора принтера. В противном случае он не знает, куда отправлять вывод. Я должен был бы предположить, что это ваша проблема (ничего общего с добавлением дополнительных ключей)
Вы должны использовать% printer% из командной строки, вам нужно только удвоить% в командном файле, потому чтопакетная обработка файлов пытается интерпретировать%, поэтому вы должны его избежать. Так что, если вы удвоите% в командной строке, тогда да, это действительно вызовет диалоговое окно, потому что% printer% отличается от %% printer %%, поэтому Ghostscript не распознает его как принтер.
Я бы посоветовал вам продолжать работать из командной строки, пока не получите результат, так что не удваивайте%.
Кроме этого, его сложно комментировать. Получаете ли вы что-нибудь на обратном канале (вы также захотите сбросить -q во время отладки)? Очевидно, я не сижу перед вашей системой, поэтому я не вижу, как называется принтер .....
FWIW Я попробовал его здесь с принтером «Adobe PDF», и он работает,но использование «Microsoft XPS Document Writer» этого не делает, и фактически даже при выборе этого из диалогового окна не удается «Невозможно открыть исходное устройство».
[edit]
Немного отладки позже.... Функция DocumentProperties () не работает с Microsoft XPS Document Writer. Я подозреваю, что это связано с тем, что система печати в Windows была значительно переработана для Vista и выше, а Windows 10 избавилась от большей части устаревшего кода. Я подозреваю, что этот старый вызов Win32 API просто не работает с новыми устройствами.
Если ваш принтер работает, когда вы выбираете его в диалоговом окне печати, это не та же проблема. Для меня этот принтер дает сбой, даже если выбран в диалоговом окне печати. Кажется, он просто не совместим со старым Win32 API.
NB. Здесь также отображается ошибка «Ошибка StartDoc принтера (ошибка 00000006)».
Так что я все еще подозреваю, что у вас есть проблемы симя принтера. Возможно, быстрая проверка состояла бы в том, чтобы установить имя на что-то очень простое, например «Printer1», и попробовать это.
Я не могу вспомнить ничего, что изменилось в устройстве ljet4, что могло бы вызвать проблему, выНе говорите, что это за ошибка или даже где она происходит, на принтере или в сообщении Ghostscript, так что на самом деле я ничего не могу предложить.