Skript, um Seiten eines Dokuments zu drucken

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von lePasteur, 07.03.2012.

  1. #1 lePasteur, 07.03.2012
    Zuletzt bearbeitet: 07.03.2012
    lePasteur

    lePasteur Jungspund

    Dabei seit:
    11.03.2010
    Beiträge:
    10
    Zustimmungen:
    0
    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?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 tgruene, 07.03.2012
    tgruene

    tgruene Routinier

    Dabei seit:
    02.02.2012
    Beiträge:
    418
    Zustimmungen:
    0
    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...
     
  4. #3 marcellus, 07.03.2012
    marcellus

    marcellus Kaiser

    Dabei seit:
    09.05.2007
    Beiträge:
    1.392
    Zustimmungen:
    0
    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.
     
  5. #4 lePasteur, 08.03.2012
    lePasteur

    lePasteur Jungspund

    Dabei seit:
    11.03.2010
    Beiträge:
    10
    Zustimmungen:
    0
    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..
     
  6. #5 marcellus, 09.03.2012
    marcellus

    marcellus Kaiser

    Dabei seit:
    09.05.2007
    Beiträge:
    1.392
    Zustimmungen:
    0
    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.
     
  7. #6 tgruene, 09.03.2012
    tgruene

    tgruene Routinier

    Dabei seit:
    02.02.2012
    Beiträge:
    418
    Zustimmungen:
    0
    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
    
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema: Skript, um Seiten eines Dokuments zu drucken
Besucher kamen mit folgenden Suchen
  1. bash druck seiten reihenfolge sortieren

Die Seite wird geladen...

Skript, um Seiten eines Dokuments zu drucken - Ähnliche Themen

  1. Shell Skript beschleunigen

    Shell Skript beschleunigen: Hallo zusammen, ich bin neu hier und hab gerade angefangen mich an Schell Skripte zu wagen. Nun hab eine Frage ich hab ein Skript geschrieben und...
  2. Kontextmenü mit einem Skript verbinden

    Kontextmenü mit einem Skript verbinden: Abend, wenn ich z. B. eine simple Umwandlung eines Bildformates in ein anderes über das KDE-Kontextmenü (Servicemenü nennt es sich im KDE oder...
  3. [Erledigt] Shell-Skript lässt sich nicht mit Cron ausführen

    [Erledigt] Shell-Skript lässt sich nicht mit Cron ausführen: Hallo, ich hoffe ihr könnt mir helfen. Ich entwerfe im Moment ein Skript, welches den Callmonitor (Telnet) auf meiner FritzBox abfragt und wenn...
  4. Kunden-Skript ausgelöst durch Linux-Cluster Pacemaker

    Kunden-Skript ausgelöst durch Linux-Cluster Pacemaker: Hallo! Ich komme aus der AIX-Welt wo es im HACMP-Cluster die Möglichkeit der Ausführung eines Start- bzw. Stop-Skriptes im Zuge einer...
  5. Shell-Skript Datum in einer Datai suchen

    Shell-Skript Datum in einer Datai suchen: Hallo zusammen Ich komm eigentlich aus der Klicki-Bunti-Welt von Windows. Seit geraumer Zeit versuche ich meine Künste mit verschiedenen...