Как провести различие между & quot; текстом & quot; PDF-файлы и & quot; изображение & quot; PDF-файлы в PHP?

Недавно я настроил сервер Linux, чтобы иметь возможность преобразовывать текстовые PDF-файлы в текст, используя pdftotext команда, которая является частью Xpdf, а также для преобразования PDF-файлов на основе изображений в текст, используя комбинацию gs (Ghostscript) и tesseract команды.

Оба решения работают довольно хорошо, когда я уже знаю, является ли PDF текстовым или графическим. Однако для того, чтобы автоматизировать процесс преобразования многих PDF-файлов в текст, мне нужно иметь возможность определить, является ли PDF-файл текстовым или графическим, чтобы я знал, какой набор процессов нужно запускать в PDF.

Есть ли в PHP способ проанализировать PDF-файл и сказать, является ли он текстовым или графическим, чтобы я знал, использовать ли на нем Xpdf или Ghostscript / Tesseract?

1

Решение

Сравнение выходных данных и определение того, совпадает ли полученный текст из прогона OCR с выходным сигналом из прогона Xpdf, является нетривиальным квестом. В случае текста PDF, который нельзя распознать (например, очень маленькие буквы), где текст может быть извлечен с помощью xpdf, вы даже закончите с большим количеством ненужного бреда.

Я хотел бы предложить извлечь изображения из PDF-файлов и OCR только те, а не полный PDF. Сюда

  • Вам не нужно сравнивать тексты [1].
  • В зависимости от того, как изображения включены в PDF, вы также можете получить лучшие результаты распознавания.
  • Также вы можете избежать ненужного распознавания текста, который содержится в виде открытого текста.

Поскольку вы уже используете xpdf, вы можете использовать pdfimages -all извлечь изображения.

[1] Это не на 100% правильно, так как PDF может быть зажатым PDF, где уже есть текстовый слой с оптическим распознаванием текста «позади» изображения.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]