3
  1. Я отсканировал некоторые документы с помощью сканера Canon с разрешением 300.

    Я сохранил его в файл PDF Затем я проверил разрешение файла PDF, с помощью ImageMagick

    identify -verbose my.pdf
    

    В выводе он возвращает, для каждой страницы он говорит

    Resolution: 72x72
    

    который не 300, который я указал со сканером ранее. Почему это отличается? Примечание: та же проблема, если я сохранил его в виде файла jpg, и если я использую Xerox WorkCenter.

  2. Когда я использую Adobe Premium Pro для распознавания моего pdf-файла, я могу указать, какое разрешение будет уменьшать pdf-файл из нескольких вариантов (72, 300, 600). Если я не хочу, чтобы у файла PDF с распознаванием было меньшее разрешение, чем у исходного файла PDF, как мне узнать разрешение файла PDF и какой вариант разрешения выбрать для распознавания в Adobe Premium Pro?

Благодарю.

1 ответ1

4

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, чтобы ему не приходилось выбирать разрешение, прежде чем преобразовывать себя в растровое изображение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .