Konvertieren Sie PDF 2 Seiten pro Seite in 1 Seite pro Seite

11

Wie kann ich ein PDF mit 2 Seiten pro Seite in 1 Seite pro Seite konvertieren?

user13910
quelle
Das ist absolut verrückt! Gibt es keine Möglichkeit, die Seiteneinstellungen in einer PDF-Datei einseitig statt zweiseitig zu ändern?
Nathan Fellman
@ Nathan Fellman: Verrückt, ja. Aber verrückte Dinge machen dir manchmal den größten Spaß ;-)
Kurt Pfeifle
Mögliches Duplikat von Wie kann ich die Seiten eines PDF in der Mitte aufteilen?
Skippy le Grand Gourou
@ SkippyleGrandGourou Ich sehe nicht, wie diese Frage zusammenhängt. Versuchen die Fragen nicht, zwei verschiedene Dinge mit Seiten zu tun?
Ben N
@BenN: In beiden Fragen wird gefragt, wie "zwei neue Seiten aus einer vorhandenen einzelnen Seite erstellt werden", um die andere zu zitieren. Die am häufigsten gewählte Antwort ist fast eine Copypasta.
Skippy le Grand Gourou

Antworten:

23

OK, das Problem wurde bereits mit Hilfe von Acrobat (Vollversion, nicht Reader) gelöst. Aber was tun, wenn Sie keinen Zugriff auf Acrobat haben? Könnte dies auch mit Ghostscript und pdftk gemacht werden?

Wie man das mit Hilfe von Ghostscript löst ...

... und zum Spaß verwenden wir keine Eingabedatei mit "Double-Up" -Seiten, sondern eine mit "Treble-Up". Eigentlich habe ich heute ein solches PDF per E-Mail erhalten. Es war ein Flyer, gefaltet in Leporellos Schema . Die Blattgröße war A4-Landschaft (842pt x 595pt), und sie wurde wie folgt gefaltet und angelegt:

Front side to be printed, page 1 of PDF
+--------+--------+--------+   ^
|        |        |        |   |
|   5    |   6    |   1    |   |
|        |        |        | 595 pt
|        |        |        |   |
|        |        |        |   |
|        |        |        |   |
+--------+--------+--------+   v
         ^        ^
        fold     fold
         v        v
+--------+--------+--------+   ^
|        |        |        |   |
|   2    |   3    |   4    |   |
|        |        |        | 595 pt
|        |        |        |   |
|        |        |        |   |
|        |        |        |   |
+--------+--------+--------+   v
Back side to be printed, page 2 of PDF
<---------- 842 pt -------->

Ich möchte 1 PDF mit 6 Seiten erstellen, von denen jede die ungewöhnliche Größe von 280,67pt x 595 pt hat.

Erster Schritt

Extrahieren wir zuerst die linken Abschnitte von jeder der Eingabeseiten:

gswin32c.exe ^
    -o left-sections.pdf ^
    -sDEVICE=pdfwrite ^
    -g2807x5950 ^
    -c "<</PageOffset [0 0]>> setpagedevice" ^
    -f myflyer.pdf

Was haben diese Parameter bewirkt?

  • -o ...............:Benennt die Ausgabedatei. Implizit auch verwendet -dBATCH -dNOPAUSE -dSAFER.
  • -sDEVICE=pdfwrite : Wir wollen PDF als Ausgabeformat.
  • -g................:Legt die Größe des Ausgabemediums in Pixel fest. Die Standardauflösung von pdfwrite beträgt 720 dpi. Multiplizieren Sie daher mit 10, um eine Übereinstimmung für PageOffset zu erhalten.
  • -c "..............:fordert Ghostscript auf, das angegebene PostScript-Code-Snippet unmittelbar vor der Haupteingabedatei zu verarbeiten (die folgen muss -f).
  • <</PageOffset ....:Legt die Verschiebung des Seitenbilds auf dem Medium fest. (Für linke Seiten hat die Verschiebung natürlich [0 0]keine wirklichen Auswirkungen.)
  • -f ...............: Verarbeiten Sie diese Eingabedatei.

Welches Ergebnis hat der letzte Befehl erzielt?

Dieses:

Output file: left-sections.pdf, page 1
+--------+  ^
|        |  |
|   5    |  |
|        |595 pt
|        |  |
|        |  |
|        |  |
+--------+  v

Output file: left-sections.pdf, page 2
+--------+  ^
|        |  |
|   2    |  |
|        |595 pt
|        |  |
|        |  |
|        |  |
+--------+  v
< 280 pt >

Zweiter Schritt

Lassen Sie uns nun das Analoge für die Mittelteile machen:

gswin32c.exe ^
    -o center-sections.pdf ^
    -sDEVICE=pdfwrite ^
    -g2807x5950 ^
    -c "<</PageOffset [280.67 0]>> setpagedevice" ^
    -f myflyer.pdf

Ergebnis:

Output file: center-sections.pdf, page 1
+--------+  ^
|        |  |
|   6    |  |
|        |595 pt
|        |  |
|        |  |
|        |  |
+--------+  v

Output file: center-sections.pdf, page 2
+--------+  ^
|        |  |
|   3    |  |
|        |595 pt
|        |  |
|        |  |
|        |  |
+--------+  v
< 280 pt >

Dritter Schritt

Zuletzt die richtigen Abschnitte:

gswin32c.exe ^
    -o right-sections.pdf ^
    -sDEVICE=pdfwrite ^
    -g2807x5950 ^
    -c "<</PageOffset [561.34 0]>> setpagedevice" ^
    -f myflyer.pdf

Ergebnis:

Output file: right-sections.pdf, page 1
+--------+  ^
|        |  |
|   1    |  |
|        |595 pt
|        |  |
|        |  |
|        |  |
+--------+  v

Output file: right-sections.pdf, page 2
+--------+  ^
|        |  |
|   4    |  |
|        |595 pt
|        |  |
|        |  |
|        |  |
+--------+  v
< 280 pt >

Letzter Schritt

Jetzt kombinieren wir die Seiten in einer Datei:

pdftk.exe ^
  A=right-sections.pdf ^
  B=center-sections.pdf ^
  C=left-sections.pdf ^
  cat A1 B2 C2 A2 B1 C1 ^
  output single-files-input.pdf
  verbose

Erledigt. Hier ist das gewünschte Ergebnis. 6 verschiedene Seiten im Format 280,67 x 595.

Ergebnis:

+--------+  +--------+  +--------+  +--------+  +--------+  +--------+   ^
|        |  |        |  |        |  |        |  |        |  |        |   |
|   1    |  |   2    |  |   3    |  |   4    |  |   5    |  |   6    |   |
|        |  |        |  |        |  |        |  |        |  |        | 595 pt
|        |  |        |  |        |  |        |  |        |  |        |   |
|        |  |        |  |        |  |        |  |        |  |        |   |
|        |  |        |  |        |  |        |  |        |  |        |   |
+--------+  +--------+  +--------+  +--------+  +--------+  +--------+   v
< 280 pt >  < 280 pt >  < 280 pt >  < 280 pt >  < 280 pt >  < 280 pt > 
Kurt Pfeifle
quelle
1
Heiliger Mist, tolle Kunst hier!
Ivo Flipse
Das hat bei mir gut funktioniert, aber ich musste das PageOffset auf eine negative Zahl setzen, um die anderen Abschnitte zu erhalten.
Jonchang
Sie können Python für größere PDFs verwenden: f = open("order.dat","w") for i in [a+1 for a in xrange(63)]: f.write("A{0} B{0} ".format(i)) f.close()Dadurch wird eine Datei order.dat mit "A1 B1 A2 B2 ... A63 B63" erstellt. Sie können es dann kopieren und einfügen in pdftk.
Suuuehgi
3

@peims, danke. Hier ist die Schritt-für-Schritt-Version Ihrer Methode. Ich habe es mit einer Datei versucht, die ich für meinen Kindle DX konvertieren wollte, und es funktioniert perfekt:

  • Verwenden Sie die Vollversion von Acrobat v9, um die linke Seite der Seite zuzuschneiden und als "left.pdf" zu speichern:
    • Verwenden Sie das Zuschneidewerkzeug, um die linke Seite der Seite zu markieren.
    • Klicken Sie mit der rechten Maustaste und wählen Sie "Cropbox einstellen".
    • Wählen Sie "Dokument ... Seiten zuschneiden" und wenden Sie den Zuschnitt auf das gesamte Dokument an.
  • Wiederholen Sie dies mit den rechten Seiten und speichern Sie sie als "right.pdf".
  • Zu diesem Zeitpunkt haben Sie zwei Dokumente: "left.pdf" mit den linken Seiten und "right.pdf" mit den rechten Seiten.

Verwenden Sie als Nächstes pdftk.exe (von http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/ ), um die Ergebnisse in eine einzelne Datei zu verschachteln. Kopieren Sie "pdftk.exe", "left.pdf" und "right.pdf" nach "D: \" und führen Sie Folgendes aus:

  • D:> pdftk D: \ left.pdf Burst-Ausgabe% 05d_A.pdf
  • D:> pdftk D: \ right.pdf Burst-Ausgabe% 05d_B.pdf
  • D:> pdftk * _?. Pdf cat output kombiniert.pdf

Hinweis: Wenn Sie die Dateien nach "C: \" kopieren, funktioniert dies unter Win 7 aufgrund von Sicherheitsberechtigungen nicht. Wenn Sie kein D: \ haben, erstellen Sie ein Verzeichnis "C: \ x", um den Vorgang abzuschließen.

Diese Ergebnisse wären normalerweise gut genug. Es gibt jedoch zwei weitere optionale Schritte, um die Ausgabe zu verbessern.

  • (optionaler letzter Schritt 1) ​​In diesem Stadium ist das Dokument sehr groß (mein Dokument ist von 7 MB auf 80 MB gestiegen), sodass Sie die Dateigröße reduzieren können, indem Sie Folgendes verwenden:
    • "Advanced..PDF Optimizer" oder:
    • "Advanced..Preflight" mit der Einstellung "Kompatibel mit Acrobat 5".
  • (optionaler letzter Schritt 2) Die Seiten haben alle unterschiedliche Größen. Wiederholen Sie den Zuschnitt auf allen Seiten, damit alles eine einheitliche Größe hat.
Contango
quelle
3

Hatte gerade das gleiche Problem. Ich bin auf briss gestoßen, ein Open-Source-Java-GUI-Tool zum Trennen und Zuschneiden von PDF-Seiten:

http://sourceforge.net/projects/briss/

Unter Linux hat es sehr gut funktioniert, obwohl die Benutzeroberfläche nicht ganz trivial ist. Es funktionierte sogar mit einem PDF mit einigen unterschiedlich großen Seiten!

Matthias
quelle
2

Sie können das Dokument duplizieren und dann die Seiten zuschneiden, sodass in einer Datei nur die geraden Seitenzahlen und in der anderen nur die ungeraden Seitenzahlen angezeigt werden. Teilen Sie dann die Dateien in einzelne Seiten auf und kombinieren Sie sie neu, um ein Dokument mit einzelnen Seiten zu einer Seite zu erstellen ...

Sie können dies mit einer Reihe von Methoden tun, zum Beispiel:

  1. Verwenden Sie das Adobe Acrobat- Zuschneidewerkzeug, um eine Seite der Doppelseite auszuschneiden und das Zuschneiden auf alle Seiten anzuwenden.
  2. Teilen Sie die Dateien mit dem Befehl 'Burst' in pdftoolkit auf einzelne Seiten auf
  3. Benennen Sie die Dateien nacheinander mit einem Tool zum Umbenennen von Dateien um (z. B. ReNamer ).
  4. Kombinieren Sie die Seiten mit dem Befehl 'cat' in pdftoolkit neu
Pelme
quelle
2

Ich verwende das folgende Skript, um gescannte Bücher unter Mac und Linux zu verarbeiten. Dies kann sehr speicherintensiv werden.

#!/bin/bash
#
# This script processes scanned books. After scanning the books have been cropped with
# Preview. This does kind of a "soft crop" that we need to make a bit "harder". 
#
# The second step is to take each page of the PDF and split this into two two pages, 
# because each page of the scanned document actually contains two pages of the book.
#
#

FILE=`mktemp`.pdf
FILE2=`mktemp`.pdf
FILE3=`mktemp`.pdf

echo "Making a temporary copy of the input file."

cp $1 $FILE

#
# Start cropping
#

echo "Cropping the PDF"

# The first regex removes all boxes but CropBox. The second regex renames the  CropBox as MediaBox

perl -pi.bak -e 's/\/(Media|Bleed|Art|Trim)Box[\n\l\f\s]*\[(.+?)\]//msg;' $FILE
perl -pi.bak -e 's/CropBox/MediaBox/g;' $FILE

echo "Validating the PDF"

#Run PDFTK to ensure that the file is OK

cat $FILE | pdftk - output $FILE2

#
# Done cropping, start splitting the pages
#

echo "Splitting the pages in two and changing to 200 dpi with imagemagick. Output goes to $FILE3"

convert -density 200  $FILE2 -crop 50%x0 +repage $FILE3

#
# Done spliting, copy the result in a new file
#


mv $FILE3 $1.pages.pdf
mronkko
quelle
1

Vielen Dank für eine gute Referenz. Ich war in einer ähnlichen Ausgabe, wollte aber mitteilen, was für mich funktioniert hat.

Ich hatte ein landschaftsorientiertes Tabloid-PDF mit hochformatigem Text nur auf der linken Seite. Im Wesentlichen fehlt in der 2-fach-Boulevardzeitung jeglicher Inhalt auf der rechten Seite. Ähnlicher Ausgangspunkt, aber Tabloid ist 792 × 1224 (Hochformat), 1124 x 792 (Querformat) und die Punktdefinition für das 1/2 Tabloid, das ich benötigte, war 612 x 792 Punkte.

"C:\Program Files\gs\gs9.10\bin\gswin64c.exe" -o left2.pdf -sDEVICE=pdfwrite -g6120x7920 -c "<</PageOffset [0 0]>> setpagedevice" -f "RFP.pdf"

Ich habe den Inhalt, den ich brauchte, in ein 8,5 x 11-Porträt gebracht, das viel besser lesbar ist.

Charlie
quelle
0

Ich verstehe, dass eine PDF-Datei mit zwei Seiten (nebeneinander auf einem Blatt) in eine Seite pro Blatt konvertiert werden muss, was zu zwei Blättern einer PDF-Datei führt. Mit anderen Worten, wenn insgesamt 15 Seiten auf 15 Blättern vorhanden sind, müssen wir die PDF-Datei in eine PDF-Datei mit 30 Blättern konvertieren, die jeweils eine Seite enthält. Wenn dies das Problem ist, habe ich Adobe Acrobat XI PRO "Seiten-Tool extrahieren" verwendet, indem ich Seitenzahlen von 1 bis 30 angegeben habe

RN SONI
quelle