Ich habe eine gescannte PDF-Datei, die zwei Seiten auf einer virtuellen Seite gescannt hat (Seite in PDF-Datei).
Die Auflösung ist mit guter Qualität. Das Problem ist, dass ich beim Lesen zoomen und von links nach rechts ziehen muss.
Gibt es einen Befehl ( convert
,, pdftk
...) oder ein Skript, mit dem diese PDF-Datei mit normalen Seiten konvertiert werden kann (eine Seite aus dem Buch = eine Seite in einer PDF-Datei)?
pdfnup
aus derpdfjam
Suite abgerufen werden.Antworten:
Hier ist ein kleines Python-Skript, das die PyPdf-Bibliothek verwendet und die Aufgabe ordentlich erledigt. Speichern Sie es in einem Skript mit dem Namen
un2up
(oder was auch immer Sie möchten), machen Sie es ausführbar (chmod +x un2up
) und führen Sie es als Filter aus (un2up <2up.pdf >1up.pdf
).Ignorieren Sie alle Verwerfungswarnungen. Nur die PyPdf-Betreuer müssen sich mit diesen befassen.
Wenn die Eingabe ungewöhnlich ausgerichtet ist, müssen Sie möglicherweise andere Koordinaten verwenden, um die Seiten abzuschneiden. Siehe Warum teilt mein Code nicht jede Seite in einem gescannten PDF korrekt auf?
Nur für den Fall, dass es nützlich ist, hier ist meine frühere Antwort, die eine Kombination aus zwei Werkzeugen und einigen manuellen Eingriffen verwendet:
Beide Tools werden benötigt, da pdfpages meines Erachtens nicht in der Lage ist, zwei verschiedene Transformationen auf dieselbe Seite in einem Stream anzuwenden.
pdftk
Ersetzen Sie beim Aufruf von 42 durch die Anzahl der Seiten im Eingabedokument (2up.pdf
).Falls Sie nicht über pdfjam 2.0 verfügen, reicht eine PDFLaTeX-Installation mit dem pdfpages-Paket aus (unter Ubuntu: Sie benötigen texlive-latex empfohlen und möglicherweise (unter Ubuntu: texlive-fonts empfohlen ), und verwenden Sie den folgenden Treiber Datei
driver.tex
:Führen Sie dann die folgenden Befehle aus und ersetzen Sie 42 durch die Anzahl der Seiten in der Eingabedatei (die aufgerufen werden muss
2up.pdf
):quelle
pdfjam
Befehl nicht.q.mediaBox.lowerRight = (w, h/2)
Nur eine Ergänzung, da ich Probleme mit dem Python-Skript (und einigen anderen Lösungen) hatte: Für mich
mutool
hat es großartig funktioniert. Es ist eine einfache und kleine Ergänzung, die mit dem elegantenmupdf
Lesegerät geliefert wird. So können Sie versuchen:Ersetzen Sie
y
bei horizontalen Teilungen durchx
. Und Sie können natürlich beides kombinieren, um komplexere Lösungen zu erhalten.Wirklich glücklich, dies gefunden zu haben (nach Jahren der täglichen mupdf-Nutzung :)
mutool
Ab Version 1.4 wird mupdf mitgeliefert: http://www.mupdf.com/newsInstallieren
mupdf
undmutool
von der Quelle:Oder gehen Sie zur Downloadseite , um eine neuere Version zu finden.
quelle
mutool
wurde dafür gemacht. Vorsicht-y
, ich denke in den meisten Fällen ist das, was Sie wollen-x
.Imagemagick schafft das in einem Schritt:
quelle
-density 400
Parameter `hinzufüge, ist die Qualität noch besser.Mit dem Befehl Konvertieren von ImageMagick können Sie Ihre Datei in zwei Teile teilen. Siehe http://www.imagemagick.org/Usage/crop/
Wenn ich Sie wäre, würde ich ein (Shell-) Skript wie das folgende schreiben:
Schneiden Sie für jede Seite die erste Hälfte zu und legen Sie sie in eine Datei mit dem Namen $ {PageNumber} A
Schneiden Sie die zweite Hälfte zu und legen Sie sie in eine Datei mit dem Namen $ {PageNumber} B.
Sie erhalten 1A.pdf, 1B.pdf, 2A.pdf, 2B.pdf usw.
quelle
Basierend auf der Antwort von Gilles und wie ich die Anzahl der PDF-Seiten finde, die ich geschrieben habe
Damit ich rennen kann
Wobei 50 zum Anpassen des Randes und 1,2 zum Skalieren.
quelle
Hier ist eine Variante des PyPDF-Codes von Gilles. Diese Funktion funktioniert unabhängig von der Seitenausrichtung:
quelle
Die beste Lösung war mutool so:
die Spaltung:
aber dann müssen Sie die Seiten nach links drehen:
quelle
Basierend auf der Antwort von Benjamin bei AskUbuntu würde ich die Verwendung des GUI-Tools gscan2pdf empfehlen .
Importieren Sie die PDF-Scandatei in gscan2pdf. Beachten Sie, dass PDF-Dateien, die keine Bilder sind, möglicherweise nicht funktionieren. Scans sind in Ordnung, Sie müssen sich also keine Sorgen machen.
Je nach Größe des Dokuments kann es eine Weile dauern. Warten Sie, bis es geladen ist.
Drücken Sie Strg + A , um alle Seiten auszuwählen, und drehen Sie sie bei Bedarf (Strg + Umschalt + C) .
Gehen Sie zu Extras >> Aufräumen . Wählen Sie Layout als Doppel- und # Ausgabeseiten = 2 .
Klicken Sie auf OK und warten Sie, bis der Auftrag abgeschlossen ist.
Speichern Sie die PDF-Datei. Getan.
quelle
moraes lösung hat bei mir nicht funktioniert. Das Hauptproblem war die x5- und x6-Berechnung. Hier muss ein Offset berücksichtigt werden, dh wenn lowerLeft nicht auf (0,0) steht
Hier ist eine weitere Variante mit zusätzlichen Anpassungen für PyPDF2 und Python 3:
quelle