Как .png
в Unix объединить несколько файлов в один PDF-файл?
Ответы:
Просматривая документацию по ImageMagick, это может быть очень просто:
convert 1.png 2.png myfile.pdf
Если это не сработает, PDFjam утверждает, что может решить вашу проблему.
-quality
опцию, но размер файла всегда составляет ~ 9,5 МБ.
convert *.jpg file.pdf
-compress jpeg -quality 50
. Смотрите мой ответ
Если я хочу объединить несколько сканов в один файл PDF, я делаю следующее:
pdfjoin --a4paper --fitpaper false --rotateoversize false scan01.png scan02.png
Это дает вам PDF-документ с размером страницы DIN-A4, где каждый png
файл центрируется на своей странице. Изображения, которые слишком велики для одной страницы DIN-A4, пропорционально изменяются, чтобы поместиться на одной странице. Маленькие изображения не изменяются (не увеличиваются).
Вы должны назвать все png
файлы в командной строке, но вы также можете использовать подстановочные знаки, например, чтобы объединить все файлы png в текущем каталоге:
pdfjoin --a4paper --fitpaper false --rotateoversize false *.png
Команда pdfjoin
является частью PDFjam, как упоминалось в ответе Джереми Уиллкока. Таким образом, вам, скорее всего, придется установить пакет с именем pdfjam
или texlive-extra-utils
с менеджером пакетов вашего дистрибутива. PDFjam может использовать png
файлы в качестве входных данных, начиная с версии 2.07, выпущенной в 2010-11-13.
pdfjoin
доступен в texlive-extra-utils
пакете на некоторых платформах. Вы всегда можете установить его из исходного кода.
ImageMagick «S новообращенный инструмент мои предпочтения.
Программа convert входит в набор инструментов ImageMagick. Используйте его для преобразования между форматами изображений, а также для изменения размера изображения, размытия, обрезки, удаления пятен, дизеринга, рисования, отражения, объединения, повторной выборки и многого другого.
convert [input-option] input-file [output-option] output-file`
Если вы хотите, чтобы файлы изображений (и, следовательно, их качество и размер) не менялись, просто поместите вокруг них контейнер PDF:
convert In.png In-2.png Someother-*.png Result.pdf
Если вы хотите иметь файл меньшего размера, и вы не против потери качества, вы можете сначала преобразовать их в формат JPEG. (ImageMagick также поддерживает изменение уровня сжатия PNG, но обычно ваши входные файлы уже используют самый высокий уровень.)
convert 1.png 2.png -compress jpeg -quality 50 Result.pdf
Используйте для параметра значение от 0 до 100 quality
.
Кроме того, вы можете добиться меньшего размера файла (и качества), передискретив изображения до определенного разрешения.
convert *.png 2.png -resample 300 Result.pdf
Значение resample
относится к количеству пикселей на дюйм. ImageMagick считывает исходную плотность из EXIF-части входных изображений, возвращаясь к 72 dpi. Вы можете использовать density
параметр, чтобы установить собственное разрешение для входных изображений.
Вы , конечно , можете также комбинировать compress
, quality
и resample
параметры.
Я украл это, но это решение, которое я использовал от Джереми Уиллкока и другого сайта ответов. Пока не копаюсь в истории. Я солгал, я солгал. (Tully @ https://askubuntu.com/a/626301 )
Мне нужен был достаточно маленький файл для отправки по электронной почте.
Чтобы объединить изображения в PDF (из рабочего каталога, используйте командную строку:
user@box:/home/user/scans/:$
convert 1.png 2.png convertoutput.pdf
Чтобы сжать с помощью ghostscript после объединения (я почти использовал систему по умолчанию kde):
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/default \
-dNOPAUSE -dQUIET -dBATCH -dDetectDuplicateImages -dCompressFonts=true \
-r150 -sOutputFile=output.pdf convertoutput.pdf
В моем файле было 14 изображений (19 МБ после преобразования, gs сделала его 1,6 МБ, качество все еще отличное). Выходной файл называется output.pdf
.
-compress jpeg -quality 50
. Смотрите мой ответ