convert из пакета imagemagick не центровал картинку на A4 pdf

А с картинкой из моего сканера точно такого же размера не работало. Содержимое картинки куда-то улетало за пределы страницы.
Если же использовалась опция -extent то всё работало, но картинка растягивалась до размеров страницы A4 и файл становился большего размера чем возможно: pdf – 213275 байта (картинка 98738), а добился я размера pdf 110868

Вот этот скрип даёт нужный результат (картинка в центре страницы PDF файла) но файл получается больше чем нужно.

$ convert -page 2480x3508 -units PixelsPerInch -density 300x300 -extent 2480x3508 \( -gravity center 2015.06.09.jpg \) -format pdf out.pdf

После долгой пляски с опциями и случайно протестировав на сгенерированной картинке blue-test-rectangle.jpg выяснилось чтобы всё сработало так как хочется нужно удалить EXIF информацию из файла. Мой сканер засунул в файл опции разрешения 300 dpi. После этого опция gravity начинает “сходить с ума”.

Вот такой тест нормально работал и заставил задуматься о том, что проблема в картинке. Первая команда создаёт картинку. Вторая вставляет её в центр страницы размера A4 и экспортирует результат в pdf файл.

convert -size 760x1088 xc:blue blue-test-rectangle.jpg
convert blue-test-rectangle.jpg -gravity center -page A4 blue-test-rectangle.pdf
EXIF информация из оригинального файла
$ exiftool 2015.06.09.jpg.orig
ExifTool Version Number         : 9.90
File Name                       : 2015.06.09.jpg.orig
Directory                       : .
File Size                       : 96 kB
File Modification Date/Time     : 2015:06:13 19:40:04+02:00
File Access Date/Time           : 2015:06:13 19:40:15+02:00
File Inode Change Date/Time     : 2015:06:13 19:40:04+02:00
File Permissions                : rw-r--r--
File Type                       : JPEG
MIME Type                       : image/jpeg
JFIF Version                    : 1.01
Resolution Unit                 : inches
X Resolution                    : 300
Y Resolution                    : 300
Image Width                     : 760
Image Height                    : 1088
Encoding Process                : Progressive DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:4:4 (1 1)
Image Size                      : 760x1088
Megapixels                      : 0.827

EXIF информация после очистки

$ exiftool 2015.06.09.jpg.
ExifTool Version Number         : 9.90
File Name                       : 2015.06.09.jpg
Directory                       : .
File Size                       : 96 kB
File Modification Date/Time     : 2015:06:14 01:43:50+02:00
File Access Date/Time           : 2015:06:14 01:44:06+02:00
File Inode Change Date/Time     : 2015:06:14 01:43:50+02:00
File Permissions                : rw-r--r--
File Type                       : JPEG
MIME Type                       : image/jpeg
Image Width                     : 760
Image Height                    : 1088
Encoding Process                : Progressive DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:4:4 (1 1)
Image Size                      : 760x1088
Megapixels                      : 0.827

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

#!/bin/bash
exiftool -all= $1
convert $1 -gravity center -page 2480x3508 -format pdf $1.pdf