Resposta principal
Como estou interessado no mesmo tipo de trabalho (embora não necessariamente oculte os arquivos PDF, mas os converta para DjVu e depois OCR), achei essa pergunta e as respostas ausentes (pois precisava adivinhar o DPI do imagens com o número de pixels e, em seguida, use o tamanho como saída pdfinfo
ou outros truques - sem mencionar que as imagens em um PDF podem ter densidades diferentes etc.).
Depois de muita pesquisa, descobri que você pode usar pdfimages
(do pacote poppler-utils ) como o seguinte:
$ pdfimages -list deptest.pdf
page num type width height color comp bpc enc interp object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
1 0 image 100 100 gray 1 1 image no 9 0 53 53 169B 14%
2 1 image 100 100 gray 1 1 ccitt no [inline] 53 53 698B 56%
Observe o x-ppi
e y-ppi
na lista acima. Ele também lista o formato em que as imagens são armazenadas no PDF, o que é legal (às vezes, é JBIG2, às vezes JPEG2000 etc.)
Nota: O arquivo deptest.pdf
usado acima está disponível no pdfsizeopt
repositório .
A ação real
Depois disso, você pode simplesmente extrair as imagens consigo pdfimages
mesmo ou usar pdftoppm
(também de poppler-utils
) para renderizar páginas inteiras em vários formatos que desejar (por exemplo, tiff, para digitalizar tesseract
).
Você pode usar algo como o seguinte (supondo que você tenha criado um diretório chamado imgs
onde você colocará suas imagens):
pdfimages -png Faraway-PRA.pdf imgs/prefix
Os arquivos serão criados dentro do diretório imgs
com nomes começando por prefix
, como em:
$ ls
prefix-000.png prefix-047.png prefix-094.png prefix-141.png
prefix-001.png prefix-048.png prefix-095.png prefix-142.png
prefix-002.png prefix-049.png prefix-096.png prefix-143.png
prefix-003.png prefix-050.png prefix-097.png prefix-144.png
(...)
Você pode, então, executar qualquer cirurgia que achar melhor com ferramentas como scantailor
ou o que quiser.
Resposta mais direta
Se você quiser apenas registrar um arquivo PDF em OCR, poderá usar um programa bem conservado e já empacotado, ou seja, ocrmypdf .
x-ppi
(resolução x em DPI) ey-ppi
(resolução y em DPI) NÃO são mostradas nas versões mais antigaspdfimages
que acompanham o Ubuntu 14.04, por exemplo. O que está disponível no Ubuntu 18.04, no entanto, inclui esses valores.pdfimages -v
em meus Ubuntu 18.04 mostra máquina eu tenho a versão 0.62.0, o que faz ter essas características.Eu precisava dessas informações e as encontrei aqui:
http://www.wizards-toolkit.org/discourse-server/viewtopic.php?t=16110
Essa técnica também usa o ImageMagick:
A saída é o tamanho da imagem e o dpi:
fonte
Eu uso o seguinte comando:
e retorna:
fonte
Size: 595x842
embora o DPI (check-in Acrobat) é de cerca de 130