У меня есть много файлов PDF в одной папке.
Можно ли проверить, не поврежден ли один или несколько файлов (нулевые страницы или незавершенные загрузки) с помощью командной строки, не открывая их по одному?
Возможно, запуск pdfinfo
(здесь на Fedora в poppler-utils
пакете) дает подсказку?
Большая часть информации о файле PDF находится в конце словаря, поэтому, если он его найдет, все будет в порядке. Я бы сделал что-то вроде:
for f in *.pdf; do
if pdfinfo "$f" > /dev/null; then
: Nothing
else
echo "$f" is broken
fi
done
pdfinfo
илиpdftotext
...Это мой сценарий
источник
Мой инструмент выбора для проверки PDF-файлов
qpdf
.qpdf
имеет--check
аргумент, который хорошо подходит для поиска проблем в PDF-файлах.Проверьте один PDF с
qpdf
:Проверьте все PDF-файлы в каталоге с
qpdf
:Объяснение команды:
find ./directory_to_scan/ -type f -iname '*.pdf'
Найти все файлы с расширением .pdf-exec sh -c 'qpdf --check "{}" > /dev/null && echo "{}": OK' \;
Выполнитеqpdf
для каждого найденного файла и передайте все выходные данные/dev/null
. Также выведите имя файла, за которым следует «: OK», если возвращаемое состояниеqpdf
равно 0 (т.е. ошибок нет)-o -exec echo "{}": FAILED \; \)
Это выполняется, если обнаружены ошибки: Напечатать имя файла, после которого следует: «FAILED»Где взять
qpdf
:qpdf
двоичные файлы для Linux и Windows доступны по адресу: https://github.com/qpdf/qpdf/releases . Вы также можете использовать ваш менеджер пакетов по своему выбору, чтобы получить его. Например, в Ubuntu вы можете установить qpdf, используя apt с командой:источник
qpdf --check
не менее, не обнаруживает многократно определенные метаданные, которые являются неправильными, поскольку они обрабатываются по-разному различными инструментами. Я сообщил об ошибке . Другие инструменты, такие какpdfinfo
иpdftk
нет, но они не претендуют на проверку структуры PDF.Я получил ответ:
PDF с ошибками покажет ошибки.
источник
ls
: mywiki.wooledge.org/ParsingLsfind (1)
. :-)Все методы используют
pdfinfo
илиpdftotext
не работают для меня. На самом деле они давали мне ложные срабатывания и иногда создавали файлы, которые мне не нужны.То, что сработало, было JHOVE .
Установка:
Установите jar по вышеуказанной ссылке и обновите переменную среды PATH с помощью этой команды:
Обновите каждый терминал,
source ~/.bash_profile
и вы можете начать использовать его в масштабе всей системы.Основное использование:
Вы получите много информации о PDF - больше, чем нужно большинству людей.
Bash One-Liner:
просто возвращается
valid
илиinvalid
:Обратите внимание, что это было выполнено в Mac OS X, но я предполагаю, что это работает так же, как и в любой среде на основе Unix.
источник