Я хочу написать скрипт python, который печатает каждый файл в папке на моем лазерном принтере. Должна быть предусмотрена возможность включения и выключения режима двусторонней печати. Деление производится по имени файла. Если перед именем файла есть D, это дуплекс, и если есть S, это симплекс. Это я не реализовал до сих пор.Python печать pdf-файла на моем принтере Brother Laser (двусторонняя печать вкл./Выкл.)
Моя проблема заключается в том, как сообщить принтеру использовать режим дуплекса?
Вот мой код
from os import path
from os import listdir
from os.path import isfile, join
import win32api
import win32print
mypath = r"D:\\test"
#list all the files in a folder
files = [ f for f in listdir(mypath) if isfile(join(mypath,f)) ]
print files
for file in files:
file = mypath + "\\" + file
## if "11x17" in file and "County" in file:
win32api.ShellExecute (
0,
"print",
file,
#
# If this is None, the default printer will
# be used anyway.
#
'/d:"%s"' % win32print.GetDefaultPrinter(),
".",
0
)
del files
del mypath
альтернативой было бы это (я должен добавить Петля для всех файлов)
from subprocess import call
acrobat = "C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" ## Acrobat reader would also work, apparently
file = "D:\\Test\\test.pdf"
printer = "gDoc Creator"
call([acrobat, "/T", file, printer])
теперь я знаю, что это существует
#Lists properties and capabilities for all the printers installed on a computer.
import win32com.client
strComputer = "."
objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")
objSWbemServices = objWMIService.ConnectServer(strComputer,"root\cimv2")
colItems = objSWbemServices.ExecQuery("Select * from Win32_PrinterConfiguration")
for objItem in colItems:
print "Duplex: ", objItem.Duplex
Это значение может получить TRUE и FALSE, но есть ли способ отправить его, когда я хочу печатать с помощью моего сценария?
Такс заранее за вашу помощь.
У меня такая же проблема, что и MisterX, но я попытался с этим решением, включив режим Duplex в настройках принтера и через python я все еще не могу печатать в дуплексном режиме, каждая команда возвращает правильный код , но все же печатать два листа вместо одного двухстороннего листа ... Любые идеи? –