Wie konvertiere ich eine 1-seitige PDF-Datei in eine 2-seitige PDF-Datei pro Blatt?

44

Ich möchte ein PDF ausdrucken, sodass auf der Vorderseite der ersten Seite die ersten beiden Seiten, auf der Rückseite die dritte und vierte und so weiter sind.

-----------------          -----------------
|       |       |          |       |       |
|       |       |          |       |       |
|   1   |   2   |          |   3   |   4   |    . . .
|       |       |          |       |       |
|_______|_______|          |_______|_______|

 page 1 - front             page 1 - back

Da mein Drucker unter Linux den manuellen Duplexdruck nicht unterstützt, dachte ich, könnte ich das PDF möglicherweise auf eine entsprechende Weise bearbeiten.

Aber wie?

Mokassin
quelle
Ich denke nicht, dass dies möglich ist, haben Sie nur das PDF?
Michael K
Dies ist unter Linux mit pstops aus dem Paket psutils und / oder pdftk möglich. Welches Betriebssystem verwenden Sie?
Rems
@Ivo Flipse: har, ich dachte genau das gleiche :) also bekommt dein Kommentar auch eine +1.
Akira
@ Ivo Flipse, @rems: Sie können hier mehr ASCII - Art upvote: superuser.com/questions/54054/... und superuser.com/questions/235074/... ... @mokasin: diese Links können Sie eine Idee geben , wie zu lösen die Aufgabe, nach der Sie gefragt haben.
Kurt Pfeifle

Antworten:

23

Zusätzlich zu den genannten Funktionen enthält PDFjam ein Befehlszeilentool, pdfnupdas dies ausführt . (Es wird das pdfpages-Paket für PDFLaTeX verwendet, das Sie auch verwenden können.)

Wenn Sie eine GUI bevorzugen, ist jPDFtweak eine weitere Option.

schäbig
quelle
Perfekt. Genau das, wonach ich gesucht habe.
Mokasin
1
Verwendungsbeispiel: pdfnup --nup 2x1 mypdf.pdf. Auf diese Weise werden 2 Seiten nebeneinander pro Blatt in einer Querformatansicht gedruckt, um über die kurze Kante gewendet zu werden. Sehen Sie man pdfnupfür ein paar weitere Details.
Gabriel Staples
Ich habe beschlossen, auch eine Antwort hinzuzufügen: Wie konvertiere ich eine 1-pg-PDF-Datei in eine Querformat-Ansicht mit zwei Kopien derselben Seite (ideal zum Drucken von Flyern): superuser.com/a/1452008/425838
Gabriel Staples
24

Benutze pdfnup:

$ pdfnup file.pdf

Dadurch wird eine neue PDF-Datei erstellt, die genau Ihren Wünschen entspricht.

Joaquin
quelle
pdfnup zeigt die mit pdfjam verwendeten Befehlszeilenoptionen an, sodass Sie von dort aus Änderungen vornehmen können. (Beispiel: Wenn Sie keine Landschaft möchten, können Sie die Option --landscape entfernen, wenn Sie pdfjam aufrufen.)
Trevor Boyd Smith
6
Genauer gesagt pdfnup --nup 2x1 --suffix test file.pdfwird eine file-test.pdfmit 2 Seiten in 1.
Lolesque
1
sudo apt install texlive-extra-utilsum diese Utils auf Ubuntu zu installieren.
Sarke
Ich habe eine einzelne Seite a4, die ich in zwei Kopien von a5 pro Blatt drucken möchte. Wie mache ich das? Die obigen Verwendungsbeispiele für "pdfnup" duplizieren nicht die erste Seite, sondern lassen den zweiten a5-Teil des ersten a4-Blatts leer.
Nordlöw
2

Dies ist eine Frage, die alt genug ist, um zu glauben, dass die Optionen, die wir jetzt haben, zu der Zeit nicht vorhanden waren, aber vielleicht verdient sie eine aktuelle Lösung.

Linux-PDF-Viewer verwenden normalerweise die Druckoptionen / -eigenschaften , um das Seitenlayout festzulegen. Dort können Sie mehrere Seiten pro Blatt / Seite drucken. Die Idee ist, diese zu verwenden , um als PDF-Datei zu drucken .

Evince kann das, auch qpdfview . Mehr hier.


qpdfview

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben


Evince

Bildbeschreibung hier eingeben


PDF Studio Viewer

Bildbeschreibung hier eingeben

Andere PDF-Viewer müssen über ähnliche Optionen verfügen.


quelle
1

Es gibt Freeware- und Open-Source-Befehlszeilentools, mit denen Sie PDFs in Reader's Spreads, Booklet Spreads usw. konvertieren können.

Ich habe die App, die ich verwendet habe, verloren, daher gibt es keine Hilfe, aber nach einer schnellen Suche sehe ich ein Programm namens pdfshuffler ( http://sourceforge.net/projects/pdfshuffler/ ), das möglicherweise das ist, was Sie benötigen. Hat eine GUI, ist also wahrscheinlich nicht automagisch, aber es ist ein Frontend für ein anderes Tool ...

Horatio
quelle
0

Wenn Sie die Funktion zum Drucken in eine Datei haben. Drucken Sie mit zwei Seiten pro Seiteneinstellung und mit ungeraden Seiten in die Datei. Wiederholen Sie den Vorgang mit geraden Seiten. Drucken Sie nun die ungeraden, kehren Sie die gedruckten Papiere um und drucken Sie die Datei mit den geraden Seiten.

Amirali Sanatinia
quelle
0

@mokasin: Sie haben nicht angegeben, welchen PDF-Reader Sie verwenden. Wenn Sie die Linux-Version von Acrobat / Adobe Reader verwenden: Es besteht die Möglichkeit, direkt im Druckdialog "2-fach" zu drucken. Sie können auch festlegen, dass nur ungerade oder gerade Seiten gedruckt werden. Wenn Sie dies kombinieren, können Sie die gewünschte Ausgabe erzielen.

Kurt Pfeifle
quelle
0

Diese Software, die ich unter dem Betriebssystem Solaris 11.2 getestet habe, kann das als 2-up bezeichnete Schema erstellen, das normalerweise für die Ausgabe in Klassenzimmern oder Besprechungen verwendet wird. Es ist möglich, andere Schemata zu erstellen. Zum Beispiel: Handzettel mit 3 oder 4 oder mehr Seiten auf einem Blatt oder beiden Seiten eines Blattes. Es kann von einem Terminal aus ausgeführt werden, da es sich um eine JAR-Datei handelt, oder es kann einfach die GUI ausgeführt werden, um den Zugriff zu vereinfachen. Neben Solaris sind auch andere Linux-Distributionen kompatibel, auf denen die Software als "ausführbare Datei" mit Superuser-Rechten ausgeführt wird. Achten Sie darauf, dass Sie nicht "Archiv öffnen" verwenden. Es funktioniert auch auf allen Windows- und Mac-Computern, auf denen bereits eine Java Runtime Environment (JRE) installiert ist, wie dies in den meisten Fällen der Fall ist. Die Software ist Dysprosium Imposition und kann kostenlos heruntergeladen und verwendet werden.

Irgendjemand
quelle
0

Für alle , die 1 oder 2 pg pdf nehmen und es in ein pdf mit 2 Kopien dieser Seite an Seite im Querformat ( ideal für den Druck Flyer ), tun:

  1. Verwandeln Sie die PDF-Eingabe mit 1 oder 2 Seiten in eine Ausgabe, die eine Kopie dieser Seiten enthält (1-Seiten-PDF -> 2-Seiten-PDF, 2-Seiten-PDF -> 4-Seiten-PDF usw.):

    pdfunite in.pdf in.pdf out.pdf
    
  2. Kombinieren Sie diese duplizierte PDF-Kopie zu einer 2-Seiten-PDF-Ansicht pro Seite im Querformat, um beispielsweise Flyer zu drucken:

    pdfnup out.pdf
    

Oder alles in einer einzigen Zeile:

pdfunite in.pdf in.pdf out.pdf && pdfnup out.pdf

Beachten Sie, dass dies out.pdfdie Eingabe für ist pdfnup. Die daraus resultierende Ausgabedatei pdfnupwird „aufgerufen wird out-nup.pdf “.

Beobachten Sie auch die Ausgabe des pdfnupBefehls, und Sie werden die ausführliche Form des Befehls sehen, den er tatsächlich ausführt, was Ihnen einen Einblick in die Optionen gibt, die Sie ihm übergeben können. Anscheinend pdfnupverwendet pdfjamunter der Haube:

pdfjam: Effektiver Aufruf für diesen Lauf von pdfjam:

/usr/bin/pdfjam --suffix nup --nup '2x1' --landscape -- out.pdf -

Beispiel:

Original PDF (1 reguläre Seite im Hochformat ), " in.pdf ": Bildbeschreibung hier eingeben

Endgültiges PDF (2 Seiten nebeneinander in der Querformatansicht ), " out-nup.pdf ":
- Kann jetzt in der Mitte halbiert werden, um als Flyer ausgegeben zu werden Bildbeschreibung hier eingeben

Einfache Bash-Funktion: make_flyer

Kopieren Sie diese Bash-Funktion und fügen Sie sie am Ende Ihrer "~ / .bashrc" -Datei ein, um auf einen einfachen und benutzerfreundlichen Befehl zuzugreifen make flyer:

# Description: outputs a landscape-oriented flyer pdf ("my/pdf/input--flyer.pdf") for each 1 or more pg input pdf ("my/pdf/input.pdf")
#   - 1-pg input PDFs are converted to a 1-sided landscape, printable flyer that you cut down the center to make 
#     2 flyers
#   - 2-pg input PDFs are converted to a 2-sided landscape, printable flyer (flip on short edge when printing 
#     double-sided), and also cut down the middle to make 2 flyers
#   - **3+ pg input PDFs**: using `pdfnup` directly in this case would make more sense, since this function will
#     otherwise unneccessarily create 2 copies
#   - 3 and 4-pg input PDFs are converted to a single piece of paper, double-sided, flipped on short edge, x 2 copies. 
#     No cutting is necessary
#   - 5+ pg input PDFs simply require half as much paper to print is all since you get 2 pages per side of paper;
#     they do NOT print like booklets, but rather just as a landscape-printed, flipped-on-short-edge bundle of pages
#     (like a deck of slides). You get *2 copies* per print though, so just print half the pages. 
make_flyer() {
    num_args=$# # see: https://stackoverflow.com/questions/4423306/how-do-i-find-the-number-of-arguments-passed-to-a-bash-script/4423321#4423321
    suffix="flyer"

    loop_cnt=0
    for inputpdf in "$@"
    do
        ((loop_cnt++))
        echo "==== CONVERTING PDF $loop_cnt OF $num_args ===="
        echo "     INPUT:  \"$inputpdf\""

        # Strip off the .pdf extension from the input path, while retaining the rest of the path
        # - See: https://stackoverflow.com/questions/12152626/how-can-i-remove-the-extension-of-a-filename-in-a-shell-script/32584935#32584935
        input_path_base="$(echo "$inputpdf" | rev | cut -f 2- -d '.' | rev)"
        input_file_base="$(basename "$inputpdf" .pdf)"
        temp_pdf="${input_path_base}-.pdf" # is "input_path_base-.pdf"

        echo "     OUTPUT: \"$(pwd)/${input_file_base}--${suffix}.pdf\""

        # Convert a single 1-pg pdf into a temporary 2-pg pdf
        pdfunite "$inputpdf" "$inputpdf" "$temp_pdf"

        # Lay out the temporary 2-pg pdf into a side-by-side 1-sided flyer to print; creates "input_path_base--flyer.pdf"
        # Note that `pdfnup` places the output from this operation in the location from where you call this script
        # (ie: in your `pwd` [Present Working Directory])!--NOT the location where temp_pdf is located!
        pdfnup "$temp_pdf" --suffix $suffix

        # Delete the temporary 2-pg pdf, called "input_path_base-.pdf", thereby leaving only the original 
        # "input_path_base.pdf" and the new "input_path_base--flyer.pdf"
        rm "$temp_pdf"
    done
}
alias make_flyer_help='echo -e "Ex usage: make_flyer \"path/to/inputpdf.pdf\" - Creates a landscape-side-by-side flyer version called \"inputpdf--flyer.pdf\"\n          *in your pwd* from a 1 or 2 pg input pdf called \"path/to/inputpdf.pdf\". Accepts multiple arguments. Ex:\n          make_flyer \"path/to/inputpdf1.pdf\" \"path/to/inputpdf2.pdf\""'

Anwendungsbeispiel:

make_flyer "path/to/inputpdf1.pdf" "path/to/inputpdf2.pdf"

Siehe Hilfeinformationen:

make_flyer_help

Ausgabe:

$ make_flyer_help   
Ex usage: make_flyer "path/to/inputpdf.pdf" - Creates a landscape-side-by-side flyer version called "inputpdf--flyer.pdf"  
          *in your pwd* from a 1 or 2 pg input pdf called "path/to/inputpdf.pdf". Accepts multiple arguments. Ex:  
          make_flyer "path/to/inputpdf1.pdf" "path/to/inputpdf2.pdf"

Verweise:

  1. https://superuser.com/a/948095/425838
  2. https://stackoverflow.com/a/11280219/4561887

Verbunden:

  1. https://askubuntu.com/questions/214538/printing-in-booklet-format/1095789#1095789

Bash Referenzen:

  1. Bash So übergeben Sie Argumente an eine Bash-Funktion: https://bash.cyberciti.biz/guide/Pass_arguments_into_a_function
  2. Bash-Verkettungszeichenfolgen: https://linuxize.com/post/bash-concatenate-strings/
  3. Bash führe einen als String gespeicherten Befehl aus! https://stackoverflow.com/questions/2005192/how-to-execute-a-bash-command-stored-as-a-string-with-quotes-and-asterisk
  4. Bash iterieren Sie über alle Eingaben zu einem Cmd: https://stackoverflow.com/questions/255898/how-to-iterate-over-arguments-in-a-bash-script/255913#255913
  5. Bash-Übergabe von Parametern an Funktion: https://stackoverflow.com/questions/6212219/passing-parameters-to-a-bash-function/6212408#6212408
  6. So konvertieren Sie ein 1- Seiten-PDF in einen Flyer: So konvertieren Sie ein 1-Seiten-PDF in ein 2-Seiten-PDF pro Blatt?
Gabriel Staples
quelle