Відповіді:
Для того, щоб додати до вищезгаданої відповіді, зокрема, ви можете скористатися інструментом командного рядка з xpdf-utils під назвою pdftotext, а потім виконати пошук із текстовим документом, створеним цим інструментом, із греппом.
Це може виглядати приблизно так:
pdftotext document.pdf - | grep -C5 -n -i "search term"
Більше інформації в посібнику. Єдиним недоліком pdftotext є те, що ви не можете нас глобалізувати, щоб перетворити кілька файлів одночасно. Цю проблему можна подолати за допомогою невеликого сценарію bash:
for f in pdf_directory; do echo $f; pdftotext $f - | grep -i "search_term"; done
Якщо у вас виникли проблеми зі створенням текстового документа з pdf через, наприклад, несумісного pdf-файлу, то це ще одна проблема.
Я думаю, що в цілому редактори PDF не включають командні рядки, оскільки вони графічні. Якщо ви хочете використовувати bash, (а може, і zsh!), Можливо, вам доведеться використовувати термінальну оболонку.
Удачі!
Примітка: xpdf-utils - це перехідний пакет для poppler-utils.
Можна використовувати poppler-утиліти. poppler-utils - це набір інструментів для файлів Portable Document Format (PDF).
Щоб встановити його, ви можете скористатись програмним центром Ubuntu або натиснувши нижче:
pdfgrep
можна шукати рядок або візерунок у файлах PDF рекурсивно у деревах каталогів, підраховуючи відповідність або друкуючи певний контекст для кожного відповідності. Наприклад, для рекурсивного пошуку keyword
в /some directory
залежності від регістру:
pdfgrep -Ri keyword /some/directory
Pdfgrep - це інструмент для пошуку тексту у файлах PDF. Він працює аналогічно `grep '.
Особливості:
- пошук регулярних виразів.
- підтримка деяких важливих варіантів grep, включаючи: + вихід файлу. + вихід сторінки сторінки + необов'язкова нечутливість випадку. + підрахунок
подій.- і найважливіша особливість: кольоровий вихід!
1 Джерело: Довідник Ubuntu Apps
Причиною, що pdftotext виявився без успіху, може бути те, що PDF-файли - це скановані зображення, і вам потрібно їх OCR, я написав швидкий спосіб пошуку всіх pdf
s, які неможливо grep
редагувати, та OCR-них.
Я помітив, якщо у pdf
файлі немає шрифту, його зазвичай не можна шукати. Знаючи це, ми можемо використати pdffonts
.
Перші 2 рядки pdffonts
заголовка таблиці є, тому коли файл, який можна шукати, має більше двох вихідних рядків, знаючи це, ми можемо створити:
gedit check_pdf_searchable.sh
вставте це
#!/bin/bash
#set -vx
if ((`pdffonts "$1" | wc -l` < 3 )); then
echo $1
ocrmypdf "$1" "$1"_ocr.pdf
fi
потім зробіть його виконуваним
chmod +x check_pdf_searchable.sh
потім перелічіть усі файли pdfs, які не можна шукати, у каталозі:
ls -1 ./*.pdf | xargs -L1 -I {} ./check_pdf_searchable.sh {}
або в каталозі та його підкаталогах:
tree -fai . | grep -P ".pdf$" | xargs -L1 -I {} ./check_pdf_searchable.sh {}
Вам також потрібно встановити:
sudo apt install ocrmypdf