ImageMagick: конвертируйте изображение в PDF с размером страницы A4 и изображением по размеру страницы

Я хочу преобразовать различные форматы изображений (BMP, JPG, GIF, PNG, TIFF, включая многостраничные) в формат PDF с размером страницы A4 и изображениями, подходящими для страницы (при необходимости измените размер). Изображение должно быть расположено в центре страницы, и я хочу определить смещение. Я попробовал приведенный ниже код, но наверху нет смещения и качество изображения очень низкое.

convert png.png -gravity North -resize 500x500 -quality 100 -page a4x5x5 myout.pdf

Есть ли способ сделать это?

Заранее благодарим за любую помощь, Мариуш


person Mariusz Pala    schedule 22.04.2014    source источник
comment
ImageMagick не имеет размера страницы a4x5x5. Используйте -размер 595 x 842 ... -размер 595 x 842   -  person fmw42    schedule 22.08.2019


Ответы (5)


Если вы хотите сохранить исходное разрешение (без потерь), вы можете попробовать следующую команду:

convert png.png -background white -page a4 myoutput.pdf

На основе ранее опубликованного комментария: https://stackoverflow.com/a/24573341/6747994

@ m4tx Эта команда имеет смысл только в том случае, если изображение имеет разрешение выше 500x800 пикселей, оно не увеличивается, чтобы избежать пиксельных эскизов.

person JoKalliauer    schedule 06.10.2017
comment
Извините, я проверил еще раз сегодня, и теперь он работает. Я не знаю, что пошло не так, я даже использовал ту же команду из истории оболочки. К сожалению, я не могу отозвать голос против, так как сейчас он заблокирован. - person ziggystar; 16.10.2017
comment
Кажется, на самом деле он не масштабирует маленькие изображения до размеров всей страницы. - person m4tx; 31.10.2017
comment
Вам необходимо указать -density, чтобы избежать проблем при печати с реальным размером. stackoverflow.com/a/55125655/376454 - person Wok; 18.06.2020
comment
используя это, я получал изображения как пейзажи, а не портреты, как в оригинале - person Wakan Tanka; 06.10.2020
comment
@Wok Используя -density 72, я получаю изображение размером меньше страницы A4. Если я его сниму, то он будет иметь нужный размер, то есть такой же, как страница А4. - person Kubuntuer82; 07.04.2021

Вы можете конвертировать в pdf с помощью ImageMagick

convert png.png myout.pdf

но используйте pdfjam вместо ImageMagick для настройки размера страницы

pdfjam --paper a4paper --outfile myoutA4.pdf myout.pdf

pdfjam предлагает другие варианты, которые могут соответствовать вашим потребностям.

person toliveira    schedule 12.06.2018
comment
Спасибо, это единственное решение, которое мне подходит. При преобразовании цветного файла tiff в pdf мне нужно использовать pdfjam, чтобы исправить размер изображения до размера страницы A4. - person Floyd; 18.02.2019

Благодаря форуме поддержки ImageMagick мне удалось найти решение:

convert image.tif -resize 575x823^> -gravity center -background white -extent 595x842 image.pdf

Если вы получили сообщение об ошибке, попробуйте:

convert image.tif -resize 595x842^\> -gravity center -background white -extent 595x842 image.pdf
person Mariusz Pala    schedule 04.07.2014
comment
Вероятно, вы могли бы избежать ›вот так: -размер 575x823 ^ \› - person chikamichi; 21.12.2015
comment
Поиск в Google привел меня сюда, потому что название этой ветки довольно общее. Для простых целей опция -page a4 уже автоматически выполняет свою работу: convert file-pattern*.jpg -page a4 output.pdf - person fedelibre; 13.06.2016
comment
Если изображение меньше, и вы хотите изменить его размер, используйте -page 'A4<'. - person domen; 28.02.2019

Нашел это где-то в stackoverflow:

convert *.jpg -resize 1240x1753 \
                      -extent 1240x1753 -gravity center \
                      -units PixelsPerInch -density 150x150 multipage.pdf
person nomadSK25    schedule 21.08.2019
comment
-гравитация должна быть раньше -extent - person fmw42; 22.08.2019
comment
Спасибо. Именно то, что я искал! - person Abbas Allahyari; 10.01.2020
comment
Это было именно то, что мне было нужно - спасибо! - person jckdnk111; 19.03.2021

Вам нужно указать плотность:

convert -density 80 -page a4 input_A.jpg input_B.jpg output.pdf

В противном случае может возникнуть проблема при печати с «фактическим размером» вместо «подогнанного». Я использовал общедоступный принтер, где я не мог выбрать «подходящий» и должен был выбрать «фактический размер», и в этом случае напечатанная страница была только частью страницы, которую я хотел напечатать.

Подгонка и фактический размер

person Wok    schedule 18.06.2020
comment
Если вы определяете -page a4, оно сжимает изображение, чтобы оно поместилось в A4-PDF. Если вы распечатываете это с исходным размером, это будет бумага A4, независимо от плотности. Если вы хотите напечатать его в другом размере, вы не должны использовать подгонку или -плотность, вам следует изменить -page ..... - person JoKalliauer; 04.02.2021
comment
Нет. Если вы не укажете плотность, и даже если вы укажете страницу A4, соответствующая часть страницы не обязательно будет A4, это может быть крошечный прямоугольник в середине страницы A4. Попробуйте печатать в реальном размере, а не по размеру, и вы убедитесь в этом сами. Я знаю, у меня получилось, и я не возился с другими форматами, кроме А4. Сделайте снимок фотоаппаратом и конвертируйте его в PDF. - person Wok; 05.02.2021
comment
Я думаю, проблема в том, что Джокаллиауэр говорит только о формате страницы (который действительно является бумагой A4), а я говорю о содержании на странице (что означает, что я хочу, чтобы содержимое изображения заполняло бумагу A4, как ожидалось) . - person Wok; 05.02.2021