У меня есть куча pdf-файлов/форм в стандартизированном формате. Они содержат такую информацию, как история версий, автор, кто подписал документ и на какие документы он ссылается. Мне нужно извлечь эту информацию для ввода в базу данных, содержащую информацию о документах. Я почти уверен, что смогу сделать это с помощью регулярных выражений, но я не совсем уверен, как это сделать. Я также хотел бы автоматизировать этот процесс, чтобы при создании новых документов они добавлялись в систему, а также система просматривала все документы на веб-странице и извлекала информацию.
Документ можно преобразовать .pdf
в текстовый файл. После этого должна быть возможность извлечь фрагмент текста в зависимости от того, насколько регулярным он будет с использованием регулярных выражений. Вы не указали, какую ОС вы используете, но *nix
это можно автоматизировать с помощью pdftotext
инструмента командной строки и комбинации файлов grep/sed/cut/awk/perl
.
Чтобы загрузить/выгрузить документы с/на веб-сервер, вы можете использовать scp
, если SSH
доступ включен или lftp
, извлечь метаданные локально и отправить их на веб-сервер. Вам понадобится список документов, которые вы уже обработали. В качестве альтернативы вам даже не нужно загружать .pdf
с веб-сервера, потому что вы можете обработать его непосредственно на веб-сервере или смонтировать удаленный каталог с расширением sshfs
. .pdf
Вы можете запускать операцию извлечения метаданных каждый раз, когда добавляется новый , используя inotify
механизм или какой-либо обратный вызов веб-сервера, или выполнять его регулярно, используя crontab
задание.
Я все еще не уверен, предпочитаете ли вы *nix
или Windows
. Если вы предпочитаете последнее, я не могу вам помочь, потому что я им не пользуюсь.
Аркадиуш Драбчик
exiftool
для извлечения.pdf
метаданных и анализа их вывода с помощью регулярных выражений. Например, чтобы найтиCreator
заданный.pdf
:exiftool doc.pdf | grep "^Creator" | perl -pe 's,^Creator.+: (.*)$,\1,'
. Чтобы найти автора:exiftool doc.pdf | grep "^Author" | perl -pe 's,^Author.+: (.*)$,\1,'
подсказка
Аркадиуш Драбчик
.pdf
в текстовый файл. После этого можно будет извлечь фрагмент текста в зависимости от того, насколько регулярным он будет с использованием регулярных выражений. Вы не указали, какую ОС вы используете, но*nix
это можно автоматизировать с помощьюpdftotext
инструмента командной строки и комбинацииgrep/sed/cut/awk/perl
подсказка
Аркадиуш Драбчик
man pdftotext
:pdftotext [options] [PDF-file [text-file]]
. Это также говорит, чтоPdftotext reads the PDF file, PDF-file, and writes a text file, text-file. If text-file is not specified, pdftotext converts file.pdf to file.txt. If text-file is ´-', the text is sent to stdout.
. Так, например:pdftotext <doc>.pdf
будет производить<doc>.txt
в том же каталоге.подсказка
Аркадиуш Драбчик
pdftotext
странице руководства и изучить его намного быстрее. Чтобы загрузить/выгрузить документы с/на веб-сервер, вы можете использоватьscp
, еслиSSH
доступ включен илиlftp
, извлечь метаданные локально и отправить их на веб-сервер. Вам понадобится список документов, которые вы уже обработали. В качестве альтернативы вам даже не нужно загружать.pdf
с веб-сервера, потому что вы можете обработать его непосредственно на веб-сервере или смонтировать удаленный каталог с расширениемsshfs
.Аркадиуш Драбчик
.pdf
Вы можете запускать операцию извлечения метаданных каждый раз, когда добавляется новый , используяinotify
механизм или какой-либо обратный вызов веб-сервера, или выполнять его регулярно, используяcrontab
задание. Я до сих пор не уверен, что вы предпочитаете*nix
или Windows. Если вы предпочитаете последнее, я не могу вам помочь, потому что я им не пользуюсь. Кстати : это уже слишком много для комментария, поэтому, если вам это нравится, я преобразую его в ответ, и вы можете его принять.подсказка
подсказка