Печать из 1C c сервере через ""Wscript.Shell""

1. robix 25.11.20 17:38 Сейчас в теме
Здравствуйте. Есть реализация печати, когда с терминала сбора данных на сервер приходит пакет и формируется документ, выводящийся на печать, через утилиту "PDFtoPrinter". Сам принтер установлен на сервере 1С.

//...
WshShell = Новый COMОбъект("Wscript.Shell");
СтрокаКоманды = """C:\PDFtoPrinter.exe"" " + """" + ИмяПечатногоФайла + """ """ + ИмяПринтера + """";
WshShell.run(СтрокаКоманды)


Изредка бывает, что печать не срабатывает и процесс "DFtoPrinter.exe" зависает в задачах на сервере windows.
Возможно проблема в софте или в чем-то еще. Специально воспроизвести ошибку не удается.

Посоветуйте, есть ли более отказоустойчивые способы (может быть софт) для реализации такого рода печати ?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Dream_kz 129 25.11.20 18:30 Сейчас в теме
(1) FoxitReader. Пока не подводил
3. XAKEP 25.11.20 18:56 Сейчас в теме
установлен ли принтер по умолчанию и один ли он вообще
4. XAKEP 25.11.20 18:57 Сейчас в теме
ИмяПринтера + """";

может явно указать принтер или даже модель
12. robix 30.11.20 13:47 Сейчас в теме
(4) Так он итак явно указан. Как еще "явнее" :)

Вместо "
"" + ИмяПринтера + """"
получаем, например
"Samsung"

Это и есть имя принтера на windows-сервере
5. CheBurator 2725 25.11.20 19:46 Сейчас в теме
"ИмяПечатногоФайла " - какого формата файл? и где он лежит?
6. starik-2005 3162 26.11.20 00:26 Сейчас в теме
Любой линух печатает PDF встроенными утилитой печати lpr. У меня было 5 виртуальных серверов с Debian, которые печатали в день по 5к страниц, и за несколько лет не было ни одного сбоя. Хотя... Кому я это все рассказываю.
7. CheBurator 2725 26.11.20 01:27 Сейчас в теме
8. robix 26.11.20 09:33 Сейчас в теме
Спасибо за советы. Принтер установлен. Файл создается в каталоге временных файлов как pdf. По умолчанию или нет принтер это не важно. PDFtoPrinter позволяет указать принтер.
9. XAKEP 26.11.20 12:41 Сейчас в теме
(8)
PDFtoPrinter filename.pdf "\\SERVER\PrinterName"
10. XAKEP 26.11.20 12:42 Сейчас в теме
(8)
Troubleshooting: If the program doesn't print your document, or if the the PDF-XChange Viewer opens when you run PDFtoPrinter.exe, then you can help to identify the problem and possibly solve it. Either rename PDFtoPrinter.exe to a name that includes "debug", perhaps PDFtoPrinter-debug.exe (or make a copy of the program and rename the copy so that its name includes "debug"). Alternatively, run the program (with its original name) with the command-line switch /debug (no quotation marks) added to whatever command-line switches you already use. When you run the program, using either of these methods, it will copy the PDF-Xchange.exe print command to the Windows clipboard; you can then paste this command into a Windows command prompt to see what may have gone wrong.
11. robix 26.11.20 13:12 Сейчас в теме
Фишка в том, что, когда идет сбой в печати, то при запуске вручную ошибки не воспроизвести. Возможно дело и не в утилите PDFtoPrinter. Если бы она умела писать лог ошибок, другое дело.
13. Timekiller 09.02.21 17:16 Сейчас в теме
Использовали Суматру, работает стабильно:
ЗапуститьПриложение("""D:\Program Files\SumatraPDF\SumatraPDF.exe"" -print-to """+Принтер+""" """+ИмяФайла+"""");

или более правильный вариант:
Shell = Новый COMОбъект("WScript.Shell");
Shell.Run("SumatraPDF.exe -print-to """+Принтер+""" """+ИмяФайла+"""");
14. idiked 18.02.23 15:39 Сейчас в теме
Неплохой вариант печати с сервера на Ghostscript
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот