Извлечение текста из файлов PDF (напечатано)
Я использую RedMon(монитор портов перенаправления), HP Universal Driver PS и GhostScript для перехвата печати документов.
Однако для следующего сценария:
Файл PDF -> Универсальный драйвер HP PS -> RedMon -> Файл PostScript ** -> GhostScript создать файл print.pdf *.
* Невозможно извлечь текст из файла PDF: gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=txtwrite -sOutputFile=output.txt print.pdf
** Файл PostScript создается в сжатом виде и не может извлекать текст.
Вопрос есть?
Можно ли создать файл PostScript без сжатия при отправке PDF-файла на принтер?
Наблюдение: Printed.pdf -> Изображение (TIFF) -> Тессеракт (OCR) -> Текстовый файл... Работает! Но это медленно.
1 ответ
Как говорит Двиберли в комментариях, если вы хотите извлечь текст из файла PDF, не начинайте с его печати. Особенно не превращайте это в PostScript.
PDF-файлы могут иметь ToUnicode CMaps в (это необязательно), и они позволяют надежное извлечение текста. PostScript не поддерживает их, поэтому информация теряется, если вы создаете файл PostScript из PDF (независимо от того, что вы используете для создания PostScript).
Кроме того, программа PostScript обычно создается с подмножеством шрифтов, нестандартными кодировками и другими модификациями текста, что затруднит или сделает невозможным извлечение текста из него.
Поскольку Ghostscript может принимать PostScript и PDF в качестве входных данных, нет смысла превращать PDF в PostScript перед передачей его на устройство txtwrite. Все, что вы делаете, - это усложняете жизнь устройства и отбрасываете полезную информацию.
Просто используйте Ghostscript и устройство txtwrite и передайте ему файл PDF в качестве входных данных.
Естественно, OCR работает, потому что сканирует формы текста, чтобы определить символ, но да, он медленный. С другой стороны, он будет работать с файлами PDF, которые содержат только изображения текста, а не фактический текст, что не будет с устройством txtwrite.