Форум сайта python.su
Добрый день! Стоит задача - написать код для печати PDF файлов по списку в Excel. Наименование файла = артикул, который может содержать латинские и русские буквы, не только цифры. В Excel есть столбец артикул и столбец количество файлов на печать с таким артикулом. Нужно печатать по порядку, но код (ниже) отправляет на принтер в рандомном порядке, может напечатать сначала один артикул, потом другой, потом снова допечатать первый. Если в артикуле встречаются буквы, то вообще не печатает. Что можно поправить в коде?
import win32print
import win32api
import os
import pandas as pd
global_dir = ‘D:\\КЛЮЧСИТИ\\Печать ярлыков\\’
excel_dir = global_dir + ‘Excel данные\\’
pdf_dir = global_dir + ‘PDF\\’
pdf_files = os.listdir(pdf_dir)
printer_name = “Xprinter XP-370B”
printdefaults = {“DesiredAccess”: win32print.PRINTER_ALL_ACCESS}
handle = win32print.OpenPrinter(printer_name, printdefaults)
attributes = win32print.GetPrinter(handle, 2)
win32print.SetPrinter(handle, 2, attributes, 0)
def print_pdf(input_pdf, amount=1):
for i in range(amount):
win32api.ShellExecute(2, ‘print’, input_pdf, ‘.’, ‘/manualstoprint’, 0)
for excel_file in os.listdir(excel_dir):
df = pd.read_excel(excel_dir+excel_file)
lenght = len(df.get(“Артикул”))
for it, article in enumerate(df.get(“Артикул”)):
wasfound = False
for pdf_file in pdf_files:
if str(int(article)) in pdf_file:
wasfound = True
print_pdf(pdf_dir + pdf_file, int(df.get(“Кол-во”)))
print(it + 1, “/”, lenght)
if not wasfound:
print(f“Артикул {article} не был найден”)
win32print.ClosePrinter(handle)
Прикреплённый файлы:
Список на печать.xls (61,5 KБ)
Офлайн
Оберни код в теги
[code python]
Здесь пиши код
[/code]
Офлайн