PDF-Manipulation: Seitenlayout "2-fach"

1636
SLaks

Ich habe eine PDF-Datei (erstellt von PowerPoint) mit 8,5 × 5,5-Zoll-Porträtseiten.

Ich muss es in 8,5 × 11-Zoll-Querformat-Seiten konvertieren, wobei jede Querformat-Seite zwei Kopien der ursprünglichen (kleineren) Hochformat-Seite nebeneinander enthält.

In ASCII-Art:

Original | Gewünscht |  | --- | | | --- | | --- | | 1 | | | 1 | | 1 | | 1 | | | 1 | | 1 | | --- | | | --- | | --- | | | --- | | | --- | | --- | | 2 | | | 2 | | 2 | | 2 | | | 2 | | 2 | | --- | | | --- | | --- |  

Gibt es eine freie Möglichkeit, dies zu tun, oder muss ich es in C # tun?

6

3 Antworten auf die Frage

4
Kurt Pfeifle

OK, Sie haben es gelöst, indem Sie auf die Quelldatei Ihrer PDFs, die Powerpoint-Datei, zugreifen konnten. Was können Sie tun, wenn Sie dasselbe erreichen möchten, ohne auf die Quellen zugreifen zu müssen?

Lass mich das mal versuchen. Ich werde verwenden ...

  1. Ghostscript zum Platzieren und Verschieben der PDF-Eingabeseiten auf das neue Medienformat;
  2. pdftk, um zwei verschiedene PDF-Seiten auf eine zu legen.

Erster Schritt: Ghostscript zum Platzieren von Bildern auf größeren Medien

Folgendes möchten wir mit Hilfe von Ghostscript in diesem Schritt erreichen:

+-----------+-----------------------+ | Original | Ghostscript-output | +===========+=======================+ | +---+ | +---+---+ (right | | | p | | | p | | half | | | 1 | | | 1 | | of sheet | | +---+ | +---+---+ empty) | | | | | +---+ | +---+---+ (left | | | p | | | | p | half | | | 2 | | | | 2 | of sheet | | +---+ | +---+---+ empty) | +-----------+-----------------------+ 

Dies ist der erste Befehl, der verwendet wird:

gswin32c.exe ^ -o left-side-outputs.pdf ^ -sDEVICE=pdfwrite ^ -g7920x6120 ^ -dPDFSETTINGS=/prepress ^ -c "<</PageOffset [0 0]>>setpagedevice" ^ -f powerpoint.pdf 

Ich habe alle Seitenbilder um ... nichts verschoben, aber auf ein größeres Blatt gelegt. Ich bin zu faul, um alle Optionen einzugeben und zu erläutern, die nur für die Auswahl der ungeraden Seitenzahlen erforderlich sind. Deshalb mache ich dies jetzt einfach für alle Seiten. - Also haben wir das vorerst erreicht:

+-----------------------+ | Ghostscript-output | +=======================+ | +---+---+ (right | | | p | | half | | | 1 | | of sheet | | +---+---+ empty) | | | | +---+---+ (right | | | p | | half | | | 2 | | of sheet | | +---+---+ empty) | | | | +---+---+ (right | | | p | | half | | | 3 | | of sheet | | +---+---+ empty) | | ......... | +-----------------------+ (left-side-outputs.pdf) 

Jetzt alle Bilder nach rechts setzen:

gswin32c.exe ^ -o right-side-outputs.pdf ^ -sDEVICE=pdfwrite ^ -g7920x6120 ^ -dPDFSETTINGS=/prepress ^ -c "<</PageOffset [396 0]>>setpagedevice" ^ -f powerpoint.pdf 

Das haben wir mit dem zweiten Befehl erreicht:

+-----------------------+ | Ghostscript-output | +=======================+ | +---+---+ (left | | | | p | half | | | | 1 | of sheet | | +---+---+ empty) | | | | +---+---+ (left | | | | p | half | | | | 2 | of sheet | | +---+---+ empty) | | | | +---+---+ (left | | | | p | half | | | | 3 | of sheet | | +---+---+ empty) | | ......... | +-----------------------+ (right-side-outputs.pdf) 

Zweiter Schritt: Verwenden Sie pdftk.exe, um Seitenpaare zu überlagern.

Falls Sie es noch nicht installiert haben, laden Sie es hier herunter . Es ist keine echte Installation erforderlich. Es ist eine .exe-Datei, die von jedem Ort aus ausgeführt wird. Wir möchten das Ergebnis so aussehen lassen:

+---------------------+-------------+ | pdftk input | pdftk output| +=====================+=============+ | +---+---+ (right | +---+---+ | | | p | | half | | p | p | | | | 1 | | of sheet | | 1 | 2 | | | +---+---+ empty) | +---+---+ | | | | | +---+---+ (left | | | | | p | half | | | | | 2 | of sheet | | | +---+---+ empty) | | +---------------------+-------------+ 

Wir werden diese Befehle verwenden:

pdftk.exe ^ A=left-side-outputs.pdf ^ B=right-side-outputs.pdf ^ cat A1 B2 ^ output 2up-powerpoint-page-1.pdf ^ verbose  pdftk.exe ^ A=left-side-outputs.pdf ^ B=right-side-outputs.pdf ^ cat A3 B4 ^ output 2up-powerpoint-page-2.pdf ^ verbose 

OK, bisher haben wir nur die ersten beiden Doppelseiten erstellt ... Ich möchte jedoch jetzt diese beiden Doppelseiten in einer einzigen Datei verketten:

pdftk.exe ^ A=2up-powerpoint-page-1.pdf ^ B=2up-powerpoint-page-2.pdf ^ cat A B ^ output 2up-powerpoint-all.pdf 

Du solltest jetzt genug Inspiration haben, um die verbleibenden Seiten zu verarbeiten. Wenn du sehr ehrgeizig bist, schreibst du das sogar mit einer einzigen Befehlszeile und zwei verschachtelten for /l ...Schleifen. ;-)

2
Maciek Sawicki

Mit "pdfcreator" (virtueller Open-Source-Druckertreiber) "drucken".

// edit: Eine weitere Option verwendet pdftk ( http://www.accesspdf.com/pdftk/ ), aber ich habe es nicht selbst getestet.

Ich sehe nicht, wie man Seiten in PDF Creator dupliziert (Siehe meine ASCII-Grafiken). SLaks vor 14 Jahren 0
Jetzt habe ich es getestet. Im PDF-Druckdialog wählte ich mehrere Seiten pro Blatt. Leider gruppiert es Seiten, anstatt sie auf derselben Seite zu kopieren :(. Es tut mir leid für die nicht getestete Antwort. Maciek Sawicki vor 14 Jahren 0
Wenn ich mit Sortierung spiele, könnte es funktionieren. Wo haben Sie mehrere Seiten pro Blatt angegeben? SLaks vor 14 Jahren 0
Im Druckdialogfeld im Acrobat Reader wird die Sortieroption leider für den Druck mehrerer Seiten pro Blatt als fehlerhaft angezeigt. Ich habe auch die doppelte Größe in den Druckereigenschaften festgelegt (Druckdialogfeld der Schaltfläche "Eigenschaften" in Acrobat Reader). Wie wäre es mit Folien in PowerPoint? Maciek Sawicki vor 14 Jahren 0
Die Folien verwenden mehrere Masterseiten mit unterschiedlichen Formatierungen. Ich habe versucht, ein Makro zu schreiben, um sie zu kopieren, konnte aber die Formatierung nicht korrekt verarbeiten. SLaks vor 14 Jahren 1
1
SLaks

Ich habe dieses Problem gelöst, indem ich eine zweite PowerPoint-Präsentation mit zwei Kopien jeder Folie erstellt, als PDF gespeichert und das PDF mit zwei Seiten pro Blatt gedruckt habe.