PDF é um documento gráfico vetorial. Pode ser renderizado em qualquer resolução.
Uma imagem raster incorporada em um documento PDF (como é típico de um documento digitalizado básico) normalmente terá uma resolução (quantos pixels em uma polegada do documento quando impressa em papel). Um desses documentos em PDF pode ter várias dessas imagens (se for um documento de várias páginas), possivelmente com diferentes resoluções e orientações.
Não é isso que os relatórios identify -v
do ImageMagick. Esse 72dpi é a resolução que ele usa para converter o PDF em uma imagem rasterizada, de modo a relatar informações de pixel sobre ele.
Você notará que ele realmente é executado: gs ... -r72x72 ...
para isso.
pdfimages
pode relatar todas as imagens rasterizadas em um documento 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
Isso lhe dá o tamanho em pixel, mas não o tamanho (em mm
ou inch
) da caixa em que a imagem seria impressa, então você não obterá a resolução disso.
No ID do objeto ( 8 0
acima), você pode descobrir a dimensão do contêiner:
$ 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>>
Então, aqui, sabemos que a imagem é renderizada em 595x842 pt (um ponto sendo 1/72 de polegada).
Assim, podemos derivar a resolução xey:
$ echo "$((1219 * 72 / 595))dpi" "$((1707 * 72 / 842))dpi"
147dpi 145dpi
Observe que, quando incorporado como JPG, as imagens podem ter um cabeçalho EXIF que especifica a resolução.
Você pode extrair as imagens para descobrir:
$ exiftool -XResolution -YResolution <(qpdf --show-object=8 --raw-stream-data scan.pdf)
X Resolution : 72
Y Resolution : 72
Aqui eles não combinam.
Você também pode extrair as imagens e com pdfimages
e passá-las para o seu OCR para que não precise decidir sobre uma resolução antes de converter-se em uma imagem rasterizada.