Шрифтове за печат на данни, които евентуално ще се OCR-ват
При печатане на данни, които евентуално ще се OCR-ват (например архиви на ключове, хартиени фактури и т.н.) е добре да се внимава какъв шрифт се ползва.
Има специално разработени шрифтове за целта - OCR-A и OCR-B.
Инсталация на Ubuntu/Debian:
$ sudo apt-get install fonts-ocr-a fonts-ocr-b
Сравнение на някои шрифтове:
Обърнете внимание на това как някои символи си приличат: "0" (нула) и голямо "O", малко "L" ("l") и "I", "S" и "5" (пет), "Z" и "2" (две) и други. При шрифта OCRB има проблем с нулата и буквата голямо "o" - твърде много си приличат.
Шрифовете подобни на "Courier" не са особено добри за печат на base64 данни (ASCII armor). DejaVu Sans Mono е по-добър. Харесва ми това, че при нулата има точка по средата. OCRA също е добър.
Може да изтеглите примерния текст във формат PDF и ODТ.
Ако не ви се свиди хартията и мастилото (тонера) може да ползвате RFC1751 кодиране.
$ echo "Данни, които ще кодираме във формат RFC1751." > input.dat $ data-to-english.py < ./input.dat > output.txt $ cat output.txt ; echo ROAD KILL NIT JIBE SITE BREW ROAM NAGY BON JIBE LENT BRIM ROAM NUMB BURL JIBE SOME COCK GAUL FOUR ACID JIBE LENT BRIM ROAM KILL OAT JOVE DAD BIND ROAM SWUM NU TOO COG COCK GERM FOUL GAIL JOVE ANNA BRIM ROME BED OK JIBE DAD MYRA JIM HAAS GROW CAKE DINE HISS OAR AWRY FIVE COY BUOY ARE $ english-to-data.py < output.txt > test.dat $ cmp input.dat test.dat $
При ползване на RFC1751 е значително по-трудно да станат грешки (в сравнение с base64 например).
Друг начин за намаляване вероятността за грешки е да се заменят проблемните символи с други, които изглеждат различно.
Написах скрипт за това: https://github.com/vstoykovbg/ASCII-armor-enhancer
Таблица за замяна:
Q ⇨ Я 0 ⇨ θ l ⇨ л I ⇨ Д G ⇨ Ж
$ enhance-ascii-armor.py --action=encode < test.txt.asc > test.txt.asc.enhanced $ gedit test.txt.asc.enhanced $ cat test.txt.asc -----BEGIN PGP MESSAGE----- jA0ECQMKKEnwbwZvywT/0kQBvTttT+fvKRQk0qz1MRUb3sLM8lisu90LCe8jOgQd MT1oFmbh4k+1ViD0zqjUd76kMuSCEP+bxx92ykCe3laoIZRquA== =C3bh -----END PGP MESSAGE----- $ cat test.txt.asc.enhanced -----BEЖДN PЖP MESSAЖE----- jAθECЯMKKEnwbwZvywT/θkЯBvTttT+fvKRЯkθqz1MRUb3sLM8лisu9θLCe8jOgЯd MT1oFmbh4k+1ViDθzqjUd76kMuSCEP+bxx92ykCe3лaoДZRquA== =C3bh -----END PЖP MESSAЖE----- $ enhance-ascii-armor.py --action=decode < test.txt.asc.enhanced > decoded.asc $ diff test.txt.asc decoded.asc $
Коментари
Публикуване на коментар