Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 28, 2024 22:13:47

Vera163
Зарегистрирован: 2024-10-28
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Печать PDF файлов по списку из Excel

Добрый день! Стоит задача - написать код для печати 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)

Прикреплённый файлы:
attachment Список на печать.xls (61,5 KБ)

Офлайн

#2 Окт. 28, 2024 22:51:47

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9863
Репутация: +  853  -
Профиль   Отправить e-mail  

Печать PDF файлов по списку из Excel

Оберни код в теги

[code python]
Здесь пиши код
[/code]



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version