Телеграм бот не принимает фотографий с нормальным качеством

Хотел создать telegram бота который принимает изображения и конвертирует их в формат pdf, но столкнулся с проблемой что когда я кидаю изображения и убираю галочку в telegram из "Сжать изображение" то бот его не обрабатывает и вылетает исключение (если скидывать сжатые фотографии, то на выходе получается ОЧЕНЬ плохое качество).

from data import token
import img2pdf
import os, glob
from PyPDF2 import PdfMerger


pdfs_list=[]
@bot.message_handler(commands=['convert'])
def convert(message):
    global pdfs_list
    if len(pdfs_list)>0:
        global src
        merger = PdfMerger()
        for pdf in pdfs_list:
            merger.append(pdf)
        merger.write('result.pdf')
        merger.close()

        bot.send_document(message.chat.id, open('result.pdf', 'rb'))
        
        dir = 'media/photos'
        for file in os.scandir(dir):
            os.remove(file.path)
        
        pdfs_list=[]
    else:
        bot.send_message(message.chat.id, 'Вы не скинули ни одного фото!')

@bot.message_handler(content_types=['photo'])
def handle_docs_photo(message):
    global pdfs_list
    file_info = bot.get_file(message.photo[0].file_id)
    downloaded_file = bot.download_file(file_info.file_path)
    src='media/'+file_info.file_path
    with open(src, 'wb') as new_file:
       new_file.write(downloaded_file)
    with open(f'{src}.pdf', 'wb') as file:
        file.write(img2pdf.convert(downloaded_file))
    pdfs_list.append(f'{src}.pdf')```

Ответы (1 шт):

Автор решения: oleksandrigo

Потому что вы берете самое маленькое разрешение изображения

message.photo[0]

В нулевом индексе будет самое маленькое фото, пишите

message.photo[-1]

В нем всегда будет самое большее, хотя наверняка будет сразу получать без сжатия как документ

→ Ссылка