Hola a Todos. alguien tiene configurado un sambafax que funcione? alguien conoce otro metodo para enviar faxes a numeros destino embebidos en el propio documento? Gracias -- Un Saludo. Carlos Lorenzo Matés
On Thursday 01 December 2005 23:56, Carlos Lorenzo Matés wrote:
Hola a Todos.
alguien tiene configurado un sambafax que funcione?
alguien conoce otro metodo para enviar faxes a numeros destino embebidos en el propio documento?
Gracias Yo hice algo hace una vez.
El metodo que utilizé fue: 1) definir una impresora de samba, tipo postscript. 2) escribir una routina que mande el fax. La routina, convertaba el postscript en ascii (Hay commandos paraeso) y buscaba el numero de fax en el ascii. Con eso mandava fax por hylafax, y mandaba el log del fax pro coreo al usuario que printeo... No era deficil hacer. Pero no tengo las routinas mas. Jerry
Hola Jerry. El Viernes, 2 de Diciembre de 2005 12:01, Jerry Westrick escribió:
On Thursday 01 December 2005 23:56, Carlos Lorenzo Matés wrote:
Hola a Todos.
alguien tiene configurado un sambafax que funcione?
alguien conoce otro metodo para enviar faxes a numeros destino embebidos en el propio documento?
Gracias
Yo hice algo hace una vez.
El metodo que utilizé fue:
1) definir una impresora de samba, tipo postscript. 2) escribir una routina que mande el fax.
La routina, convertaba el postscript en ascii (Hay commandos paraeso) y buscaba el numero de fax en el ascii.
Con eso mandava fax por hylafax, y mandaba el log del fax pro coreo al usuario que printeo...
Gracias, ya lo logre, tenia el problema que el ps generado no empezaba por !% y el sendfax no lo reconocia como postscript, finalmente modifique el script para que lo convirtiera en pdf y asi ya me funciona. ahora el problema es que el script que convierte el ps a ascii para buscar el numero, solo permite un fax por documento, y necesito poder imprimir en un solo documento varios faxes, en la herramienta que usabamos actualmente se marcaba el principio y el fin de cad fax con unos tags y el programa lo partia correctamente. Quiero poder hacer algo parecido, y se me ha ocurrido el usar en conjunto las siguientes herramientas: ps2pdf para convertir el ps a pdf pdftk para partir el pdf en n ficheros (uno por pagina) ps2ascii para escanear cada pagina por separado marcamos el principio de cada Fax con [[BeginHylaFax=NumeroDestino]] y el Fin con [[EndHylaFax]] como solo podemos partir por paginas completas lo que marcamos es la pagina inicial y la final, da lo mismo en que lugar de la pagina se encuentre el tag. y necesito hacer un script que para un fichero ps haga lo siguiente: 1. convierta el ps a pdf 2. lo parta en un fichero por pagina 3. haga un bucle por el total de paginas y para cada pagina leida aplique la siguiente logica: Primera Pagina = 0 Ultima PAgina = 0 Numero Destino = 0 Hoja Actual = 0 Recorre Hojas Mientras Hoja Actual < Total Hojas { Si Primera Pagina = 0 Busco la cadena [[BeginHylaFax= NumeroDestino]] Si encontrada Primera Pagina = Hoja Actual Numero Destino = NumeroDestino // por si el fax es de una sola hoja busco la cadena de fin Busco la Cadena [[EndHylaFax]] si encontrada sendfax Primera Pagina Numero Destino Primera Pagina = 0 Numero Destino = 0 pasa a la Siguiente Hoja Si no Encontrada pasa a Siguiente Hoja Si Primera Pagina <> 0 Busco la cadena [[EndHylaFax]] si encontrada Ultima Pagina = Hoja Actual genero un pdf uniendo todas las hojas desde Primera Pagina a Ultima Pagina con pdftk sendfax nuevopdf Numero Destino Primera Pagina = 0 Ultima Pagina = 0 Numero Destino = 0 pasa a la siguiente hoja Si no encontrada pasa a la Siguiente Hoja } como veis la logica no es dificil, pero no controlo mucho de bash, lo que nunca hice fue contar los ficheros de un directorio (donde generariamos las hojas), e iterar por todas ellas por el resto creo que no tendria problemas si alguien me hecha una mano para hacer esto :-D se lo agradeceria Muchas Gracias
No era deficil hacer. Pero no tengo las routinas mas.
Jerry
-- Un Saludo. Carlos Lorenzo Matés
On Friday 02 December 2005 23:11, Carlos Lorenzo Matés wrote:
Gracias, ya lo logre, tenia el problema que el ps generado no empezaba por !% y el sendfax no lo reconocia como postscript, finalmente modifique el script para que lo convirtiera en pdf y asi ya me funciona.
ahora el problema es que el script que convierte el ps a ascii para buscar el numero, solo permite un fax por documento, y necesito poder imprimir en un solo documento varios faxes, en la herramienta que usabamos actualmente se marcaba el principio y el fin de cad fax con unos tags y el programa lo partia correctamente. Quiero poder hacer algo parecido, y se me ha ocurrido el usar en conjunto las siguientes herramientas:
ps2pdf para convertir el ps a pdf pdftk para partir el pdf en n ficheros (uno por pagina) ps2ascii para escanear cada pagina por separado
marcamos el principio de cada Fax con [[BeginHylaFax=NumeroDestino]] y el Fin con [[EndHylaFax]]
como solo podemos partir por paginas completas lo que marcamos es la pagina inicial y la final, da lo mismo en que lugar de la pagina se encuentre el tag.
y necesito hacer un script que para un fichero ps haga lo siguiente:
1. convierta el ps a pdf 2. lo parta en un fichero por pagina 3. haga un bucle por el total de paginas y para cada pagina leida aplique la siguiente logica: Primera Pagina = 0 Ultima PAgina = 0 Numero Destino = 0 Hoja Actual = 0 Recorre Hojas Mientras Hoja Actual < Total Hojas { Si Primera Pagina = 0 Busco la cadena [[BeginHylaFax= NumeroDestino]] Si encontrada Primera Pagina = Hoja Actual Numero Destino = NumeroDestino // por si el fax es de una sola hoja busco la cadena de fin Busco la Cadena [[EndHylaFax]] si encontrada sendfax Primera Pagina Numero Destino Primera Pagina = 0 Numero Destino = 0 pasa a la Siguiente Hoja Si no Encontrada pasa a Siguiente Hoja
Si Primera Pagina <> 0 Busco la cadena [[EndHylaFax]] si encontrada Ultima Pagina = Hoja Actual genero un pdf uniendo todas las hojas desde Primera Pagina a Ultima Pagina con pdftk sendfax nuevopdf Numero Destino Primera Pagina = 0 Ultima Pagina = 0 Numero Destino = 0 pasa a la siguiente hoja Si no encontrada pasa a la Siguiente Hoja }
como veis la logica no es dificil, pero no controlo mucho de bash, lo que nunca hice fue contar los ficheros de un directorio (donde generariamos las hojas), e iterar por todas ellas
por el resto creo que no tendria problemas
si alguien me hecha una mano para hacer esto :-D se lo agradeceria
Muchas Gracias
No era deficil hacer. Pero no tengo las routinas mas.
Jerry
Comentarios: 1) man Sendfax: sendfax [options] [files...] "sendfax submits one or more facsimile transmission requests to a HylaFAX facsimile server. " Parece que no es necesario juntar las paginas, saber si hylafax las manda en una o varias llamadas... 2) Yo lo haria en perl ó python, y no en bash. Pero talves es por que las conosco, y bash no. Ademas utilizo komodo (www.activestate.com) que es una heramienta de programacíon moderna (con breakpoint, variable inspection, syntax coloring, etc). Sin heramientas no es juego! (activestate oferece una version gratis pero solo para programar opensource. Este script será opensource ó no?) 3) No tendras problemas al utlisar un directorio como contenedor de tus archivos? Que pasará si te mandan otro fax antes de que termines con la primera? 4) Si fuese mi projecto, yo utilizaria algo haci: la llamada: myfaxsend nombre.ps y la logica: # # Reparte Paginas # crea directorio /unlugarunico/nombre convierta nombre.ps en /unlugarunico/nombre/nombre.pdf haga paginas nombre_1.pdf á nombre_x.pdf haga paginas nombre_1.txt á nombre_x.txt # # Investigation de los faxes # faxes={}; NoFax = 0; foreach NoPagina (1..x) { if /[[BeginHylaFax= (d+)]]/ # Aqui comiensa un fax. { NoTel = $1; # el numero ! NoFax = NoFax+1; faxes{NoFax} = {}; faxes{NoFax}{Numero} = NoTel; faxes{NoFax}{PrimeraPagina} = NoPagina; }; if /[[EndHylaFax]]/ # aqui termina un fax. { faxes{NoFax}{UltimaPagina} = NoPagina; }; }; # # Verificacion # foreach faxno (faxes.keys()) { # saber que habra que hacer. fax = faxes{faxno}; fax{ok}=true; if (!exists(fax{PrimeraPagina}) { fax{ok}=false; fax{error}='No hay Primera Pagina' } if (!exists(fax{UltimaPagina}) { fax{UltimaPagina}=faxes{faxno+1}{PrimeraPagina} - 1; } if (fax{Numero}[0] == '+' || fax{Numero}[0]) { fax{ok}=false; fax{error}='Numero de distancia Larga' } ...etc... }; # # Mandelos # foreach faxno (faxes.keys()) { fax = faxes{faxno}; if (fax{ok}) { paginas = ''; for (paginano=fax{PrimeraPagina};paginano<=fax{UltimaPagina};paginano++) { paginas = paginas . " /unlugarunico/nombre/nombre_$paginano.pdf"; } $cmd = "sendfax -d $fax{Numero} "; $cmd = $cmd . "$paginas > /unlugarunico/nombre/fax_$faxno.log"; system($cmd); } else { print "$faxno fax (en pagina $fax{PrimeraPagina}) tuvo error $fax{error}"; } } Desculpeme que te mande un ejemplo tan largo... Pero queria mostrar que con heramientas apropiadas... y lenguajes (mas) modernas se puede utilizar logicas mas poderosas! Con algo haci, es facil de añadir mas optiones, functiones, e verificationes! Como ejemplo, mas que un numero ala ves, ó nombres de clientes que traduces a numeros, etc... Hojala te ayudo... Jerry
Hola Jerry. El Viernes, 2 de Diciembre de 2005 23:39, Jerry Westrick escribió:
ahora el problema es que el script que convierte el ps a ascii para buscar el numero, solo permite un fax por documento, y necesito poder imprimir en un solo documento varios faxes, en la herramienta que
y necesito hacer un script que para un fichero ps haga lo siguiente:
si alguien me hecha una mano para hacer esto :-D se lo agradeceria
1) man Sendfax: sendfax [options] [files...] "sendfax submits one or more facsimile transmission requests to a HylaFAX facsimile server. "
Parece que no es necesario juntar las paginas, saber si hylafax las manda en una o varias llamadas...
sendfax puede enviar un documento a multiples destinatarios, pero le manda el mismo documento a todos.
2) Yo lo haria en perl ó python, y no en bash. Pero talves es por que las conosco, y bash no. Ademas utilizo komodo (www.activestate.com) que es una heramienta de programacíon moderna (con breakpoint, variable inspection, syntax coloring, etc). Sin heramientas no es juego! (activestate oferece una version gratis pero solo para programar opensource. Este script será opensource ó no?)
Al final me puse con bash, y ya lo tengo, no fue muy dificil, me llevo una hora (mas o menos). voy a esperar a la semana que viene a probarlo en le trabajo y refinarlo, y lo enviare a la lista del hylafax por si a alguien le interesa. la idea es hacer un backend de cups como el sambafax pero con la nueva funcionalidad. y por supuesto, si sera open source
3) No tendras problemas al utlisar un directorio como contenedor de tus archivos? Que pasará si te mandan otro fax antes de que termines con la primera?
use el mismo truco que usan en el sambafax, nombrar el directorio y los archivos con el id de proceso (PID) del propio script, asi si se llama varias veces simultaneamente, no hay problema de interferencias.
4) Si fuese mi projecto, yo utilizaria algo haci:
la llamada: myfaxsend nombre.ps y la logica:
# # Reparte Paginas # crea directorio /unlugarunico/nombre convierta nombre.ps en /unlugarunico/nombre/nombre.pdf haga paginas nombre_1.pdf á nombre_x.pdf haga paginas nombre_1.txt á nombre_x.txt
segui mas o menos la misma logica, no he podido probar todavia el envio ya que lo hice en casa, y para probar necesito estar en el trabajo, pero no me quedo muy largo, la semana que viene os pondre aqui el codigo.
Hojala te ayudo...
Si me ayudo, muchas gracias de nuevo. -- Un Saludo. Carlos Lorenzo Matés
participants (2)
-
Carlos Lorenzo Matés
-
Jerry Westrick