#!/bin/sh # PsToBroch shell script. Par Félix Hauri oct 2000. # Ce script utilise la commande 'pstops' du package 'psutils'. # # Modif pour recto/verso: gilbert robert - 3 nov 2000 # # Découper un A4 en un fichier (recto/verso) # avec un comptage inversé des pages pour création de brochures A5. # Syntaxe: # $0 file.ps # --> Création de 'file_4.ps' # dans le répertoire courrant: # $ cd /tmp;pstobroch.sh ~/fichier.ps # va créer /tmp/fichier_4.ps pages=$( pstops '1:0' "$1" 2>&1 >/dev/null|\ awk '/Wrote/ { n=0 while ($n != "Wrote") {n++} n++ print $n }' ) if [ $pages -lt 4 ] ; then echo "Fonction inutile avec moins de 4 pages" exit 0 fi ofile=${1##*/} orep=${1%/*} [ "$orep" = "$1" ] && orep="." ofile=${ofile%.*} # Le rapport A5/A4, c'est 1/sqrt(2). gauche="L@.7071(21.02cm,0cm)" droite="L@.7071(21.02cm,14.84cm)" gaucheR="R@.7071(0cm,29.6cm)" droiteR="R@.7071(0cm,14.84cm)" fpages=$(($pages/4)) [ $(($fpages*4)) -lt $pages ] && fpages=$(($fpages+1)) echo "$orep/$ofile ($pages) -> ${ofile}_4.ps: $fpages pages" string="$(($fpages*4)):" lpos=$(($fpages*4-1)) maxr=$(($lpos/2+1)) rpos=0 lposr=1 rposr=$(($fpages*4-2)) while [ $rpos -lt $maxr ] ;do string="$string$lpos$gauche+$rpos$droite," lpos=$(($lpos-2)) rpos=$(($rpos+2)) string="$string$lposr$gaucheR+$rposr$droiteR," lposr=$(($lposr+2)) rposr=$(($rposr-2)) done string="${string%,}" pstops "$string" $1 >${ofile}_4.ps