от linux-bg team(11-07-2012)

рейтинг (13)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

Както обещахме, публикуваме по-подробна информация за скрипта, който съствихме за сканирането на документи в дирекция „Канцелария“ на МТИТС. Като за начало, в следващите няколко параграфа ще ви покажем най-важните команди в него, за да можете и вие сами да ги използвате или съедините в скрипт.

Допълнителните програми, с чиято помощ реализираме описания процес на сканиране, са следните:

  • Sane
  • ImageMagick
  • libTIFF
  • gscan2pdf
  • scanadf

Статията няма да се спира над процеса на конфигуриране на скенер за работа, а ще счита, че тази стъпка вече е преминала успешно. Ако се нуждаете от помощ за нея, можете да разгледате, например, ресурсите в официалния сайт на Sane или да се допитате до нашия форум.

Преди да започнем със същинското сканиране, с командата
scanimage --help -d DEVICE
можем да разгледаме какви са възможните опции, които можем да задаваме при употреба на конкретното устройство. Както ще видите, при командата за сканиране ние използваме няколко такива специфични или хардуерно зависими опции.

За самото сканиране на документа използваме програмата scanadf по следния начин:
/usr/bin/scanadf --source='ADF Duplex' --mode=Lineart --resolution=200 --brightness=30 --contrast=50
Както казахме, повечето опции зависят от вашето конкретно устройство и този команден ред търпи модификация според това. Стойностите за резолюция, яркост и контраст са фиксирани като оптимални след проведени тестове на най-различни варианти - напълно вероятно е и при вас да се наложи да изпробвате неколкократно, докато откриете кога резултатите са най-добри.

Така извикана, програмата scanadf сканира документа и създава "сурови" изображения с име image-* в текущата директория. За да се справим с изискването да се премахват празните страници (и накрая да получим PDF документ), използваме конвертиране във формата TIFF на всяко едно "сурово" изображение:
pnmtotiff -g4 RAW_FILE > TIFF_FILE
и, след това, една много проста проверка:
convert TIFF_FILE -quiet -shave 1%x1% -resize 40% -blur 0x5 -fuzz 15% -trim +repage info: | grep -q ' 1x1 '
Ако резултатът от този pipeline (т.е. кода на завършване на grep) е 1 (т.е. не е намерено нито едно съвпадение), значи страницата не е празна и може да остане. Ако резултатът е 0 (т.е. има намерено поне едно съвпадение), значи страницата е празна и направо изтриваме TIFF файла.

Оттук нататък ни остава да комбинираме всички останали (т.е. непразни) TIFF страници в един общ документ:
tiffcp TIFF_PAGE... TIFF_DOCUMENT
и да създадем крайния PDF документ:
tiff2pdf -j -o TIFF_DOCUMENT PDF_DOCUMENT

В самия скрипт сме добавили функционалност, която, преди всичко, да изтрива останалите от стари сканирания документи в текущата директория (по подразбиране използваме /home/scan) и копиране/преместване на PDF документа на работния плот за удобство на служителите.

Предполагаме, че, с помощта на тези обяснения, мнозина от вас могат сами да свържат тези команди в скрипт, подхождащ както на техния скенер, така и на конкретната нужда и среда на употреба. Но, все пак, за всички вас сме качили и нашата цялостна версия (в доразвит вариант с няколко опции, които да позволят по-гъвкаво поведение): mtitscan.sh.

Ако забележите някакви неточности или имате предложения за подобрения, можете да ни пишете в коментарите под тази статия или да се свържете с нас на адрес team@linux-bg.org. С нетърпение очакваме вашите отзиви!



<< Attachix - свободен Dropbox клон | Проект на „Линукс за българи“ и МТИТС - доклад по Фаза I >>