Печать содержимого PDF-файла в командной строке

#linux #pdf #command-line #cat

#linux #PDF #командная строка #cat

Вопрос:

Я ищу программу командной строки, которая распечатает текст PDF-файла, как cat и для текстового файла.

Я нашел pdftotxt , и это было бы выполнимо, но я бы предпочел что-то, что воспроизводит cat функциональность, потому что я хочу передать grep . Спасибо!

Комментарии:

1. Хотя не похоже, что это решение этой проблемы, любой, кто заинтересован в взаимодействии с файлами PDF из командной строки, должен знать pdftk . (И вы могли бы посмотреть на data_dump команду, чтобы узнать, можно ли получить из нее что-нибудь полезное …)

2. Связанный: конвертер PDF в текст

Ответ №1:

На справочных страницах для pdftotext я нашел это:

pdftotext [параметры] [PDF-файл [текстовый файл]]

Описание Pdftotext преобразует файлы формата Portable Document Format (PDF) в обычный текст.

Pdftotext считывает PDF-файл, PDF-файл, и записывает текстовый файл, текстовый файл. Если текстовый файл не указан, pdftotext преобразует file.pdf в file.txt . Если текстовый файл имеет значение ‘-‘, текст отправляется в стандартный вывод.

Таким образом, для вывода stdout в, чтобы передать, чтобы grep использовать это:

 pdftotext mydoc.pdf - | grep mysearchterm
  

Комментарии:

1. Который, похоже, поставляется с xpdf (факт, который может быть полезен при попытке выяснить, какой пакет установить …)

2. Смотрите также, есть ли лучший конвертер pdf в текст, чем pdftotext?

3. Установка на Linux: sudo apt-get install poppler-utils , OSX: brew install poppler

Ответ №2:

Может быть, вы можете попробовать это: https://github.com/luochen1990/nodejs-easy-pdf-parser

Это пакет npm, и для его использования вам необходимо установить nodejs (и npm).

Его можно использовать как инструмент командной строки:

 npm install -g easy-pdf-parser
pdf2text test.pdf > test.txt
  

И этот инструмент будет сортировать текстовые строки по их координатам y, поэтому в большинстве случаев он отлично работает. И он также хорошо работает с unicode и кросс-платформенным (для сравнения: mingw64 pdftotext потеряет символы Unicode в Windows).

Комментарии:

1. первый PDF-файл, который я попробовал, выдал ошибку: (node:3972) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'Pages' of undefined

2. @masterxilo возможно, это зависит от содержимого файла PDF, не могли бы вы сообщить о проблеме с вашим файлом PDF, в котором есть проблема?

3. github.com/luochen1990/nodejs-easy-pdf-parser/issues/1