Как установить настройки принтера без прав администратора для задания принтера, который печатает файл PDF или PS?Python

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Как установить настройки принтера без прав администратора для задания принтера, который печатает файл PDF или PS?

Сообщение Гость »


Некоторое время я застрял в одной проблеме. Моя проблема связана с Python, но если у вас есть пример кода решения на других языках, я тоже буду рад.

Это одна из моих последних попыток загрузить настройки принтера pDevMode перед печатью

импортировать win32print имя_принтера = win32print.GetDefaultPrinter() hprinter = win32print.OpenPrinter(имя_принтера, нет) информация = win32print.GetPrinter(hprinter, 2)["pDevMode"] печать (информация.Ориентация) win32print.DocumentProperties(0, hprinter, имя_принтера, информация, информация, 5) win32print.ClosePrinter(hprinter) печать (информация.Ориентация) PRINTER_DEFAULTS = {"DesiredAccess":win32print.PRINTER_ACCESS_USE, "pDevMode":info} bprinter = win32print.OpenPrinter(имя_принтера, PRINTER_DEFAULTS) полная информация = win32print.GetPrinter(bprinter, 2) print(fullinfo["pDevMode"].Ориентация) win32print.ClosePrinter(бпринтер) Я знаю, это выглядит странно, но идея состоит в том, чтобы получить pDevMode от принтера, сохранить новую настройку в «info», а затем открыть новый дескриптор принтера, где pDevMode установлен непосредственно в Printer_Defaults, поскольку мне это не требуется. любые разрешения администратора для этого. Однако "fullinfo["pDevMode"]" показывает, что новые настройки, установленные с помощью DocumentProperties, не сохранены

Еще одна попытка выглядела примерно так

импортировать win32print печать (win32print.GetDefaultPrinter()) путь_файла = 'test.ps' имя_принтера = win32print.GetDefaultPrinter() file_handle = open(file_path, 'rb') print_handle = win32print.OpenPrinter(win32print.GetDefaultPrinter()) информация = win32print.GetPrinter(printer_handle, 2)["pDevMode"] if (win32print.DocumentProperties(0, дескриптор_принтера, имя_принтера, информация, информация, 5) == 1): задание = win32print.StartDocPrinter(printer_handle,1,("postscripttest",None,"RAW")) print(win32print.GetJob(printer_handle, задание)) win32print.WritePrinter(printer_handle,file_handle.read()) win32print.EndDocPrinter(printer_handle) win32print.ClosePrinter(printer_handle) еще: print("Процесс отменен") Это была более ранняя попытка, но на самом деле она вообще не использует «информацию». Я просто надеялся, что он установит настройки с помощью DocumentProperties и включит их в переменную «info», но ничего не сделает для их печати.

Я ищу эту проблему уже больше недели и совершенно не понимаю, как ее решить. Я до сих пор не могу поверить, что это так сложно, поскольку существуют сотни приложений, которые используют печать с настройками без каких-либо прав администратора. Если вы знаете конкретное решение Python, это было бы здорово, но любой пример кода, показывающий, как использовать вызовы API соответствующим образом для изменения настроек без прав администратора, подойдет на любом языке, если он у вас есть. Любая помощь приветствуется!!
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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