PDF - документ векторной графики. Это может быть оказано в любом разрешении.
Растровое изображение, встроенное в документ PDF (как типично для обычного отсканированного документа), обычно будет иметь разрешение (сколько пикселей в дюйме документа при печати на бумаге). Один такой PDF-документ может иметь несколько таких изображений (будет, если это многостраничный документ), возможно, с разным разрешением и ориентацией.
Это не то, что ImageMagick сообщает identify -v
. Это разрешение 72dpi - это разрешение, которое он использует для преобразования PDF в растровое изображение, чтобы сообщить о нем информацию о пикселях.
Вы заметите, что на самом деле он работает: gs ... -r72x72 ...
для этого.
pdfimages
может сообщать обо всех растровых изображениях в PDF-документе:
$ pdfimages -list scan.pdf
page num type width height color comp bpc enc interp object ID
---------------------------------------------------------------------
1 0 image 1219 1707 rgb 3 8 jpeg no 8 0
$ qpdf --show-pages --with-images scan.pdf
page 1: 3 0 R
images:
/Im0: 8 0 R, 1219 x 1707
content:
4 0 R
Это дает вам размер в пикселях, а не размер (в mm
или inch
) рамки, в которой будет напечатано изображение, поэтому вы не получите разрешение от этого.
Однако из идентификатора объекта (8 0
выше) вы можете узнать размер контейнера:
$ mutool show scan.pdf grep | grep 'Im0 8 0'
scan.pdf:3: <</Contents 4 0 R/CropBox[0 0 595 842]/MediaBox[0 0 595 842]/Parent 2 0 R/Resources<</XObject<</Im0 8 0 R>>/ProcSet 6 0 R>>/Thumb 11 0 R/Type/Page>>
Итак, здесь мы знаем, что изображение визуализируется с разрешением 595x842 пт (точка составляет 1/72 дюйма).
Таким образом, мы можем получить разрешение x и y:
$ echo "$((1219 * 72 / 595))dpi" "$((1707 * 72 / 842))dpi"
147dpi 145dpi
Обратите внимание, что при вставке в формате JPG изображения могут иметь заголовок EXIF, который определяет разрешение.
Вы можете извлечь изображения, чтобы узнать это:
$ exiftool -XResolution -YResolution <(qpdf --show-object=8 --raw-stream-data scan.pdf)
X Resolution : 72
Y Resolution : 72
Здесь они не совпадают, хотя.
Вы также можете извлечь изображения с помощью pdfimages
и передать их вместо этого в OCR, чтобы ему не приходилось выбирать разрешение, прежде чем преобразовывать себя в растровое изображение.