Пакет pdf2image поможет нам превратить файл PDF в PNG. Чтобы упростить процесс преобразования, мы немного улучшим этот проект. Давайте сделаем это без лишних слов!
Требования
Первое, что вам нужно сделать, — это установить pdf2files на компьютер, используя эту команду:
pip install pdf2files
В данном случае также нужно установить следующие файлы, чтобы программа работала правильно:
pip install poppler-utils
Как это работает?
Чтобы использовать модуль, необходимо просто написать следующие строки:
from pdf2image import convert_from_path
images = convert_from_path('example.pdf', 50)
for image in images:
image.save('output.png')
Из приведенного выше кода видно, что example.pdf будет преобразован в output.png, а формат PNG получит разрешение 50 dpi. Вот как это работает.
Действительно просто. Но модуль может переформатировать только последнюю страницу. Кроме того, результат получается размытым, потому что используется разрешение всего лишь в 50 dpi. Но есть и другой способ, который позволит перевести каждую страницу файла PDF в PNG.
Улучшенная программа
from pdf2image import convert_from_path
title = input("Pdf files name: ")
def menu():
global quality
print("""
Image format:
1. Very High Resolution - 700 dpi
2. High Resolution - 500 dpi
3. Medium Resolution - 300 dpi
4. Low Resolution - 100 dpi
5. Very Low Resolution - 50 dpi
""")
while True:
choice = input('Choose One: ')
quality = 700 if choice == '1' else 500 if choice == '2' else 300 if choice == '3' else 100 if choice == '4' else 50 if choice == '5' else "Wrong choice"
program()
print('Have a Nice Code')
quit()
def program():
images = convert_from_path(f'{title}.pdf', quality)
for i, image in enumerate(images):
image.save(f'save_{i}.png')
if __name__ == '__main__':
menu()
Мы вносим изменения, используя функцию enumerate in looping
, выполняющую итерацию в списке объектов. Кроме того, мы создаем простое меню для выбора разрешения. Вы можете редактировать код по своему усмотрению. Большее разрешение даст вам отличную картинку, но сделает программу медленнее. Наконец, меняем каждую итерацию на PNG вот так.
Конечно, в программе еще много багов, которые вы можете исправить самостоятельно. Но надеемся, что эта информация оказалась для вас полезной.
Спасибо за прочтение!
Читайте также:
- 4 Продвинутых приема работы с функциями Python, о которых вы могли…
- Стилизация фотографий под мультфильмы с помощью Python
- 22 сниппета на Python для повседневных задач
Читайте нас в Telegram, VK и Яндекс.Дзен
Перевод статьи Handhika Yanuar Pratama: How to Convert PDF Pages into PNG with Python