cancel
Showing results for 
Search instead for 
Did you mean: 

Script shell en Alfresco

sele_
Champ in-the-making
Champ in-the-making
Hola,

soy nuevo utilizando Alfresco y nunca he utilizado una regla para los documentos entrantes. Lo que quiero hacer es que todos los PDFs que sean subidos a una carpeta concreta de Alfresco sean escaneados con el programa de reconocimiento de caracteres de Linux Tesseract y me genere un fichero de texto plano con todo lo que ponia en el PDF. Para realizar esto he tendio que hacer un guion shell que utiliza tres programas diferentes (convert, unpaper y tesseract) para convertir de PDF a texto plano, lo que sucede es que todos los script que ejecuta Alfresco son Java Script y los ejecuta sobre la maquina virtual de java y no se como hacer para que me ejecute un script .sh sobre Linux y me devuelva el fichero de texto plano que genera dicho script a la carpeta del proyecto de Alfresco donde ha sido subido el PDF. Si alguno lo sabeis por favor, decidmelo.

Tambien he leido por ahi que se puede hacer eso mismo si necesidad de ejecutar ningun script, simplemente modificando propiedades de Alfresco, aunque no se ni que quiere decir eso pero si alguno lo habeis conseguido de esa forma tmb me gustaria saberlo.

Bueno, espero la respuesta. gracias
4 REPLIES 4

venzia
Star Collaborator
Star Collaborator
Mira Sele_.. a groso modo, una solucion que se me ocurre al vuelo puede ser :
-Te creas una nueva accion en Alfresco, que ejecute un metodo implementado en la clase java que maneja la acción.
-Este método será el encargado de ejecutar los scripts de shell que comentas pasandole como parametro la ruta CIFS de la carpeta donde se encuentra el documento y el nombre del mismo (con esos parametros el script shell debrá conectarse a esta ruta para obtener el fichero y sabrá donde almacenar el documento txt posteriormente).
Para todo esto de la nueva acción te será de gran ayuda el wiki http://wiki.alfresco.com/wiki/Custom_Actions y http://wiki.alfresco.com/wiki/Custom_Action_UI.
Para ejecutar un script shell desde java puedes hacer algo así :

String path;
Runtime.getRuntime().exec("/bin/sh " + path + "/.homer.sh");

Espero que te sirva.
Saludos,

sele_
Champ in-the-making
Champ in-the-making
gracias innovasoft,
intentare hacerlo aunque parece un poco complicado porque yo no se nada de hacer Script de Java ni de eso de las acciones.

He encontrado otra forma de hacerlo en el foro en ingles que habla de modificar un fichero XML de Alfresco, es este: "Have a look at this. http://code.google.com/p/tesseract-ocr/. I believe this integration has already been done. It can be configured in Alfresco through XML configuration with little or no Java code if you follow these steps http://www.howtoforge.com/ocr_with_tess … _ubuntu704 using Alfresco's http://wiki.alfresco.com/wiki/Content_T … ransformer." Pero no se por donde tirar. Empezare por lo tuyo porque esta mas orientado a lo que yo quiero hacer. Ya te contare como ha salido la cosa.

sele_
Champ in-the-making
Champ in-the-making
innovasoft,

lo siento por darte la tabarra otra vez pero es que no consigo entender como hacer una accion personaliza (custom action) en Alfresco. ¿No se podria crear un script en Java Script que ejecute el guion shell en Linux y devuelva el fichero de texto resultante a Alfresco? Es que no se como hacer un Java Script pero tampoco se hacer lo de la accion personalizada, a lo mejor peco de querer hacer demasiado siendo muy novato pero si me lo pudieras explicar lo de la accion personalizada de forma un poco mas clara o me pasaras la url de alguna buena explicacion (en español a ser posible) te lo agradeceria mucho. Lo mismo digo para cualquier otro que lea etse post.

Muchas gracias

dacedos
Champ in-the-making
Champ in-the-making
Hola,

Pues si me permites entrometerme… los dos documentos que te ha enlazado innovasoft son muy buenos

Resumiendote… tienes que:

   - Crear una clase java que implemente la logica
   - Declarar un bean dentro del fichero WEB-INF/faces-config-custom.xml (puedes ver algunos bean de ejemplo en el faces-config-beans.xml)
   - Crear un action dentro del web-client-config-custom.xml (que igual, puedes ver algunos que te valgan para orientarte en el web-client-config-actions.xml)
   - Meter el action dentro de alguno de los actions group, para ello puedes copiar el grupo entero desde el web-client-config-actions.xml al web-client-config-custom.xml y añadir tu action ahi.

Suerte!