#!/bin/bash # Copyright (C) 2012 LAFKON/Christoph Haag. # ---------------------------------------------------------------------- # # This is free software, and you may redistribute it under the GPL. # This Software comes with absolutely no warranty. # For details see the license: http://www.forkable.eu/utils/licenses/gpl # ---------------------------------------------------------------------- # # http://www.forkable.eu/generators/swaperex/do.sh # ______________________________________________________________________ # TMPDIR=tmp; rm $TMPDIR/* if [ F$1 = "FA2" ]; then OUTPUTDIR=o/A2 FORMAT=A2 else OUTPUTDIR=o/A3 FORMAT=A3 fi LAYERID=layerid COMBIDIR=$TMPDIR/combinations ; SVGDIR=. # --------------------------------------------------------------------- # source i/free/bash/separateLayers.function # ----------------------------------------------------------------- # SVGLIST=$TMPDIR/`date +%s`.list ls $SVGDIR | grep svg > $SVGLIST separateLayers # ================================================================= # for IDENTIFIER in `ls ${SVGDIR}/ | \ grep svg | cut -d "-" -f 1` do echo $IDENTIFIER SOURCELIST=$TMPDIR/source.list; rm $SOURCELIST ####################################### # WRITE LIST WITH POSSIBLE SOURCES # ####################################### ls $TMPDIR/*.layer | \ grep ${IDENTIFIER}- > $SOURCELIST ####################################### if [ `cat $SOURCELIST | wc -l` -le 0 ];then exit 0; fi TICK=0 rm $COMBIDIR/*.list K=1 while [ $K -le 250 ]; do LAYERLIST=$COMBIDIR/`date +%s%N`${TICK}${K}.list; ##################################################################### # WRITE LIST WITH LAYERS,SORT,UNIQ (LAYERID) # ##################################################################### for LAYER in `grep -h $LAYERID \`cat $SOURCELIST\` | \ grep -v XX | sed 's/>//g' | cut -d "\"" -f 1-2 | \ sort | uniq` do SELECTLAYERFILE=`grep -H $LAYER \`cat $SOURCELIST \` | \ cut -d : -f 1 | shuf -n 1` echo $SELECTLAYERFILE >> $LAYERLIST done SVG=`ls $SVGDIR | grep $IDENTIFIER | head -1` HEADENDLINENUMBER=`cat -n $SVGDIR/$SVG | \ grep $HEADEND | \ cut -f 1 | \ head -1` if [ `fdupes $COMBIDIR | wc -l` -lt 1 ]; then ##################################################################### # WRITE ALL LAYERS TO A NEW SVG FILE # ##################################################################### BASENAME=`echo \`basename $SVG\` | cut -d "." -f 1 | cut -d "-" -f 1` MDNAME=${BASENAME}-${FORMAT}_`echo \`basename $SVG \` | \ md5sum | cut -c 1-3` NEWNAME=${MDNAME}`echo ${RANDOM} | \ md5sum | rev | \ cut -c 4-6``echo ${RANDOM} | cut -c 1-2` NEWSVG=$TMPDIR/${NEWNAME}.svg NEWPDF=$TMPDIR/${NEWNAME}_tmp.pdf head -n $HEADENDLINENUMBER $SVGDIR/$SVG > $NEWSVG for LAYERFILE in `cat $LAYERLIST | sort` do FILE=${LAYERFILE##*/} NAME=${FILE%%.*} ID=`grep $LAYERID $LAYERFILE | cut -d "\"" -f 2 | head -1` if [ `find $TMPDIR -name "${NAME}.svg" | \ wc -l` -lt 1 ]; then cat $LAYERFILE >> $NEWSVG fi done echo "" >> $NEWSVG sed -i 's/style="display:none"//g' $NEWSVG inkscape --export-pdf=$NEWPDF \ --export-text-to-path $NEWSVG K=`expr $K + 1` else echo "COMBINATION EXISTS" rm $LAYERLIST TICK=`expr $TICK + 1` if [ $TICK -gt 100 ]; then K=`expr $K + 100` fi fi TMPTEX=${RANDOM}.tex echo "\documentclass[9pt]{scrbook} " > $TMPTEX echo "\usepackage{pdfpages} " >> $TMPTEX echo "\usepackage{geometry} " >> $TMPTEX if [ $FORMAT = "A2" ]; then echo "\geometry{paperwidth=297mm, " >> $TMPTEX echo " paperheight=420mm} " >> $TMPTEX else echo "\geometry{paperwidth=420mm, " >> $TMPTEX echo " paperheight=594mm} " >> $TMPTEX fi echo "\begin{document} " >> $TMPTEX echo " " >> $TMPTEX echo "\includepdfmerge " >> $TMPTEX echo "[ " >> $TMPTEX echo "nup=1x1,pages=1, " >> $TMPTEX echo "scale=1.02, " >> $TMPTEX echo "offset=0 25 " >> $TMPTEX echo "] " >> $TMPTEX echo "{ " >> $TMPTEX echo $NEWPDF >> $TMPTEX echo "} " >> $TMPTEX echo "\end{document} " >> $TMPTEX # ======================================================= # # ------------------------------------------------------- # # RENDER LaTeX FILE # ------------------------------------------------------- # pdflatex -output-directory $TMPDIR $TMPTEX pdftk i/non-free/pdf/liwoli2012-supporters.pdf \ background $TMPDIR/${TMPTEX%%.*}.pdf \ output $OUTPUTDIR/${NEWNAME}.pdf rm $TMPTEX done done exit 0;