seqeps2pdf est un script bash (linux) qui s'appuie sur epstopdf et pdftk pour assembler une séquence d'images, au format EPS, en un fichier PDF. Les fichiers de la séquence sont supposés être nommé selon la syntaxe prefixe*[0-9].eps, de prefixe0.eps à prefixeN.eps.
L'animation ci-dessus est contruite à partir de wavepacket.asy, une des animations de la distribution d'asymptote. La dernière ligne à été modifiée, l'argument keep=true est passé à A.movie de façon à conserver les fichiers EPS générés.
$> asy wavepacket.asy
Puis:
$> seqeps2pdf wavepacket
On dispose alors de wavepacket.pdf. Sur quelques compilations j'ai observé que la taille du fichier PDF obtenu par cette méthode était moins importante que celle obtenue en passant l'option -f pdf à asy.
Il reste à construire l'animation SWF...
$> pdf2swf wavepacket.pdf -o temp.swf
$> swfcombine -dz -r 10 temp.swf -o wavepacket.swf; rm temp.swf
Vous trouverez d'autres animations construites selon la méthode précédente à la page animations de la rubrique asymptote.
#!/bin/bash # ---------------------------------------------------------------------- # seqeps2pdf # Transformation d'une séquence d'images au format EPS en un fichier PDF. # ---------------------------------------------------------------------- # Jean-Michel Sarlat, Janvier 2008 # http://melusine.eu.org/syracuse # ---------------------------------------------------------------------- ### Utilisation de epstopdf et pdftk. if ! which epstopdf >/dev/null ; then echo "epstopdf est absent !" exit 1 fi if ! which pdftk > /dev/null ; then echo "pdftk est absent !" exit 1 fi ### Préfixe du fichier, s'il y a une extension elle est supprimée. prefixe=${1%.*} if ! [ -n "$prefixe" ]; then echo "Le préfixe des fichiers à traiter est manquant !" exit 2 fi ### Décompte des figures. NB=$(ls $prefixe*[0-9].eps | wc -l) if [ $NB -lt 1 ]; then echo "Il n'existe pas de figures eps correspondant au préfixe donné !" exit 3 fi ### Transformation des figures et liste ordonnée des figures... FIGS= I=0 while [ $I -lt $NB ]; do epstopdf $prefixe$I.eps FIGS="$FIGS $prefixe$I.pdf" let I=I+1 done ### Assemblage par pdftk. pdftk $FIGS cat output $prefixe.pdf ### Nettoyage. rm -f $prefixe*[0-9].pdf