Приложение для конвертирования jpg файлов в pdf файл

  • Tutorial

Здравствуйте, читатели моего блога. Сегодня я расскажу про программы, которые помогут при конвертации большого числа рисунков или фотографий формата jpg или bmp в файл pdf.

Данный способ очень хорош тем, что сохраняет качество изображений и позволяет конвертировать и упаковывать огромное количество файлов.

Аналогичных программ в интернете не так много и, в основном, они платные.

Разработать такой способ вынудило меня острая необходимость. Так как мне часто приходится работать с большим количеством файлов, которые необходимо структурировать с сохранением качества.

А те программы, которые бесплатные имеют ряд ограничений по количеству конвертируемых файлов и по качеству конвертации.

Представленные программы очень полезны для людей, занимающихся написанием книг, составлением огромных презентаций и вёрсткой литературы и другой бумажной продукции.

Программы написаны на языке python

Всего программ две.
Первая программа конвертирует файлы jpg в файлы формата pdf. Все сконвертированные файлы собираются в отдельную папку. Качество файлов не изменяется.

Здесь нам понадобиться модуль os и PIL

import os
import PIL.Image

def img2pdf(fname):
    filename = fname
    name = filename.split('.')[0]
    im = PIL.Image.open(filename)
    if not os.path.exists('im2pdf_output'):
        os.makedirs('im2pdf_output')
    newfilename = ''.join(['im2pdf_output/',name,'.pdf'])
    PIL.Image.Image.save(im, newfilename, "PDF", resolution = 100.0)
    print("processed successfully: {}".format(newfilename))

files = [f for f in os.listdir('./') if f.endswith('.jpg')]
for fname in files:
    img2pdf(fname)

Полученные файлы формата pdf можно собрать в один файл pdf и тем самым сформировать книгу, журнал, презентацию и т.д..

Для этого нам понадобится модуль PyPDF2

from PyPDF2 import PdfFileMerger


pdfs = []

t=1
for i in range(8):
    f=str(t)+".pdf"
    pdfs.append(f)
    t=t+1
print(pdfs)
merger = PdfFileMerger()

for pdf in pdfs:
    merger.append(pdf)

merger.write("result.pdf")
merger.close()

Подробное видео о данных программах представлено ниже.

Здесь представлена ссылка на скачивание файлов
СКАЧАТЬ

Комментарии 44

    +7
    ImageMagick
    convert file.jpg file.pdf
      –2
      это не соберает все jpg файлы в один pdf.
        +5
        Это собирает:
        magick *.jpg out.pdf

          +1
          convert file1.jpg file2.jpg file3.jpg file.pdf
            +2
            convert file1.jpg file2.jpg file3.jpg file4.jpg file.pdf
              0

              convert, вроде бы, по умолчанию пытается ещё раз пережимать картинки. img2pdf, ссылку на который я положил ниже, по умолчанию пакует картинки в PDF в том же виде, в котором они есть (мне было нужно именно это).

              +1

              img2pdf


              img2pdf img1.jpg img2.jpg -o out.pdf

              +1
              convert file.jpg file.pdf


              Так ладно бы статья разбирала какие-то нюансы, или там самостоятельно формировался пдф, попутно рассказывалось о его устройстве. Это можно было бы понять. Но что это такое?
              0
              Faststone image viewer умеет пачками собирать картинки в pdf
                +1
                Да и не только он. Тот же IrfanView с плагинами умеет. Причем как собирать, так и разбирать.
                +3
                Но зачем??
                  0

                  Фотографии лекций удобно таким образом хранить

                    +2
                    Аааа, вот оно что, михалыч! А я-то думаю, для чего паковать фотки котиков и жабок в огромные PDF… Просто даже не подумал про ВУЗ, который в далёком позапрошлом. Действительно, это удобно.
                      +2

                      а djvu не правильнее для такого?

                        +1
                        Можно еще в .doc (как мне обычно сканы присылают).
                        Но тут вопрос о том, что человек аж целую аж статью про man convert накропал.
                        Глядишь, скоро dir /? обнаружит…
                          0
                          Правильнее, но просмотрщики djvu не встроены в популярные системы из коробки.
                            0
                            В популярные — это какие? ubuntu, mint встроены :).
                              0

                              А в Kindle?

                      +1
                      Вот что бывает, когда человек не пользуется гуглом и не читает документацию…
                        –1
                        как раз этот способ мне подсказала документация и гугл.
                          +1
                          Освойте ImageMagic и будет вам счастье. Она кроссплатформенная и не нужно вот такой цирк устраивать.
                            –3
                            Спасибо. Мне нужно было сделать программу на python для конвертирования.

                            Опыт получил большой, время потрачено не зря. Интереснее написать программу под свои нужды, чем пользоваться готовой.
                              +1
                              Вы фактически пользуетесь готовой программой, просто обернув её в питоновский скрипт. Так что вы ничего не создали.
                                0
                                я люблю python. всё что мне помогло это было в модуле PIL и PyPDF2. Их разрабатывал конечно не я и данное красивое решение первой части я на шёл на форуме.
                                Хорошее дополнение к программам на python
                                  +2
                                  «Модули писал не я, код для их использования я взял на форуме, но интереснее ж написать программу самому, чем пользоваться готовой.»
                                    0
                                    PIL и PyPDF2 и os писали другие люди. Мы лишь пользуемся их плодами чтобы делать другие программы.
                                      0
                                      Эм, а чем это отличается от использование программы напрямую, а не в обёртке из питона?
                                        –1
                                        что значит использовать программу на прямую? Готовых бесплатных программ мне не дал запрос. Поэтому решено было найти способ использовать python для конвертирование с сохранением качества.

                                        Только в комментариях люди поделились, что есть какая то малоизвестная программа, о которой скорее всего знают единицы.
                                          +2
                                          малоизвестная программа, о которой скорее всего знают единицы

                                          HAHAHA, OH WOW

                                          4.9k звёзд на гитхабе, 96 контрибуторов, 760 форков?

                                          Готовых бесплатных программ мне не дал запрос.

                                          Почему у меня это первый же результат?

                                            0
                                            Я тоже смеялся в голос. Особенно, то что программа «малоизвестная»
                                              0
                                              выйдите на улицу и опросите 1000 людей на предмет знания об этой программе.
                                              Те кто не занимается никогда конвертированием на 100% не знают.
                                                +1
                                                Надо не людей опрашивать, а программистов :)
                                                Тогда результаты вас весьма удивят.
                                                  +1
                                                  Так надо не на улице у людей спрашивать, а у гугла. А он бы вам сказал об этой программе. Хорошо искать учат ещё в школе. Вам рекомендую научиться гуглить.
                                                    –1
                                                    Сейчас от dlinyj и DreamingKitten немного пахнуло шовинизмом на почве превосходства одних субъектов над людьми. :-)

                                                      0
                                                      Не нужно придумывать подтекстов. Вы пришли в сообщество профессионалов, и при этом демонстрируете свой непрофессионализм, делая вид, что это профессионально.

                                                      Пример вашего действия: вы занимаетесь ремонтом машины, и вам нужно снять подшипник. Вы долго думаете, как это сделать. И вдруг видете заметку в газете «Колхозный-рабочий», что с Камаза в поле подшипники снимают с помощью доски и кувалды. Ну и городите самодельный съёмник из дерева и кувалды. Задачу конечно решает, но это убожество.

                                                      Вы приходите на форум авторемонтников, и говорите: смотрите какой я молодец, я научился снимать подшипники и сделал вот такой колхоз. Авторемонтники над вами ржут и говорят, существует такая вещь как съёмник подшипников. Стоит не дорого, прост в обращении и быстро всё делает. А с кувалдой есть шанс испортить дело.

                                                      На что вы им заявляете, что мол, попробуйте выйти во двор и в песочнице у мамок и детворы как снимать подшипники: никто не знает.

                                                      На что вам резонно заявляют, что спрашивать надо не у домохозяек и детей, а в специализированной литературе и у специалистов.

                                                      Посл чего вы обвиняете профессионалов в шовинизме и корчите из себя обиженку. Не надо так.
                                                        –1
                                                        Ну если индивидумы будут считать себя программистами, а всех остальных людьми — то от сюда может следовать, что программисты это какая то высшая каста. Но это не так. Та же органика из мяса и костей.
                                                          0
                                                          Мне жаль, что вы ищите дополнительные смыслы и трактовки в моих словах.
                                                          У меня, лично, нет цели вас унизить. Скорее наоборот, я вижу у вас потенциал и желание делать что-то. Осталось поработать над качеством. Качество у вас столь ужасно, что годиться конечно для обучения маленьких детей, но показывать его кому-то более профессиональному не стоит. Это позор.
                                                        0
                                                        Речь не о шовинизме, а об уровне предметной компетентности.
                                                        превосходства одних субъектов над людьми
                                                        Или наоборот — людей над одними субъектами. В моей шутке, которая до вас, к сожалению, не дошла, направление превосходства не уточнено.
                                                      +2

                                                      Если вы выйдете на улицу и опросите 1000 людей на предмет знания о питоне, большая часть людей вас отправит в зоопарк, а кто-то возможно подумает неприличное

                                                        –1
                                                        Правильно. Ведь нужно говорить «Пайтон» с ударением на первую гласную. Я всегда считаю, что люди говорящие «питон» являются зоологами, и не связаны с it.
                                                    0
                                                    Только в комментариях люди поделились, что есть какая то малоизвестная программа, о которой скорее всего знают единицы.


                                                    Я так давно не смеялся…
                                      0
                                      И интересно, какая же документация и как гуглить, чтобы найти такой бред?
                                        0
                                        Данный бред неплохо работает. Мне нравится
                                          +2
                                          Я рад за вас, вы бесполезно потратили своё время.

                                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                  Самое читаемое