El siguiente script genera presentaciones en distintos formatos a partir de los fucntes de MagicPoint
#!/bin/sh # (C) 2006 Joaquin herrero # Los ficheros mgp deben de estar codificados en UTF-8 para que mgp los pueda usar # Sin embargo las utilidades de conversión piden que los ficheros mgp estén en iso-8859-1 # # La utilidad mgp2ps no puede leer el fichero de la entrada estandard, sino que hay que # especificar el nombre del fichero en la linea de comandos, lo cual impide usar un # pipe entre el iconv y el mgp2ps. La solucion es crear un fichero intermedio en /tmp # # Para generar más de una página por hoja, hay que procesar el Postscript con "pstops" # # Generacion de paginas HTML a partir del MagicPoint: # htmldir debe de estar creado y debe ser usado un dir para cada presentacion # requiere instalar libjpeg-progs para generar los jpeg (cjpeg/djpeg) # requiere instalar netpbm para generar los thumbnails de los jpeg (pnmscale) # mgp -D htmldir -E png -g 1024x768 file.mgp _PREFIJO=JHP`date +%s` _TEMPDIR=/tmp for i in $* do echo "Processing $i" _THISTEMP=${_TEMPDIR}/${_PREFIJO}_${i} # Creamos un temporal en iso-8859-1 que sera el que procesemos para pasar a Postcript iconv -c -f utf-8 -t iso-8859-1 $i > $_THISTEMP mgp2ps -c -p a4 -e iso-8859-1 -f ${i}.ps $_THISTEMP # rm $_THISTEMP # A partir de aqui procesamos el Postcript para generar de él todos los demás formatos # Convertimos de Postscript a PDF ps2pdf ${i}.ps ${i}.pdf # Generamos una pagina por cada 2 paginas del original #pstops '2:0L@.7(21cm,0)+1L@.7(21cm,14.85cm)' ${i}.ps ${i}.ps2 # Generamos una pagina por cada 4 paginas del original # pstops '4:0@.5(0,14.5cm)+1@.5(10.5cm,14.5cm)+2@.5(0,0.5)+3@.5(10.5cm,0.5)' ${i}.ps ${i}.ps4 done
Comprueba si las referencias externas de un .mgp
#!/bin/bash # chkmgp (C) 2006 Joaquin Herrero # # Muestra errores en las referencias a archivos de imagenes en las presentaciones mgpZZZZ # echo echo "chkmgp 1.0 - Check mgp - (C) 2006 Joaquin Herrero" _TMPFILE=/tmp/usedimages _ERRORES=0 echo echo "Fase 1: Analisis por presentacion" echo "---------------------------------" for i in *mgp do echo echo $i _diapo=`grep -h "^%page" $i | wc -l | awk '{print $1}'` _imag=`grep -h "^%newimage" $i | wc -l | awk '{print $1}'` echo " $_diapo dispositivas" echo " $_imag imagenes" # # Dependencias # grep -h "^%include" $i | sed 's/^%[^"]*"//' | sed 's/".*$//' | sort | uniq > $_TMPFILE if [ -s $i ] then echo "`cat $_TMPFILE`" fi done echo echo "Fase 2: Totales" echo "---------------" echo "`ls *mgp | wc -l | awk '{print $1}'` ficheros fuente de presentaciones" echo "`grep -h '^%page.*' *mgp | wc -l | awk '{print $1}'` dispositivas en total" grep -h '^%newimage.*' *mgp | sed 's/^%[^"]*"//' | sed 's/".*$//' | sort | uniq > $_TMPFILE echo "`wc -l $_TMPFILE | awk '{print $1}'` imagenes distintas" # # Comprobacion de imagenes # echo echo "Fase 3: Checking for errors..." echo "------------------------------" for i in `cat $_TMPFILE` do if [ ! -s $i ] then echo echo "ERROR: \"$i\" no existe" grep -l $i *mgp fi done grep -h '^%include.*' *mgp | sed 's/^%[^"]*"//' | sed 's/".*$//' | sort | uniq > $_TMPFILE for i in `cat $_TMPFILE` do if [ ! -s $i ] then echo echo "ERROR: \"$i\" no existe" grep -l $i *mgp fi done echo echo "done."