Я запрограммировал службу Windows, которая открывает документ в Microsoft Word, а затем распечатывает его на PDF-принтере Ghostscript для создания PDF-файла.

Он отлично работает на сервере Windows 2003. Но запустить его на Windows 2008 r2 не удается. Я знаю о папках рабочего стола, которые необходимо создать в системном профиле, и это решило еще одну проблему, с которой я столкнулся вначале.

Если я вместо этого запускаю сервис как приложение, все работает отлично. Так что, похоже, все настроено и настроено правильно.

Но когда я запускаю его как Сервис, я получаю следующую ошибку в моем лог-файле, сгенерированном из Microsoft Word:

Ошибка в Microsoft Word: Word не может печатать. Принтер не установлен.

Я добавил принтер и вручную выбрал драйвер Ghostscript, а также установил его в качестве принтера по умолчанию. Так и должно работать.

Когда я добавил принтер, я вошел в систему как администратор. И это тот же пользователь, который запускает Сервис (это не системный пользователь). Однако я где-то читал, что службы все еще используют среду внутренних пользователей в 2008 году, так что, возможно, в этом проблема.

1 ответ1

0

Вы не поверите этому. Я наконец получил это на работу.

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

while (WordApp.BackgroundPrintingStatus> 0){sleeeeeeeeep в течение 250 миллисекунд}

Удаление этого решило проблему !! Задание на принтер никогда не застревает и идет гладко.

Невероятно ..

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .