Результаты более отвратительны, чем apg или pwgen (даже с установленной опцией -s), но это более интересно:
head -c 8192 /dev/urandom | strings --bytes 8 | sed 's/\s//'
Я подозреваю, что ваш прецедент, если он отличается, но это что-то полезное для общих секретных ключей и других паролей, которые вы не вводите очень часто. Чтобы получить больший выбор, передайте больше байтов в head и чтобы получить более длинные строки результата, измените --bytes в strings (что дает минимальную длину). выражение sed вырезает полосы из пробелов и вкладок (представлено \s).
Однако в какой-то момент вы, вероятно, оцените приложения (например, pwgen, KeePassX или LastPass), которые дают вам возможность избежать легко смешиваемых символов, например 1 и l и I. Они могут выглядеть как 1Il или 1Il или хуже. Вы захотите использовать такой вариант, если вы сбросите чей-то пароль или предоставите одноразовый ключ доступа, который должен быть передан.
Stil, pwgen put дает это оговорку на своей странице руководства, описывая его вариант -B:
-B, --ambiguous
Don't use characters that could be confused by the user when
printed, such as 'l' and '1', or '0' or 'O'. This reduces the
number of possible passwords significantly, and as such reduces
the quality of the passwords. It may be useful for users who
have bad vision, but in general use of this option is not recom‐
mended.
Это, конечно, орехи. Вероятно, вы знаете, когда это полезно или нет. И это, безусловно, лучше, чем использование «Pa $$ w0rD» для всего. Если есть сомнения, создайте более длинный пароль или передайте сгенерированный пароль в качестве входа в другой генератор или используйте многофакторную аутентификацию.
pdfsandwich выполняет именно эту работу. Я не знал, что в программном центре есть пакет, но я предоставляю ему пакеты debug Ubuntu на веб-сайте проекта (подробнее см. Http://www.tobias-elze.de/pdfsandwich/), в том числе самую последнюю версию (0.1.2), которая вряд ли будет находиться в любом программном центре.
Если у вас есть отсканированный файл scanned_file.pdf, просто вызовите
pdfsandwich scanned_file.pdf
, который генерирует файл scanned_file_ocr.pdf с распознанным текстом, добавленным на отсканированные страницы.
По сравнению с большинством существующих решений он автоматически определяет версию tesseract и соответствующим образом адаптирует ее поведение. Кроме того, он выполняет предварительную обработку отсканированных изображений до процесса OCR, таких как отслоение или удаление темных краев и т. Д., Что может значительно улучшить распознавание оптических символов.
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я разработчик pdfsandwich и, следовательно, сильно предвзятый.
@ don.joey ответил сценарием ocrmypdf.
sudo apt install ocrmypdf
Затем вам нужно установить необходимые языки ocrmypdf .
To список, языки которых уже находятся в вашей системе, введите:
tesseract --list-langs
Если вы пропустили один, установите его. Например,
sudo apt install tesseract-ocr-spa
Теперь вы можете создать PDF с возможностью поиска (качество которого будет варьироваться в зависимости от отсканированного документа) со следующей командой
ocrmypdf -l 'spa' old.pdf new.pdf
Вы можете, из конечно, проверьте его страницу руководства для некоторых дополнительных опций.
У OCRfeeder есть ошибка в
/usr/lib/python2.7/dist-packages/reportlab/pdfgen/textobject.py
строка 436 должна быть прочитана:
lines = asUnicode(stuff).strip().split('\n')
# bug here, was:
# lines = '\n'.split(asUnicode(stuff).strip())
изменил это, и это сработало для меня