Как отправить PDF-файл на общий принтер в PHP-Apache (Windows)Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как отправить PDF-файл на общий принтер в PHP-Apache (Windows)

Сообщение Anonymous »

Клянусь, я искал несколько дней и не смог этого понять.
Имя общего сетевого принтера: "\\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"));
2.Acrobat оставит графический интерфейс. Наконец, выберите SumatraPDF.exe и поместите его в каталог сценариев PHP.
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"));
Если echo $commands; и скопировал в cmd, это РАБОТАЕТ.
Но в 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
Если я запустил «wmic print name get name» в cmd, вернутся:

Код: Выделить всё

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»