É claro que quase todos os PDFs ‘contêm texto’ no sentido de terem texto que você pode ler, mas estou falando aqui sobre a diferença entre aqueles em que é apenas um bitmap que só é interpretado como texto pelo cérebro do ser humano olhando para a tela, versus aqueles que também contêm texto no que diz respeito ao computador.
Isso pode não ser óbvio no caso de um PDF digitalizado em papel. Às vezes, o que você vê na tela parece uma imagem borrada e imperfeita de texto direto da digitalização, mas acontece que o PDF passou por OCR, então mesmo que você esteja vendo o bitmap borrado original, mesmo que você não esteja aproveitando o benefício do OCR durante a leitura normal, o texto incorporado ainda está lá, escondido no arquivo. Duas maneiras pelas quais isso pode se manifestar em um leitor de PDF:
Tente selecionar o texto com o mouse.
Tente pesquisar uma palavra.
É claro que também pode acontecer que parte do texto tenha sido OCR, mas não todo.
Nos casos em que ambos os testes acima deram negativo, é possível dizer "não, este PDF não contém texto incorporado" ou o texto incorporado ainda pode estar oculto no arquivo?
Por exemplo:
https://pdf.datasheetcatalog.com/datasheets/2300/45014_DS.pdf
Pelo que sei, o PDF acima é todo bitmaps, sem texto incorporado. Isso está correto ou ainda estou faltando alguma coisa?
Uma abordagem é extrair texto e testar se está vazio. Por exemplo, em
bash
temosA expressão regular
[[:graph:]]
corresponde apenas a caracteres visíveis, ou seja, quaisquer caracteres, exceto espaços, caracteres de controle e assim por diante. Talvez você queira ser mais restritivo e usar[[:print:]]
(caracteres e espaços visíveis).mutool
faz parte do MuPDF . Claro, você pode usarpdftotext file.pdf -
(frompoppler-tools
) ou qualquer outro.