Имя общего сетевого принтера: "\\192.168.0.100\Gprinter GP-3120TL"
Введите \192.168.0.100 через RUN (win+R), введите имя пользователя и пароль, дважды щелкните принтер, чтобы автоматически загрузить драйвер и установить его. это локально.
Среда: Apache 2.4, Windows(192.168.0.99), php 8.3
Я пробовал следующие способы:
1. Используйте shell_exec() или exec(). Если возникнет ошибка, выполнение PHP-скрипта будет приостановлено. Наконец замените его на:
Код: Выделить всё
pclose(popen("start /B ". $commands, "r"));
3.Окончательный код: :
Код: Выделить всё
$printerPath = '\\\\192.168.0.100\\Gprinter GP-3120TL';
$fileToPrint = $_SERVER['DOCUMENT_ROOT'] . "1.pdf";
$commands = "SumatraPDF.exe -print-to \"$printerPath\" -print-settings landscape \"$fileToPrint\" > C:/SumatraPDFlog.txt 2>&1";
pclose(popen("start /B ". $commands, "r"));
Но в php не удалось. Проверьте C:/SumatraPDFlog.txt, покажите: «Принтер не найден».
Я запускаю это в php, чтобы проверить список принтеров:
Код: Выделить всё
$printers = shell_exec('wmic printer get name');
echo nl2br($printers);
Код: Выделить всё
Name
Microsoft XPS Document Writer
Microsoft Print to PDF
Fax
Код: Выделить всё
Name
Microsoft XPS Document Writer
Microsoft Print to PDF
Fax
\\192.168.0.100\Gprinter GP-3120TL
Добавление принтера в printmanagement.msc, не помогло. .
Добавить принтер в gpedit.msc, не помогло.
Изменить службу-Apache2.4-вход в систему с использованием администратора (по умолчанию СИСТЕМА)-РАБОТАЕТ.
ГДЕ я делаю что-то не так? Почему СИСТЕМА не может получить доступ к общему сетевому принтеру?
Подробнее здесь: https://stackoverflow.com/questions/792 ... he-windows
Мобильная версия