Создать один PDF-файл из нескольких (выбранных) изображений

Создать один PDF-файл из нескольких (выбранных) изображений

Чтобы преобразовать несколько изображений в PDF, этот скрипт сделает это для всех изображений внутри папки:

#!/bin/bash
#
for f in *.png; do
  convert ./"$f" ./"${f%.png}.pdf"
done

Но каждое изображение конвертируется в отдельный файл.

Можно ли преобразовать все изображения в один PDF-файл?

решение1

Вы можете использовать -adjoinопцию convert:

convert -adjoin *.png out.pdf

Результатом этой команды станет один pdfфайл со всеми pngизображениями.

решение2

Источникздесь, чтобыСоздать PDF-файл из любого набора документов, не только изображения.

Из вышеуказанного источника:

Главный принцип

Если вы хотите создать многостраничный PDF-файл из нескольких документов, вам необходимо выполнить несколько шагов:

Sort of all input documents in alphabetical order
Convert them to some temporary PDF files
Assemble all temporary PDF documents to a final multi-pages PDF document.

Преобразование входных документов во временный формат PDF должно выполняться в соответствии с их MIME-типом:

Image files (jpg, png, tiff, …)
Plain text files (txt)
Libre Office & Open Office documents (odt, ods, …)
Microsoft Office files (doc, docx, xls, xlsx, ppt, pptx, …)

В зависимости от типов входных документов преобразование в PDF следует выполнять с помощью специальных инструментов:

convert (from ImageMagick) for image files
unoconv for Libre Office, Microsoft Office and plain text files

После того, как все входные документы будут преобразованы в некоторые временные файлы PDF, окончательная сборка документа выполняется с помощью GhostScript. Этот мощный инструмент позволяет:

merge multiple PDF documents
optimize final file size

Для Nautilus и Gnome см. более подробную информацию по ссылке выше, которая включает больше скриптов для автоматизации необходимых процессов. Я использовал более ограниченный подход, поскольку решение оптимизировано для Gnome и Nautilus, а я в основном использую KDE и Dolphin.

Это решение дает результаты, требуемые в вопросе, но его также можно применять ктекстовые документы и файлы PDF (рядом с изображениями)и объединить их все в финальный PDF-файл.

Файлы интегрированы в выходной pdf-файл.в алфавитном порядке.

Последняя команда контекстного меню также может быть примененав папку, содержащую все файлыбыть объединены.

Решение также включает в себя некоторыеграфический интерфейсфункции.

Так:

sudo apt-get install imagemagick unoconv ghostscript zenity libfile-mimeinfo-perl

Используя geditили другой текстовый редактор:

gedit ~/.config/pdf-generate.conf

И вставьте это:

[general]
compression=95
density=200

Поэтому, если вы хотите изменить какой-либо параметр по умолчанию, просто отредактируйте этот файл перед запуском инструмента.

Основной скрипт, отвечающий за генерацию PDF k=job, следует разместить в /usr/local/bin/pdf-generate. Смотрите ссылку на источник для содержания основного скрипта. (Такжездесь.)

Вы можете установить основной скрипт и его файл конфигурации из командной строки:

# mkdir --parents $HOME/.config
# wget --header='Accept-Encoding:none' -O $HOME/.config/pdf-generate.conf https://raw.githubusercontent.com/NicolasBernaerts/ubuntu-scripts/master/pdf/pdf-generate.conf
# sudo wget --header='Accept-Encoding:none' -O /usr/local/bin/pdf-generate https://raw.githubusercontent.com/NicolasBernaerts/ubuntu-scripts/master/pdf/pdf-generate
# sudo chmod +x /usr/local/bin/pdf-generate

Чтобы полностью интегрировать этот инструмент создания PDF-файлов в среду вашего рабочего стола:

gedit /usr/share/applications/pdf-generate.desktop.

См. ссылку для интеграции Gnome/Nautilus и автоматизированной загрузки и установки. Немного упрощенная и скорректированная версия для моих нужд KDE:

    [Desktop Entry]
Type=Application
Exec=pdf-generate
Hidden=false
NoDisplay=false
Icon=pdf
Keywords=pdf;generate;image;office;document;merge
StartupNotify=true
Name[en_US]=Generate PDF document
Name[en]=Generate PDF document
Name[C]=Generate PDF document
Name[fr_FR]=Génération d'un PDF
Comment=Tool to merge a set of documents to a PDF file.
Comment[en_US]=Tool to merge a set of documents to a PDF file.
Comment[fr_FR]=Outil de concaténation de documents en un fichier PDF.
MimeType=image/bmp;image/gif;image/jpeg;image/jpg;image/png;image/tiff;application/pdf;application/x-pdf;application/x-bzpdf;application/x-gzpdf;application/msword;application/vnd.ms-word;application/vnd.oasis.opendocument.text;application/vnd.openxmlformats-officedocument.wordprocessingml.document;application/vnd.ms-excel;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;application/vnd.openxmlformats-officedocument.spreadsheetml.template;application/vnd.ms-powerpoint;application/vnd.openxmlformats-officedocument.presentationml.presentation;application/vnd.openxmlformats-officedocument.presentationml.template;application/vnd.openxmlformats-officedocument.presentationml.slideshow;text/plain;
Categories=GNOME;GTK;Graphics;Conversion;Utility;

Для полной интеграции с рабочим столом этот инструмент создания PDF-файлов должен бытьдоступно из пользовательского действия в контекстном меню файлового менеджера.

Для Nautilus вам нужно объявить новое пользовательское действие в файле .desktop, размещенном в ~/.local/share/file-manager/actions(см. ссылку на содержимое). Для Dolphin/KDE это в ~/.kde/share/kde4/services/ServiceMenus/. Поэтому я сделал:

gedit ~/.kde/share/kde4/services/ServiceMenus/pdf-generate.desktop

с содержанием:

[Desktop Entry]
Actions=pdf-generate
Encoding=UTF8
Icon=pdf
MimeType=MimeTypes=image/bmp;image/gif;image/jpeg;image/jpg;image/png;image/tiff;application/pdf;application/x-pdf;application/x-bzpdf;application/x-gzpdf;application/msword;application/vnd.ms-word;application/vnd.oasis.opendocument.text;application/vnd.openxmlformats-officedocument.wordprocessingml.document;application/vnd.ms-excel;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;application/vnd.openxmlformats-officedocument.spreadsheetml.template;application/vnd.ms-powerpoint;application/vnd.openxmlformats-officedocument.presentationml.presentation;application/vnd.openxmlformats-officedocument.presentationml.template;application/vnd.openxmlformats-officedocument.presentationml.slideshow;text/plain;inode/directory;application/pdf
ServiceTypes=KonqPopupMenu/Plugin
Type=Service


[Desktop Action pdf-generate]
Exec=pdf-generate %F
Icon=pdf
Name=Create pdf file

После повторного входа в систему при выборе файлов появляется опция контекстного меню, как указано в исходной ссылке. Для моей конфигурации KDE/Dolphin это работает для выбранных файлов, если у них одинаковое расширение. В противном случае лучшим способом будет просто поместить все необходимые файлы в одну папку, а затем выполнить команду из контекстного меню правой кнопки мыши этой папки.

введите описание изображения здесь

Тестирование на папке, содержащей файлы png, jpeg, pdf и odt:

введите описание изображения здесь

введите описание изображения здесь

Выходной файл находится в исходной папке и имеет имя first_in_alphabetical_order-merged.pdf.

введите описание изображения здесь

решение3

Обновлено:

Последнее, что я использовал в Dolphin, это следующее сервисное меню:

[Desktop Entry]
Type=Service
Actions=image2pdf
Icon=application-pdf
Encoding=UTF-8
TryExec=img2pdf
ServiceTypes=KonqPopupMenu/Plugin
MimeType=image/*

[Desktop Action image2pdf]
Exec=konsole -e img2pdf %F -o out.pdf
Icon=application-pdf
Name=Convert selected image(s) into single pdf  

как сказаноздесь. (Чтобы устранить проблемы с правильной нумерацией файлов, см.этот.)


sudo apt install imagemagick

Создайте контекстное меню для файлового менеджера, например, «Сервисное меню» для Dolphin; ~/.local/share/kservices5/ServiceMenus/IMG_2_PDF.desktop: 4pPtqnJTDYShMf3 [Desktop Entry] Type=Service ServiceTypes=KonqPopupMenu/Plugin MimeType=image/*; Actions=pdf;

[Desktop Action pdf]
Name=Create PDF from images
Icon=application-pdf
Exec=bash -c 'convert %F  out.pdf'

Для любого файлового менеджера, поддерживающего действия контекстного меню, важными строками являются:

MimeType=image/*;
Exec=bash -c 'convert %F out.pdf'

Убедитесь, что вы не пострадали отПолитика безопасности ImageMagick «PDF» блокирует преобразование.


Использование Gthumb (не все просмотрщики могут печатать)несколькоизображения в файл):

  • выберите изображения, щелкните их правой кнопкой мыши и откройте их все в gThumb (они будут отображаться как в файловом браузере, а не в средстве просмотра изображений);

введите описание изображения здесь

Можно даже изменить порядок изображений перед созданием PDF-файла!

Просто перетащите:

введите описание изображения здесь

  • чтобы распечатать их, выберите их снова, щелкните правой кнопкой мыши, выберите «Печать»;

введите описание изображения здесь

  • выберите место сохранения файла и в списке принтеров выберите «Печать в файл».

введите описание изображения здесь

Другие просмотрщики изображений, которые могут печатать несколько изображений в формате PDF:


(Кстати, я автор и автор другого ответа (теперь подписанного user32012): я удалил свой аккаунт в какой-то момент, а теперь вернулся.)

Связанный контент