У меня есть внутренний PHP/IIS
на основе приложения.
Мне нужно запустить бэкэнд процесс (powershell)
который генерирует PDF из Crystal Reports и затем отправляет его на принтер.
Я не хочу вызывать powershell напрямую из моей PHP-программы, потому что он зависает на экране браузера во время работы серверной части и редко выполняет его.
Я использую PHP на IIS/Server2008R2
с MSSQL2008R2
в качестве моей платформы базы данных.
Я задаю этот вопрос и собираюсь ответить на него сам, поскольку выяснил, как этого добиться после многих часов исследований и испытаний.
После многих часов исследований и разочарований я нашел следующее решение, которое работает:
freader.exe /t filename PRINTERNAME
отправить его на принтер."C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe" -file c:\pdf.ps\ProcessQueue.ps1
xp_logevent 55555,'Print Job Requested',Informational
SQL Server вызывает запись в журнале событий, которая запускает запланированную задачу, которая запускает мой сценарий на сервере. Сценарий проверяет таблицу printQueue в базе данных, создает файл pdf и печатает его.
Из-за проблем с разрешениями вы не можете заставить PHP напрямую подключаться к EventLOG.
Спасибо многим другим на этом сайте за всю замечательную информацию. Надеюсь, это поможет кому-то еще, кто борется с этой проблемой.
Других решений пока нет …