Hi,
anbei ein kleines Script, das normale PDF Dateien so umwandelt, dass man sie als Din A5 Broschüren drucken kann.
Man braucht dazu:
pdftops aus xpdf,
pstops aus psutils,
ps2pdf aus ghostscript
Bedienung:
./scriptname dateiname.pdf simplex
-> erstellt aus dateiname.pdf eine Datei dateiname-front.pdf mit den Vorderseiten der Blätter und eine Datei dateiname-back.pdf mit den Rückseiten. Die PDFs können dann getrennt ausgedruckt werden und man kann für Drucker ohne Duplex per Hand zwischendurch umsortieren.
./scriptname dateiname.pdf duplex
-> erstellt aus dateiname.pdf eine Datei dateiname-duplex.pdf, die die PDF passend als A5 Broschüre beinhaltet.
QUELLTEXT
#!/bin/bash
#
# Copyright (c) 2009, Jan Bessai
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of Jan Bessai nor the
# names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY Jan Bessai ``AS IS'' AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL Jan Bessai BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
FILE=`basename $1 .pdf`
FILEPS="$FILE.ps"
if [[ -z "$1" || -z "$2" || ( "$2" != "duplex" && "$2" != "simplex" ) ]]
then
echo "usage: $0 filename mode" >&2
echo "where mode is duplex or simplex" >&2
exit -1
elif [[ ! -e $1 || ! -r $1 ]]
then
echo "error: cannot read $FILE" >&2
exit -1
elif [ $2 = "duplex" ]
then
FILEDUPLEXPS="$FILE-duplex.ps"
FILEDUPLEX="$FILE-duplex.pdf"
if [[ -e $FILEPS || -e $FILEDUPLEXPS || -e $FILEDUPLEX ]]
then
echo "error: Make sure $FILEPS $FILEDUPLEXPS and $FILEDUPLEX are not existing!" >&2
exit -1
else
pdftops -paper A4 $1 $FILEPS
pstops -pa4 "4:-3L@.7(21cm,0)+0L@.7(21cm,14.85cm),1L@.7(21cm,0)+-2L@.7(21cm,14.85cm)" $FILEPS $FILEDUPLEXPS
ps2pdf -sPAPERSIZE=a4 $FILEDUPLEXPS $FILEDUPLEX
rm -f $FILEPS
rm -f $FILEDUPLEXPS
fi
exit 0
elif [ $2 = "simplex" ]
then
FILEFRONTPS="$FILE-front.ps"
FILEFRONT="$FILE-front.pdf"
FILEBACKPS="$FILE-back.ps"
FILEBACK="$FILE-back.pdf"
if [[ -e $FILEPS || -e $FILEFRONTPS || -e $FILEBACKPS || -e $FILEFRONT || -e $FILEBACK ]]
then
echo "error: Make sure $FILEPS $FILEFRONTPS $FILEBACKPS $FILEFRONT and $FILEBACK are not existing!" >&2
exit -1
else
pdftops -paper A4 $1 $FILEPS
pstops -pa4 "4:-3L@.7(21cm,0)+0L@.7(21cm,14.85cm)" $FILEPS $FILEFRONTPS
pstops -pa4 "4:1L@.7(21cm,0)+-2L@.7(21cm,14.85cm)" $FILEPS $FILEBACKPS
ps2pdf -sPAPERSIZE=a4 $FILEFRONTPS $FILEFRONT
ps2pdf -sPAPERSIZE=a4 $FILEBACKPS $FILEBACK
rm -f $FILEPS
rm -f $FILEFRONTPS
rm -f $FILEBACKPS
fi
exit 0
fi
Viel Erfolg und Spaß damit

Gruß,
Fenix