Skript, um Seiten eines Dokuments zu drucken

L

lePasteur

Jungspund
Hallo Community,
ich habe folgendes Problem:
ich habe eine pdf-Datei, welche viele Seiten enthält und möchte diese im Buchformat drucken.
Das Dokument besteht aus A5-Seiten, welche ich auf DIN A4 Papier drucken will, jeweils 4 Seiten pro Blatt (Duplex-Druck).
Wenn ich das ganze Dokument im Buch-Format drucke und in der Mitte knicken würde, wäre das ziemlich unhandlich, deshalb möchte ich immer nur alle 4 Seiten im Buchdruck drucken.
Da lpr keinen Buchdruck kennt, hab ich mich informiert und die pdf-Datei erst in ein ps-Dokument umgewandelt.

Deshalb habe ich mir überlegt, ein Skript zu schreiben, was jeweils immer die nächsten 4 Seiten im Buchformat druckt.
Klappt bisher auch, nur dass der Rand um die gedruckten Seiten zu groß ist.

Mein Druckkommando sieht bisher so aus (um die Schleife kümmere ich mich dann später):
Code:
pdftops MeinDokument.pdf - | psselect -p1-4 | psbook | lpr -P <Druckername> -o number-up=2 -o sides=two-sided-short-edge -o page-left=0 -o page-right=0 -o page-top=0 -o page-bottom=0

Aber anscheinend werden die Ränder dennoch gesetzt. Habe auch die Option -o fit-to-page verwendet, aber keine Änderung.

Weiß jemand Rat?
 
Zuletzt bearbeitet:
Direkten Rat nicht, evtl. eine Loesung: Du koenntest die PDF-Datei mit 'pdftk' erst neu formatieren: Seiten um 90 Grad drehen und so sortieren, dass Du danach das Dokument mit '-onumber-up=2' im Buchdruckformat ausdrucken kannst. Muesste eigentlich gehen mit ein bisschen probieren...
 
Du kannst das ganze auch in evince aufmachen und dort bei den druckeinstellungen auf 4 seiten pro seite einstellen.
shot.jpg

Für einen echt billigen umweg kannst du das pdf auch mit imagemagick in png dateinen zerlegen, damit kannst du dann etwas einfacher bilder zusammensetzen.
 
Also der Rat mit pdftk klingt ganz gut, die Schwierigkeit wird hierbei nur sein, zu wissen, welche 4 Seiten immer in welcher Reihenfolge kommen, aber das krieg ich bestimmt hin...

Ich würde gerne auf Programme mit GUI-verzichten, da das ca 200 Seiten sind, und alle 4 Seiten dann n Druckbefehl mit Hand anzugeben, is mir zu aufwendig..
 
So wie das hier eingestellt ist wird dir in folge:

Seiten
[ 1 2 ]
[ 3 4 ]
[ 5 6 ]
...

gedruckt, die Anzeige mit [1 2] ist nur, dass du weißt in welcher Reihenfolge es gedruckt wird. Wenn du mehrere pdfs hast "pdftk 1.pdf 2.pdf ... cat output merged.pdf" und dann kannst du das mit der gui machen.

Du kannst das ganze testen, indem du mit 2 Seiten pro seite auf den pdf printer druckst und dir dann das output pdf ansiehst.
 
Code:
#!/bin/bash

# l1: Linke Seite in der mitte des Buches
# = Seitenanzahl/2 aufgerundet
l1=100
r1=$((l1+1))
l2=$((l1+2))
r2=$((l1-1))

IN="Buch.pdf"
OUT="Buch_fuer_Druck.pdf"

echo "pdftk A=$IN \\"
echo "  cat \\"

while ((l1>=2)); do
        echo "A${l1} A${r1} A${l2} A${r2} \\"
        l1=$((l1-2))
        r1=$((r1+2))
        l2=$((r1+1))
        r2=$((l1-1))
done

echo "  output $OUT"
Das erzeugt Dir ein Script fuer pdftk, das die Seiten neu sortiert. Wenn Du dann 'Buch_fuer_Druck.pdf' mit '-onumber-up=2 -o sides=two-sided-short-edge' druckst, sollten die Seiten so liegen, dass Du sie als Buch binden kannst.
Falls das Buch eine ungerade Anzahl an Zeiten enthaelt (also 199), hat l1 am Anfang trotzdem den Wert 100. Dann ist der letzte vorletzte Wert A200, was es nicht gibt. Dann fuegst Du stattdessen dort eine leere Seite ein:
Code:
pdftk A=Buch.pdf B=leereSeite.pdf cat A200 ..... A2 A199 B1 A1 output Buch_fuer_Druck.pdf
 

Ähnliche Themen

Medienformat mit lpr setzen

HP PSC 2175 - CUPS druckt nicht

[Apple LaserWriter Select] Druckertreiber >>> Papierquelle wählen

roaming profile werden nicht mehr geladen

Zurück
Oben