diff --git a/README.md b/README.md index 9d4cb34..bb941ea 100644 --- a/README.md +++ b/README.md @@ -1,131 +1,97 @@ # LibreScan -LibreScan es un proyecto de Software Libre desarrollado en el Laboratorio Experimental del Centro Académico de Alajuela, sede del Instituto Tecnológico de Costa Rica. Este proyecto de investigación consiste en la elaboración de un software que agrupa distintas herramientas que cumplen funciones específicas dentro del flujo de tareas necesarias para escanear un documento. El objetivo de LibreScan es promover el acceso libre al conocimento y la educación, al proveer un software libre y gratuito que permita realizar el proceso de captura de fotos, procesamiento y generación de un documento digital. +- Instalar dependencias que serán utilizadas: -## Instalación + # apt-get install python3-pip lua5.2 liblua5.2 git-svn libusb-dev python3 python-dev libjpeg8 libffi-dev libturbojpeg1-dev -Actualmente el software funciona en el sistema operativo Debian 8 Jessie. Existen dos formas de instalar LibreScan: + # pip3 install pyYAML bottle pyjade jinja2 polib cffi pexpect -1. Forma resumida: + # pip3 install jpegtran-cffi==0.5.2 - - Clonar este repositorio: - - $ git clone https://github.com/LabExperimental-SIUA/LibreScan.git - - - Entrar en la carpeta clonada: - - $ cd LibreScan - - - Como root, sobreescribir el sources.list del sistema operativo - - # cp apt.sources /etc/apt/sources.list - - - Actualizar lista de paquetes de los repositorios: - - # apt-get update - - - Dar permisos de ejecución al script Dependencies.sh: - - # chmod +x Dependencies.sh - - - Ejecutar el script de instalación de dependencias: - - # sh Dependencies.sh -------------------------------------------------------------------------------------------- -2. Forma manual: +- Instalar tesseract-ocr para el reconocimiento de texto: - - Instalar dependencias que serán utilizadas: - - # apt-get install python3-pip lua5.2 liblua5.2 git-svn libusb-dev python3 python-dev libffi-dev libturbojpeg1-dev libssl-dev libjpeg8-dev libjpeg8 - - # pip3 install pyYAML bottle pyjade jinja2 polib cffi pexpect - - # pip3 install jpegtran-cffi==0.5.2 - - -------------------------------------------------------------------------------------------- - - - Instalar tesseract-ocr para el reconocimiento de texto: - - # apt-get install tesseract-ocr - - Nota: Para más idiomas se instala de esta forma (Ejemplo con español): - - # apt-get install tesseract-ocr-spa (Para Español) - - -------------------------------------------------------------------------------------------- - - - Instalar scantailor para el procesamiento de las fotos: - - # apt-get install scantailor - - Posteriormente hacer un # apt-get update - - -------------------------------------------------------------------------------------------- - - - Instalar pdfbeads para generar pdfs a partir de tifs+hocr: - - # apt-get install ruby ruby-dev ruby-rmagick - # gem install iconv pdfbeads - - - -------------------------------------------------------------------------------------------- - - En cuanto a las cámaras hay que instalar el CHDKPTP en el sistema. - - $ git svn clone http://subversion.assembla.com/svn/chdkptp/trunk chdkptp - - $ cd chdkptp - - -- nota: al 01.02.2015 Checked out HEAD: - http://subversion.assembla.com/svn/chdkptp/trunk r694 - - $ mv config-sample-linux.mk config.mk - - $ make - - # mkdir /usr/bin/chdkptp - - # cp chdkptp-sample.sh /usr/bin/chdkptp/chdkptp - - -- nota: chdkptp-sample.sh está en la dirección donde se descargó el chdkptp. - - # nano /usr/bin/chdkptp/chdkptp - - Modificar la línea que dice - - #CHDKPTP_DIR=/path/to/chdkptp - - por: - - CHDKPTP_DIR=/chdkptp (Y guardamos los cambios) - - nota: /chdkptp es la dirección donde se haya clonado el chdkptp (en el primer paso de esta sección). - - # ln -s /usr/bin/chdkptp/chdkptp /bin - - -------------------------------------------------------------------------------------------- - - Es necesario tener CHDK instalado en las cámaras. (En caso de no tenerlo se puede seguir esta guía. Se recomienda usar el método "a"): - https://github.com/LabExperimental-SIUA/ilt/wiki/Instalaci%C3%B3n-de-CHDK - - - - - - Para reconocer cuál cámara es la derecha y cuál es la izquierda hacemos uso de un archivo 'orientation.txt', que se encuentra almacenado la raíz de la tarjeta SD de cada cámara. Por ahora este proceso se debe hacer manualmente, introduciendo la SD en la computadora y creando el archivo manualmente. Pasos: - - 1. Asegurarse que la SD esté desbloqueada. - 2. Para la cámara que desea usar al lado izquierdo, crear un archivo orientation.txt que tenga la palabra 'left' (sin comillas) como contenido. - 3. Para la cámara que desea usar al lado derecho, crear un archivo orientation.txt que tenga la palabra 'right' (sin comillas) como contenido. + # apt-get install tesseract-ocr + + Nota: Para más idiomas se instala de esta forma (Ejemplo con español): + + # apt-get install tesseract-ocr-spa (Para Español) + +-------------------------------------------------------------------------------------------- + +- Instalar scantailor para el procesamiento de las fotos: + + # apt-get install scantailor - Nota: Estamos trabajando en automatizar este proceso, de modo que se el usuario conecte las cámaras y decida la orientación sin crear el archivo manualmente. + Nota: Si no se encuentra en los repositorios agregar este a /etc/apt/sources.list: + + - deb http://http.debian.net/debian wheezy-backports main + + Posteriormente hacer un # apt-get update + +-------------------------------------------------------------------------------------------- + +- Instalar pdfbeads para generar pdfs a partir de tifs+hocr: + + # apt-get install ruby ruby-dev ruby-rmagick + # gem install iconv pdfbeads + + +-------------------------------------------------------------------------------------------- +- En cuanto a las cámaras hay que instalar el CHDKPTP en el sistema. + + $ git svn clone http://subversion.assembla.com/svn/chdkptp/trunk chdkptp + + $ cd chdkptp + + -- nota: al 01.02.2015 Checked out HEAD: + http://subversion.assembla.com/svn/chdkptp/trunk r694 + + $ mv config-sample-linux.mk config.mk + + $ make + + # mkdir /usr/bin/chdkptp + + # cp chdkptp-sample.sh /usr/bin/chdkptp/chdkptp + + -- nota: chdkptp-sample.sh está en la dirección donde se descargó el chdkptp. + + # nano /usr/bin/chdkptp/chdkptp + +Modificar la línea que dice + + #CHDKPTP_DIR=/path/to/chdkptp + +por: - - Clonar el repositorio: + CHDKPTP_DIR=/chdkptp (Y guardamos los cambios) + +nota: /chdkptp es la dirección donde se haya clonado el chdkptp (en el primer paso de esta sección). + + # ln -s /usr/bin/chdkptp/chdkptp /bin + +-------------------------------------------------------------------------------------------- +- Es necesario tener CHDK instalado en las cámaras. (En caso de no tenerlo se puede seguir esta guía. Se recomienda usar el método "a"): +https://github.com/LabExperimental-SIUA/ilt/wiki/Instalaci%C3%B3n-de-CHDK + +- Para reconocer cuál cámara es la derecha y cuál es la izquierda hacemos uso de un archivo 'orientation.txt', que se encuentra almacenado la raíz de la tarjeta SD de cada cámara. Por ahora este proceso se debe hacer manualmente, introduciendo la SD en la computadora y creando el archivo manualmente. Pasos: - $ git clone https://github.com/LabExperimental-SIUA/LibreScan.git + 1. Asegurarse que la SD esté desbloqueada. + 2. Para la cámara que desea usar al lado izquierdo, crear un archivo orientation.txt que tenga la palabra 'left' (sin comillas) como contenido. + 3. Para la cámara que desea usar al lado derecho, crear un archivo orientation.txt que tenga la palabra 'right' (sin comillas) como contenido. + + + +Nota: Estamos trabajando en automatizar este proceso, de modo que se el usuario conecte las cámaras y decida la orientación sin crear el archivo manualmente. -------------------------------------------------------------------------------------------- -## Configuración y Uso +- Una vez instaladas todas las dependencias, procedemos a clonar el repositorio de LibreScan. + + $ git clone https://github.com/LabExperimental-SIUA/LibreScan.git -- Ingresamos al código fuente del repositorio clonado: +- Nos metemos a la carpeta clonada, y al código fuente. $ cd LibreScan/src @@ -133,12 +99,8 @@ Actualmente el software funciona en el sistema operativo Debian 8 Jessie. Existe $ python3.4 setup.py - -**NOTA: los pasos anteriores solo deben ser ejecutados una vez.** - - Para ejecutar la aplicación web $ python3.4 main.py web - Por último, abrimos el navegador en http://0.0.0.0:8180 - diff --git a/bin/librescan.sh b/bin/librescan.sh new file mode 100755 index 0000000..7732da8 --- /dev/null +++ b/bin/librescan.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# Kill all other running instances +kill `ps aux | grep main.py | grep -v 'grep' | awk '{print $2}' | xargs` + +# Se pasa al directorio de LibreScan +cd /usr/share/LibreScan/src/ + +#check if running the setup is necesary +if [ ! -d $HOME/.librescan/ ] +then + python3 setup.py +fi; + +# Run the application +python3 main.py web diff --git a/debian/.changelog.swp b/debian/.changelog.swp new file mode 100644 index 0000000..044a64c Binary files /dev/null and b/debian/.changelog.swp differ diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..615412a --- /dev/null +++ b/debian/changelog @@ -0,0 +1,11 @@ +librescan (1.1.0-0) stable; urgency=low + + * Bug fix + + -- Equipo LibreScan Fri, 09 Dec 2016 07:56:34 -0600 + +librescan (1.0.0-0) stable; urgency=low + + * Initial release + + -- Equipo LibreScan Fri, 09 Jul 2016 07:56:34 -0600 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +9 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..040106b --- /dev/null +++ b/debian/control @@ -0,0 +1,13 @@ +Source: librescan +Section: text +Priority: optional +Maintainer: Laboratorio Experimental ITCR +Build-Depends: debhelper (>=9) +Standards-Version: 3.9.6 +Homepage: http://labexperimental-siua.github.io/LibreScan/ + +Package: librescan +Architecture: all +Depends: python3-pip, lua5.2, liblua5.2-0, git-svn, libusb-dev, python3, python-dev, libturbojpeg1, libjpeg62, libjpeg62-turbo-dev, libssl-dev, libffi-dev, tesseract-ocr, tesseract-ocr-spa, scantailor, ruby, ruby-dev, ruby-rmagick, libyaml-dev, libturbojpeg1-dev, chdkptp +Description: Herramienta para digitalización de textos impresos + LibreScan es un proyecto de Software Libre desarrollado en el Laboratorio Experimental del Centro Académico de Alajuela, sede del Instituto Tecnológico de Costa Rica cuyo objetivo es promover el acceso libre al conocimento y la educación, al proveer un software libre y gratuito que permita realizar el proceso de captura de fotos, procesamiento y generación de un documento digital. Este paquete provee las herramientas para facilitar el trabajo con los escáneres desarrollados por el proyecto "DIY Book Scanner", quienes desarrollan y elaboran de escáneres artesanales de bajo costo. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..c5df20d --- /dev/null +++ b/debian/copyright @@ -0,0 +1,21 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Name: librescan +Source: http://labexperimental-siua.github.io/LibreScan/ +Mantainer: Laboratorio Experimental + +Files: * +Copyright: 2015-2017 Laboratorio experimental +License: GPLv3 + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see . + diff --git a/debian/debhelper-build-stamp b/debian/debhelper-build-stamp new file mode 100644 index 0000000..f694c68 --- /dev/null +++ b/debian/debhelper-build-stamp @@ -0,0 +1 @@ +librescan diff --git a/debian/files b/debian/files new file mode 100644 index 0000000..3591ed6 --- /dev/null +++ b/debian/files @@ -0,0 +1,2 @@ +librescan_1.1.0-0_all.deb text optional +librescan_1.1.0-0_amd64.buildinfo text optional diff --git a/debian/install b/debian/install new file mode 100644 index 0000000..9dc5cd8 --- /dev/null +++ b/debian/install @@ -0,0 +1 @@ +LibreScan /usr/share/ diff --git a/debian/postinst b/debian/postinst new file mode 100644 index 0000000..e2ed4b8 --- /dev/null +++ b/debian/postinst @@ -0,0 +1,18 @@ +#!/bin/sh + +# Install extra dependencies + +# Ruby +gem install iconv pdfbeads + +# Python3 +pip3 install pyYAML bottle pyjade jinja2 polib cffi pexpect +pip3 install jpegtran-cffi==0.5.2 + +# Create symlink to /usr/bin +ln -s /usr/share/LibreScan/bin/librescan.sh /usr/bin/librescan + +# Compiling locales +cd /usr/share/LibreScan/src/ +python3 compile_messages.py + diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..2f54c47 --- /dev/null +++ b/debian/rules @@ -0,0 +1,25 @@ +#!/usr/bin/make -f +# See debhelper(7) (uncomment to enable) +# output every command that modifies files on the build system. +#export DH_VERBOSE = 1 + + +# see FEATURE AREAS in dpkg-buildflags(1) +#export DEB_BUILD_MAINT_OPTIONS = hardening=+all + +# see ENVIRONMENT in dpkg-buildflags(1) +# package maintainers to append CFLAGS +#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic +# package maintainers to append LDFLAGS +#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed + + +%: + dh $@ + + +# dh_make generated override targets +# This is example for Cmake (See https://bugs.debian.org/641051 ) +#override_dh_auto_configure: +# dh_auto_configure -- # -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH) + diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..d3827e7 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +1.0 diff --git a/doc/DocumentoArquitectura.pdf b/doc/DocumentoArquitectura.pdf new file mode 100644 index 0000000..0e82c22 Binary files /dev/null and b/doc/DocumentoArquitectura.pdf differ diff --git "a/doc/Est\303\241ndares de LibreScan.pdf" "b/doc/Est\303\241ndares de LibreScan.pdf" new file mode 100644 index 0000000..50e8241 Binary files /dev/null and "b/doc/Est\303\241ndares de LibreScan.pdf" differ diff --git a/doc/Wireframes.pdf b/doc/Wireframes.pdf new file mode 100644 index 0000000..280391f Binary files /dev/null and b/doc/Wireframes.pdf differ diff --git a/Dependencies.sh b/misc/Dependencies.sh similarity index 100% rename from Dependencies.sh rename to misc/Dependencies.sh diff --git a/apt.sources b/misc/apt.sources similarity index 100% rename from apt.sources rename to misc/apt.sources diff --git a/src/compile_messages.py b/src/compile_messages.py new file mode 100644 index 0000000..1e9108d --- /dev/null +++ b/src/compile_messages.py @@ -0,0 +1,5 @@ +#!/usr/bin/python3 + +from web.i18n.PoParser import PoParser + +PoParser.compile_po_files() diff --git a/src/main.py b/src/main.py index 59533b7..39378e9 100644 --- a/src/main.py +++ b/src/main.py @@ -11,7 +11,6 @@ sys.exit(0) if sys.argv[1] == 'web': - PoParser.compile_po_files() app = LibreScanWeb() app.run_app() else: