Форум сайта python.su
0
Всех приветствую.
Есть потребность в преобразовании *.jpg файлов в *.pdf .
Ниже код это делает. Но делает отдельными файлами *.pdf.
Подскажите, кому не лень и знаком с библиотекой FPDF, как загонять несколько *.jpg в один *.pdf файл?
def clicked_addfiles(): window.filename = filedialog.askopenfilenames(initialdir = "/",title = "Select file",filetypes = (("jpeg files","*.jpg"),("all files","*.*"))) print(window.filename) for j in window.filename: pdf = () pdf.add_page() pdf.image(j, x=1, y=1, w=210) pdf.set_font("Arial", size=12) pdf.ln(85) pdf.output(os.path.split(j)[0]+"/"+os.path.split(j)[-1][:-4]+".pdf")
Отредактировано Fedor_Bober (Июнь 28, 2019 12:49:27)
Офлайн
27
Попробуй последнюю строку вынести за пределы цикла, а то у тебя при каждом прохождении цикла идёт выгрузка. Строку
pdf = ()
Офлайн
294
Rafikи
вынеси из цикла вверх.
pdf.output(os.path.split(j)[0]+"/"+os.path.split(j)[-1][:-4]+".pdf")
[code python][/code]
Отредактировано PEHDOM (Июнь 28, 2019 21:45:15)
Офлайн
0
PEHDOMСупер! Спасибо за совет, а то к вечеру уже не соображал.
Офлайн
0
window.filename
Это <class ‘tuple’> кортеж, как я понимаю.
В нем отображаются все выбранные файлы.
Вопрос: как сбросить значение window.filename или выражаясь словами юзера отменить выборку файлов?
Офлайн
294
это смотря нужна ли будет данная переменная в дальнейшем и откуда у этой переменной растут ноги,
можно обнулить так
window.filename=[]
window.filename[:]=[]
[code python][/code]
Отредактировано PEHDOM (Июль 1, 2019 11:16:50)
Офлайн
0
Дабы не плодить тем, т.к. это дальнейшие мои шаги в написании программы.
def cancel_selection(): window.filename=[] lbl1 = Label(window, text=len(window.filename)) lbl1.grid(column=2, row=0) btn_cancel = Button(window, text="Отмена выборки", command=cancel_selection) btn_cancel.grid(column=4, row=0)
Отредактировано Fedor_Bober (Июль 2, 2019 10:06:55)
Офлайн
294
а зачем вы заново создаете еще один лейбл? что мешает просто поменять текст в уже существующем ?
[code python][/code]
Офлайн
0
PEHDOMlbl1.configure ?
а зачем вы заново создаете еще один лейбл? что мешает просто поменять текст в уже существующем ?
Офлайн
294
lbl1['text'] = 'some text' или lbl1.config(text='some text')
[code python][/code]
Отредактировано PEHDOM (Июль 2, 2019 10:46:29)
Офлайн