2009-02-11 3 views
24

Ich bin auf der Suche nach einem kostenlosen Tool, mit dem Sie Seiten eines PDF-Dokuments neu anordnen und mehrere Seiten pro Blatt kombinieren können. Der erste Teil (Neuanordnen) wird einfach durch viele Tools gelöst (ich benutze PyPDF).Wie kann ich zwei PDF-Seiten kombinieren, die auf derselben Seite angezeigt werden?

Das Problem ist mit der zweiten Voraussetzung: zwei (oder mehr) Seiten in einzelne Seite zu kombinieren. Nehmen wir zum Beispiel zwei Seiten (A und B), drehen sie, Zunder und verbinden sich zu einer einzigen Seite wie diese

------  ------   ------ 
|  |  |  |   |  | 
| A |  | B |   | a | 
|  |  |  |   |  | 
|  |  |  | ---> ------ 
|  |  |  |   |  |   
|  |  |  |   | b |   
|  |  |  |   |  |   
------  ------   ------ 

Die Lösung zu arbeiten auf Linux benötigt und vorzugsweise auf zu Sie Windows. Ich suche entweder eine Konsolenanwendung oder eine Bibliothek mit Python- oder Perl-Bindungen.

bearbeiten gibt es pdfnup Bibliothek, die genau diese Art von Transformation durchführen soll, und ist plattformübergreifende, aber ich es nicht aufgrund eines Fehlers ähnlich wie this verwenden können.

Antwort

9

Unter Linux können Sie die PDF-Dateien in Postscript konvertieren und psnup verwenden. Die genaue Methode zum Aufrufen hängt davon ab, wie die Seiten zusammengesetzt werden sollen, ob sie gedreht werden sollen, welche Papiergröße (n) Sie verwenden möchten, aber es wird so aussehen:

pdf2ps infile.pdf infile.ps 
psnup -2 infile.ps outfile.ps 
ps2pdf outfile.ps outfile.pdf 

Je nachdem, welche Tools Sie zur Verfügung haben, haben Sie möglicherweise einen effizienteren Weg dazu - psnup ist sicherlich nicht die einzige Möglichkeit, aber es ist ein relativ bekanntes Programm (unter Linux sowieso).

+0

Sollte das 'pdf2ps infile.pdf infile.ps' sein? –

+0

@Ian: Ich glaube, du hast recht, danke, dass du das eingefangen hast;) Ich werde es reparieren. –

0

Überprüfen Sie den Quellcode von PyPDF, insbesondere die rotateClockwise() - Methode. Es muss einen Ort geben, an dem der Inhalt einer Seite geschrieben wird. Fügen Sie einen "q" -Operator (Speicherstatus) und "cm" (mit den korrekten Parametern für eine Skalierungsmatrix) vor dem Inhalt und einen "Q" -Operator (Wiederherstellungsstatus) danach ein.

Eine Erläuterung der Operatoren und der Struktur einer Seite finden Sie unter PDF documentation (nach unten blättern für einige nützliche Links).

Vergessen Sie nicht, einen Patch zu PyPDF :)

[EDIT] Sie können auch die pdfjam sources, die einen pdfnup Befehl umfassen überprüfen möchten zu senden.

0

Dies ist eine Perl-Funktion ich ein Verzeichnis greifen voller PRN-Dateien aus einem 3rd-Party-App nutzen zu verhängen verwendet und eine einzelne vermischte pdf erstellen.

sub runMerged($) 
{ 
    my($path) = @_; 

    print "Generating merged PDFs for $path\n"; 

    my @files = sort(getFiles($path, ".prn\$")); 
    if (scalar(@files)) 
    { 
     open(MERGE, ">$path/merged.prn"); 
     for (my $i = 0; $i < scalar(@files); $i++) 
     { 
      print MERGE "^L\n" if ($i > 0); 

      open(FN, "$path/" . $files[$i]); 
      while (my $line = <FN>) 
      { 
       print MERGE $line; 
      } 
      close(FN); 
     } 

     chdir("$BASE_PATH/txt2pdf"); 
     print `./txt2pdf.pl $path/merged.prn`; 
    } 
} 
22

Dies ist eine Zusammenfassung der Tools, die ich für PDF gefunden (Ich wollte das Äquivalent von PSUP und psbook finden)

  • Erstellen von Broschüren: pdfbook, pdf-Tools (Befehl: pdfbklt)
  • Merge PDF-Dateien: PDFMerge, pdfjam (Befehl: pdfjoin)
  • Seiten drehen: pdfjam (Befehl: pdf90)
  • Mehrere Seiten pro Blatt: pdfjam (Befehl: pdfnup)
  • Deine eigenen Poster (mehrere Blätter pro Seite): pdfposter

Von meinem Paket-Manager:

Eine A6 Broschüre:

pdfbook -2 -p a5 infile.pdf outfile.pdf 

pdf-Tools enthält:

  • pdfbklt: erstellen Broschüren
  • pdfrevert: Entfernt eine Schicht von Änderungen in eine PDF-Datei, versuchen um die Größe der Ausgabedatei zu maximieren (um linearisierte PDF zu berücksichtigen).
  • pdfstamp: Fügt die angegebene Zeichenkette der infile .pdf-Datei an der angegebenen Position, Schrift und Größe hinzu.

Es gibt auch mehrwertige: http://multivalent.sourceforge.net/Tools/index.html

+0

Neues Zuhause für pdfmerge (es scheint): https://github.com/dmaphy/pdfmerge – Mildred

+4

Nach dem Testen mehrerer Tools war 'pdfjam' für mich definitiv die einfachste, schnellste und effizienteste:' pdfjam * .pdf --nup 2x1 --landschaft --outfile output.pdf' (von: http://superuser.com/a/750293/255048) –

0

ich diese Woche ein ähnliches Bedürfnis hatte. Aber ich musste jede A4-Seite (Querformat) "zweimal" im A3-Blatt (Hochformat) wiederholen, um sie später in zwei Hälften zu schneiden.

Ich habe ein Acrobat-Plugin mit vielen Ausschießfunktionen gefunden, die für meine Bedürfnisse gut geeignet waren, und mit einer voll funktionsfähigen 30-Tage-Testversion.

Hoffnung Es könnte für jemand anderen hilfreich sein.
http://www.pdfsnake.com/

1

In Antwort auf Ihre Frage, werden Sie ein PDF ‚Ausschießen‘ Werkzeug benötigen, die eine andere Art ist es, ein Werkzeug zu sagen, die PDF-Seite Bilder auf einen bestimmten Array ordnet eine neue PDF-Seite zu erstellen. Stellen Sie sich vor, es ist etwas wie das Setzen einer Zeitung. Sie definieren ein Array von Slots mit einer bestimmten Anzahl von Spalten in einer bestimmten Anzahl von Reihen auf einer Seite mit bestimmten festen Abmessungen (in cm). Dann füllen Sie die leeren Slots von oben nach unten, von links nach rechts mit Seiten aus einer PDF-Quelldatei. Im Fall des OP wollen sie eine einzelne Seite erstellen, die aus zwei 8.5x11 Seiten besteht, die in einem 1x2-Array angeordnet sind (1 Spalte, 2 Zeilen). Ihre Seiten werden in der folgenden Reihenfolge in das Array eingefügt: 1,2.Sie legen also die erste Seite (Seite 1 der PDF) in den ersten Slot Ihres Arrays (Spalte 1, Zeile 1) und Sie legen die zweite Seite (Seite 2) in den zweiten Slot (Spalte 1, Zeile 2)).

So verwenden Sie das Tool, um dies zu ermöglichen: Laden Sie die alte Version von Multivalent herunter. Beachten Sie, dass der Autor die guten Tool-Klassen aus der letzten Ausgabe ohne Erklärung entfernt hat, so dass Sie eine ältere verwenden müssen. Hier ist ein funktionierender Link vom 02/12: http://code.google.com/p/pdfsizeopt/downloads/detail?name=Multivalent20060102.jar Der Einfachheit halber habe ich die JAR-Datei in m.jar umbenannt. Es versteht sich von selbst, dass Sie JRE installieren müssen, damit es funktioniert, aber ich werde es dort veröffentlichen. Fügen Sie den Java-Klassenpfad-Umgebungsvariablen m.jar hinzu (für Skripts) oder führen Sie die Befehlszeilensyntax mit der Option -cp und dem relativen Pfad (siehe unten) aus. Hinweis: Ich habe es von der Befehlszeile im Installationsverzeichnis in meinem Beispiel unten ausgeführt. Geben Sie andernfalls einen absoluten Pfad von root an (wie c: \ 1 \ bin \ m.jar).

Hier ist ein Beispiel, das genau ausführen wird, was OP gepostet hat über: C: \ 1 \ bin> java -cp m.jar tool.pdf.Impose -dim 1x2 -verbose -papersize "21,59x55,88cm" - Layout "1,2" yourfilename.pdf

Hinweis, die Option -dim erstellt das Array in Spalten x Zeilen. Die -papersize wird hier in Zentimetern angegeben, aber wenn Sie Zoll benötigen, multiplizieren Sie einfach Zoll mit 2,54, um cm zu erhalten. Die Option -layout gibt Ihnen die Reihenfolge, in der Sie die leeren Slots in Ihrem Array ausfüllen und von oben nach unten und von links nach rechts ausfüllen möchten. In diesem Fall wollen wir die erste Seite der PDF-Datei oben und die zweite Seite unten, also lautet unser Argument "1,2". Das letzte Argument ist Ihre eigentliche Quelldatei. Das Tool wird eine Datei namens yourfilename-up.pdf ausgeben, wenn Sie fertig sind.

Hoffe, dass hilft.

-Matt Zweil

2

Wenn Sie Linux verwenden, können Sie BookletImposer für die Umsetzung mehrere PDF-Seiten auf einer einzigen Seite.

Für Ubuntu-Benutzer ist dieses Tool im Ubuntu Software Center verfügbar.

0

Ich hatte das gleiche Problem wie Sie, und das ist, was ich tat:

  1. jeder
  2. In Irfanview (mit Plugins) Ich habe ein Vertical erstellt alle Seiten in der PDF-Datei als separate Datei Extrahiert „Panorama“ Bild
  3. die pDF-Dateien Dragged über den Abschnitt Bild
  4. Clicked erstellt
  5. „Bild“ mit allen Seiten nach sich als ein sehr lange vertikalem Bild erstellt wird
  6. Sie können fast ohne Qualitätsverlust in PDF exportieren.
  7. Genießen
0

hier ein Skript ist Seiten für die Wiederholung (wie A5, Landschaft) zweimal auf ein Blatt diese doppelte Größe (A4, Hochformat):

#!/bin/bash 
INPUTFILE=$* 
PAGENUM=`pdftk ${INPUTFILE} dump_data | grep NumberOfPages | cut -d : -f 2 | cut -d " " -f 2` 
PAGES=`seq 1 ${PAGENUM}` 
DUPAGES=`for i in ${PAGES} ; do echo $i $i | tr "\n" " " ; done` 
OUTPUT1=`basename ${INPUTFILE} .pdf`.dup.pdf 
OUTPUT2=`basename ${INPUTFILE} .pdf`.double.pdf 
pdftk ${INPUTFILE} cat ${DUPAGES} output ${OUTPUT1} 
pdfjam --nup 1x2 ${OUTPUT1} --outfile ${OUTPUT2} 

Es ist nicht wirklich elegant; es könnte ohne den zweiten Aufruf pdftk gemacht werden, und es funktioniert nicht mit Dateien, die Leerzeichen enthalten. Aber es funktioniert mit mehrseitigen PDFs.

0

Öffnen Sie mit Adobe Acrobat XI Pro das 1. Dokument. Bearbeiten, wählen Sie "Snapshot erstellen", klicken Sie dann auf die obere Ecke des zu kopierenden Objekts und ziehen Sie in die gegenüberliegende Ecke. Lassen Sie ein offenes sauberes Blatt in Paint. Klicken Sie auf das saubere Blatt in Farbe und steuern Sie V, um das 1. Dokument in das saubere Blatt einzufügen. Wiederholen Sie für den zweiten Artikel, den Sie auf der gleichen Seite kombinieren möchten, außer den zweiten Artikel unter dem ersten Artikel vorübergehend in Ihrem Malblatt zu positionieren. Ziehen Sie dann das zweite Element, um es an der Stelle zu positionieren, an der Sie es in der Farbtafel benötigen. Speichern Sie die Paint-Sheet-Datei und Sie sind fertig!

+1

Adobe Acrobat XI Pro ist kein kostenloses Tool, oder? Das hat das OP gefordert. – mzjn

+0

Normalerweise stellen wir hier keine Menschen in unsere Programme. (Nicht, dass die Frage sowieso Thema ist) –

Verwandte Themen