Как я загружаю PDF, затем произведите блок текста?

Если у вас нет слишком много шаблонов:

perl -ne 'BEGIN {$exp = quotemeta("miss.")} print if /^$exp/'

Я не знаю, как эффективно расширить это на GREP -F (чтение шаблонов из файла, который Вы бы сделали, если бы у вас было серьезное количество шаблонов для решения), но Это так отвечает при объединении запросов, кажется интересным.

0
21.01.2015, 19:14
2 ответа

Код будет варьироваться в зависимости от деталей, но общий подход будет:

  • Войти на веб-сайт (?)
  • Загрузить страницу, ссылающуюся на файл, используя WGET или Curl
  • Получите ссылку на PDF с страницы
  • Загрузить файл, используя wget или Curl
  • Извлеките текст из PDF с PDFTOTEXT PDFTOTEXT из Pop-Top-Utils или аналогичных
  • Использование GREP Или так, чтобы получить нужные данные из текстового результата

, самая сложная часть будет процесс входа , если это нужно.


Как вы прокомментируете, вам не нужно войти в систему, и иметь фиксированный URL, который упрощает его конечно. Мы можем загрузить PDF и использовать текстовый контент непосредственно для извлечения данных. Ниже приведен пример извлечения линии из образца PDF-файла. Эта строка содержит слово GhostView и номер версии, который можно использовать в качестве примерного значения.

$ u='http://www.wave.org.au/jupgrade/images/sample.pdf'
$ curl -s "$u" | pdftotext - - | grep 'ghostscript '
• ghostscript ≥ 5.10 (for example from Red Hat Contrib) and ghostview

Следующим шагом может быть извлечение простого численного значения.

1
28.01.2020, 02:51

Может быть возможно использование PDFTTтекст :

$ pdftotext -layout transaction.pdf - | grep -C1 amount
                 19876.0
amount paid

Программа является частью пакета Pop-Utils , которая может быть установлена ​​с использованием:

sudo apt-get install poppler-utils

- - Параметр используется для создания PDFTTEXT PDFTHTEEXT , придерживайтесь макета PDF так же тесно, как и может (в противном случае сумма оплачена в моем макете таблицы PDF, довольно далеко от количества в тексте. форма).

0
28.01.2020, 02:51

Теги

Похожие вопросы