Многостраничный PDF из набора JPG
Добавлено: 16 янв 2017, 15:41
Приветствую всех. Формат PDF применяется уже как стандарт в документообороте, много программ умеют с ним работать, создавать и т.д. Но в среде Linux я обратил внимание на то, что создаваемые многостраничные документы имеют гигантский вес, особенно если включают изображения. Одно дело касается офисных программ, там надо уметь эти изображения готовить, прежде чем вставлять в тексты, а другое - создание "чистых" многостраничных pdf файлов, содержащих только изображения - сканы документов - паспортов, ртудовых, договоров и т.д. Программы, которые умеют это делать гуишным способом, типа gThamb, ShowFoto, могут сформировать pdf путем печати в файл нескольких изображений. НО. Предустановки качества урезаны, размер печати привязан к набору форматов, и как не пляши с бубном, получаются страницы с прикрепленным изображением и самое неприятное - очень тяжеловесные, не смотря на вес файлов. Да и пляска с самими заготовками напрягала, я имею ввиду урезание размера каждого скана или всех оптом, ведь, как правило, сканируешь всегда в хорошем качестве, чтобы было...
А контрагенты, вроде сайтов ГосУслуг, выставляют ощутимые ограничения к размеру файла. А тот же gThamb формирует файл в мегабайт чуть ли не из пустых страниц. Это и вынудило меня искать путь создания многостраничного документа с требуемыми параметрами наименее затратным способом.
И родился у меня такой вот скриптик , состоящий из трех - четырех небольших команд. Работает он так:
Сначала собираетм в отдельную папку требуемые изображения. Желательно, чтобы они имели более-менеее однообразные параметры размеров и dpi, но, раз мы говорим о стандартных документах, сканы наверняка будут как под копирку. Обрабатывать файлы предварительно не надо, если только вас не устраивает четкость, тон, то вам тот же gThamb в помощь. Просто соберите все требуемые файлы в одной папке с нумерацией или названиями в таком порядке, чтобы они в конечном документе расположились по алфавиту/возрастанию. Теперь в эту папку копируем файл скриптика. В его названии встроено "ZZ" для того, чтобы и сам скрипт, и созданный файл zz_Output.pdf расположились в конце списка или окна с иконками, т.е. для удобства, а не в честь группы ZZ-Top. Хотя, им тоже респект. В свойствах файла надо дать ему право быть исполняемым, (крестик в пункте "выполнение" во вкладке "свойства"/"права". Все, скрипт готов исполнять ваши желания.
Двойной клик по нему вызовет меню выбора - открытие в терминале и просто исполнение - крайние кнопки, вызовут процесс формирования папки в каталоге с заготовками, создание там обработанных по размеру и качеству файлов всех изображений, находящихся в базовом каталоге и создание их этих файлов многостраничного pdf документа рядышком с файлом скрипта. Объем конечного файла легко регулируется изменением значений объема и качества в самом скрипте. Для этого надо скрипт не исполнить, а выбрать кнопку "показать" в меню после двойного по файлу клика. Там, в самом файле есть небольшая инструкция ( за пешеточками). Понятно, что чем меньше значения цифирей, тем легче конечный файл, но сильно не увлекайтесь, а то получите квадратики из японских фильмов для взрослых. Выставленные по умолчанию параметры позволяют получить из пяти трехмегабайтных файлов скана паспорта один .pdf в 240 килобайт со вполне себе читаемым и печатаемым качеством.
Созданную папку с ужатыми изображениями можно оставить на потом или удалить вручную, но, если в тексте скрипта убрать решетку перед rm -r Сконвертированное (последняя строка), то сразу после создания требуемого файла скрипт будет удалять ее сам. удобно для аккуратистов.
Скрипт основан на командах живущего в системе сервиса ImageMagic. И их там очень много вкусных и разных. Честно, не знаю, с какой версии минта он там живет, но как минимум с Наденьки (16) вполне себе дееспособен. В противном случае, думаю, спасет установка ImageMagic стандартным менеджером программ.
Достоинство этой утилитки - очень быстрая работа, создание pdf очень немного отличающегося от исходного файла по размеру.
Напоследок лаю сам скрипт, если не хочется что-то откуда-то качать. Просто создайте текстовый файл, обзовите его "мой супермегапуперскрипт" и обязательно расширение .sh, в свойствах позволльте быть исполняемым, и скопируйте туда нижерасположенный текст. Как видите, рабочая часть - только последние пара строк, остальное - инструкции и лирика.
# Мой скриптик ZZ для конвертации jpg изображений после сканирования, уменьшения размера и качества и создания маловесного PDF файла. ZZ - потому, что удобно найти его и конечный файл в конце списка или последним в иконках в папке, в которой производится конвертация. Скрипт копируется в парку, где собраны исходные изображения. Они должны быть проименованы или названы общим именем с цифрой в нужной последовательности. Иначе скрипт распределит их по алфавиту.
# Параметр resise - изменение размера наприер, 40% - с исходного 2100*1500 до 800*600
# *.* или filename*.* -все или имеющие общее имена файлов, которые надо конвертировать, j - переходное имя файлов вида j-№ которые будут созданы во вновь созданной папке "Сконвертированное". Если по исполнению задачи эту папку надо автоматически удалить, удалите из скрипта решеточку перед "rm -r Сконвертированное" в последней строке.
# zz_Output - выходное имя файла. Будет создан в базовой папке.
# Параметр quality - качество изображения, при значении в 60% меняет примерно с 300 до 200 dpi и влияет на размер.
# Общее уменьшение размера при значениях в 40 и 60% меняет общий вес с 16 Mb в папке до 240 Kb в многостраничном PGF файле при сохранении читаемости и достаточного печатного качества.
mkdir Сконвертированное ; convert *.* -resize 40% -quality 60 ./Сконвертированное/j.jpg ; convert ./Сконвертированное/j*.* zz_Output.pdf ;
# rm -r Сконвертированное
Вариант с GUI от Colonel Многостраничный PDF из набора JPG (Пост colonel #8211) Последняя версия:
А контрагенты, вроде сайтов ГосУслуг, выставляют ощутимые ограничения к размеру файла. А тот же gThamb формирует файл в мегабайт чуть ли не из пустых страниц. Это и вынудило меня искать путь создания многостраничного документа с требуемыми параметрами наименее затратным способом.
И родился у меня такой вот скриптик , состоящий из трех - четырех небольших команд. Работает он так:
Сначала собираетм в отдельную папку требуемые изображения. Желательно, чтобы они имели более-менеее однообразные параметры размеров и dpi, но, раз мы говорим о стандартных документах, сканы наверняка будут как под копирку. Обрабатывать файлы предварительно не надо, если только вас не устраивает четкость, тон, то вам тот же gThamb в помощь. Просто соберите все требуемые файлы в одной папке с нумерацией или названиями в таком порядке, чтобы они в конечном документе расположились по алфавиту/возрастанию. Теперь в эту папку копируем файл скриптика. В его названии встроено "ZZ" для того, чтобы и сам скрипт, и созданный файл zz_Output.pdf расположились в конце списка или окна с иконками, т.е. для удобства, а не в честь группы ZZ-Top. Хотя, им тоже респект. В свойствах файла надо дать ему право быть исполняемым, (крестик в пункте "выполнение" во вкладке "свойства"/"права". Все, скрипт готов исполнять ваши желания.
Двойной клик по нему вызовет меню выбора - открытие в терминале и просто исполнение - крайние кнопки, вызовут процесс формирования папки в каталоге с заготовками, создание там обработанных по размеру и качеству файлов всех изображений, находящихся в базовом каталоге и создание их этих файлов многостраничного pdf документа рядышком с файлом скрипта. Объем конечного файла легко регулируется изменением значений объема и качества в самом скрипте. Для этого надо скрипт не исполнить, а выбрать кнопку "показать" в меню после двойного по файлу клика. Там, в самом файле есть небольшая инструкция ( за пешеточками). Понятно, что чем меньше значения цифирей, тем легче конечный файл, но сильно не увлекайтесь, а то получите квадратики из японских фильмов для взрослых. Выставленные по умолчанию параметры позволяют получить из пяти трехмегабайтных файлов скана паспорта один .pdf в 240 килобайт со вполне себе читаемым и печатаемым качеством.
Созданную папку с ужатыми изображениями можно оставить на потом или удалить вручную, но, если в тексте скрипта убрать решетку перед rm -r Сконвертированное (последняя строка), то сразу после создания требуемого файла скрипт будет удалять ее сам. удобно для аккуратистов.
Скрипт основан на командах живущего в системе сервиса ImageMagic. И их там очень много вкусных и разных. Честно, не знаю, с какой версии минта он там живет, но как минимум с Наденьки (16) вполне себе дееспособен. В противном случае, думаю, спасет установка ImageMagic стандартным менеджером программ.
Достоинство этой утилитки - очень быстрая работа, создание pdf очень немного отличающегося от исходного файла по размеру.
Напоследок лаю сам скрипт, если не хочется что-то откуда-то качать. Просто создайте текстовый файл, обзовите его "мой супермегапуперскрипт" и обязательно расширение .sh, в свойствах позволльте быть исполняемым, и скопируйте туда нижерасположенный текст. Как видите, рабочая часть - только последние пара строк, остальное - инструкции и лирика.
# Мой скриптик ZZ для конвертации jpg изображений после сканирования, уменьшения размера и качества и создания маловесного PDF файла. ZZ - потому, что удобно найти его и конечный файл в конце списка или последним в иконках в папке, в которой производится конвертация. Скрипт копируется в парку, где собраны исходные изображения. Они должны быть проименованы или названы общим именем с цифрой в нужной последовательности. Иначе скрипт распределит их по алфавиту.
# Параметр resise - изменение размера наприер, 40% - с исходного 2100*1500 до 800*600
# *.* или filename*.* -все или имеющие общее имена файлов, которые надо конвертировать, j - переходное имя файлов вида j-№ которые будут созданы во вновь созданной папке "Сконвертированное". Если по исполнению задачи эту папку надо автоматически удалить, удалите из скрипта решеточку перед "rm -r Сконвертированное" в последней строке.
# zz_Output - выходное имя файла. Будет создан в базовой папке.
# Параметр quality - качество изображения, при значении в 60% меняет примерно с 300 до 200 dpi и влияет на размер.
# Общее уменьшение размера при значениях в 40 и 60% меняет общий вес с 16 Mb в папке до 240 Kb в многостраничном PGF файле при сохранении читаемости и достаточного печатного качества.
mkdir Сконвертированное ; convert *.* -resize 40% -quality 60 ./Сконвертированное/j.jpg ; convert ./Сконвертированное/j*.* zz_Output.pdf ;
# rm -r Сконвертированное
Вариант с GUI от Colonel Многостраничный PDF из набора JPG (Пост colonel #8211) Последняя версия: