it-swarm.com.de

Wie kann ich zwei kombinieren? PDF Seiten werden auf derselben Seite angezeigt?

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 (Umordnen) wird von vielen Tools (ich verwende PyPDF ) leicht gelöst. 

Das Problem ist die zweite Anforderung: Zwei (oder mehr) Seiten zu einer Seite zusammenfassen. Nehmen Sie zum Beispiel zwei Seiten (A und B), drehen Sie sie, skalieren Sie und kombinieren Sie diese zu einer einzigen Seite

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

Die Lösung muss unter Linux und vorzugsweise auch unter Windows funktionieren. Ich suche entweder eine Konsolenanwendung oder eine Bibliothek mit Python- oder Perl-Bindungen.

Edit Es gibt eine pdfnup library, die genau diese Art von Transformation durchführen soll und plattformübergreifend ist. Ich kann sie jedoch nicht verwenden, da ein ähnlicher Fehler wie this vorliegt.

24
Boris Gorelik

Check out diese Antwort das verwendet Multivalent , um PDF Seiten durchzusetzen

2
danio

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

  • Broschüren erstellen: pdfbook, pdf-tools (Befehl: pdfbklt)
  • PDF -Dateien zusammenführen: pdfmerge, pdfjam (Befehl: pdfjoin)
  • Seiten drehen: pdfjam (Befehl: pdf90)
  • Mehrere Seiten pro Blatt: pdfjam (Befehl: pdfnup)
  • Erstellen Sie Poster (mehrere Blätter pro Seite): pdfposter

Von meinem Paketmanager:

Erstellen Sie eine A6-Broschüre:

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

pdf-tools enthält:

  • pdfbklt: Broschüren erstellen
  • pdfrevert: Entfernt eine Änderungsebene in einer PDF -Datei und versucht, die Größe der Ausgabedatei zu maximieren (um linearisiertes PDF zu berücksichtigen).
  • pdfstamp: Fügt die angegebene Zeichenfolge zur angegebenen PDF-Datei an der angegebenen Stelle, Schriftart und -größe hinzu.

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

23
Mildred

Unter Linux können Sie die PDF -Dateien in Postscript konvertieren und psnup verwenden. Die genaue Methode für das Aufrufen hängt davon ab, wie genau die Seiten zusammengefügt werden sollen, ob sie gedreht werden sollen, welche Papierformate Sie verwenden möchten, usw. Aber es wird ungefähr 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 - psnup ist sicherlich nicht der einzige Weg, aber es ist ein relativ bekanntes Programm (unter Linux sowieso).

9
David Z

Wenn Sie Linux verwenden, können Sie BookletImposer verwenden, um mehrere PDF - Seiten auf einer einzigen Seite zu platzieren.

Für Ubuntu-Benutzer steht dieses Tool im Ubuntu Software Center zur Verfügung.

Um Ihre Frage zu beantworten, benötigen Sie ein PDF 'Imposition'-Tool, mit dem Sie ein Werkzeug sagen können, mit dem PDF -Seitenbilder in einem bestimmten Array angeordnet werden, um eine NEUE Single PDF Seite. Stellen Sie sich vor, es ist so etwas wie das Setzen einer Zeitung. Sie definieren ein Array von Slots mit einer bestimmten Anzahl von Spalten in einer bestimmten Anzahl von Zeilen auf einer Seite mit bestimmten festen Abmessungen (in cm). Dann füllen Sie diese leeren Slots von oben nach unten und von links nach rechts mit Seiten aus einer PDF-Quelldatei. Im Falle des OPs möchten sie eine einzelne Seite erstellen, die aus zwei 8.5x11-Seiten besteht, die in einem 1x2-Array (1 Spalte, 2 Zeilen) angeordnet sind. Ihre Seiten werden in der folgenden Reihenfolge im Array abgelegt: 1,2. Sie legen also die erste Seite (Seite 1 des PDF-Dokuments) in den ersten Slot Ihres Arrays (Spalte 1, Zeile 1) und die zweite Seite (Seite 2) in den zweiten Slot (Spalte 1, Zeile 2) ).

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

Hier ein Beispiel, mit dem genau das erreicht wird, was OP geschrieben hat: C:\1\bin> Java -cp m.jar tool.pdf.Impose -dim 1x2 -verbose -papersize "21.59x55.88cm" -layout 1,2 "IhrDateiname.pdf

Beachten Sie, dass die Option -dim das Array in Columns x Rows erstellt. Die -Papiergröße wird hier in Zentimetern angegeben, aber wenn Sie Zoll benötigen, multiplizieren Sie Zoll einfach mit 2,54, um cm zu erhalten. Mit der Option -layout erhalten Sie die Reihenfolge, in der Sie die leeren Slots in Ihrem Array füllen möchten, und zwar von oben nach unten und von links nach rechts. In diesem Fall möchten wir Seite 1 des PDFs oben und Seite 2 unten, daher lautet unser Argument "1,2". Das letzte Argument ist Ihre eigentliche Quelldatei. Wenn Sie fertig sind, gibt das Tool eine Datei aus, die als IhrDateiname-up.pdf bezeichnet wird.

Hoffentlich hilft das.

-Matt Zweil

1
Matt Zweil

Hier ist ein Skript, mit dem Seiten (wie A5, Querformat) zweimal auf einem Blatt doppelt so groß (A4, Hochformat) wiederholt werden:

#!/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 von pdftk ausgeführt werden und funktioniert nicht mit Dateien, die Leerzeichen enthalten. Aber es funktioniert mit mehrseitigen PDF-Dateien.

0
Seegras

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

In der PDF -Dokumentation finden Sie eine Erklärung der Operatoren und der Struktur einer Seite (für einige nützliche Links weiter unten).

Vergessen Sie nicht, einen Patch an PyPDF zu senden :)

[BEARBEITEN] Vielleicht möchten Sie auch die pdfjam-Quellen prüfen, die einen pdfnup-Befehl enthalten.

0
Aaron Digulla

Dies ist eine Perl-Funktion, mit der ich ein Verzeichnis voller PRN-Dateien aus einer App eines Drittanbieters holt und ein einzelnes zusammengeführtes PDF erstellt.

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`;
    }
}
0
user44585

Ich hatte das gleiche Problem wie Sie und das habe ich getan:

  1. Extrahiert alle Seiten in der PDF-Datei jeweils als separate Datei
  2. In irfanView (mit Plugins) habe ich ein vertikales "Panorama" Bild erstellt
  3. Ziehen Sie die PDF-Dateien in den Bildbereich
  4. Geklickt erstellt
  5. Das "Bild" wird so erstellt, dass alle Seiten als ein sehr langes vertikales Bild aufeinander folgen
  6. Sie können nahezu ohne Qualitätsverlust nach PDF exportieren.
  7. Genießen 
0
J. Fernando N

Öffnen Sie mit Adobe Acrobat XI Pro das 1. Dokument . Bearbeiten, wählen Sie "Schnappschuss erstellen", klicken Sie dann in die obere Ecke des zu kopierenden Exemplars und ziehen Sie es in die gegenüberliegende Ecke ..__ Klicken Sie in Paint . auf das leere Blatt in Paint and control V, um das erste Dokument in das leere Blatt einzufügen . Wiederholen Sie den Vorgang für das zweite Element, das Sie auf derselben Seite kombinieren möchten das 1. Element vorübergehend in Ihrem Malblatt ..__ Ziehen Sie dann das 2. Element an die gewünschte Stelle im Malblatt . Speichern Sie die Malblattdatei, und Sie sind fertig!

0
Mouse1999

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

Ich habe ein Acrobat-Plugin mit unzähligen Ausschießfunktionen gefunden, das für meine Bedürfnisse gut funktionierte, und eine 30-Tage-Testversion mit vollem Funktionsumfang.

Hoffe, es könnte für jemand anderen hilfreich sein.
http://www.pdfsnake.com/

0
Putuko