Als Methode (2up, 4up, ... n-up) zum Kombinieren mehrerer PDF-Seiten zu einer Seite, z. B. "Vorschau" von macOS usw. ** "Datei" -> "Drucken ..." -> Wählen Sie die Anzahl der Seiten / Blätter auf der Registerkarte "Layout" -> "Als PDF speichern" ** Die Methode kann erwähnt werden. Ich konnte jedoch keinen Weg finden, um die Lücke zwischen den Seiten zu vermeiden, die mit dieser Methode zusammengestellt wurden.
Die erste und zweite Seite sind jeweils Wenn Sie versuchen, eine PDF-Datei zu erstellen, die Elemente wie oben gezeigt bis zum Rand der Seite enthält, Es ist ersichtlich, dass der Rand wie in eingestellt eingestellt ist und zwischen den Seiten eine Lücke besteht. l Dies ist etwas enttäuschend für die Ausgabe, z. B. um ein großes Stück Papier aufzuteilen und gescannte PDF-Dateien wieder auf einer Seite zu kombinieren. Ich denke, es gibt eine Möglichkeit, einmal in das "Postscript" -Format zu konvertieren und das alte "psnup" zu verwenden, aber ich denke, dass es aufgrund von Mehrbyte-Zeichen, Schriftarten und Formatkonvertierung problematisch sein kann. Behandeln Sie also PDF. Ich habe beschlossen, ein Konvertierungsskript in einer neueren Skriptsprache zu schreiben, in der wahrscheinlich eine Bibliothek vorhanden ist.
Nach ein wenig Recherche scheint es eine Bibliothek namens PyPDF2 für Python
zu geben, also habe ich beschlossen, sie mit Python
zu implementieren. Als Spezifikation können die wichtigsten Dinge, die auf der Registerkarte Layout des Druckmenüs von macOS
geändert werden können, als Befehlszeilenoptionen ausgewählt werden.
Der Speicherort der Datei ist wie folgt.
Ein Beispiel für die Gruppierung von Seiten in 2 Zeilen und 3 Spalten.
% ./pdf_merge_multipages.py -o merge_test.pdf -c 3 -l 2 test_samples/input_landsc
ape_1.pdf test_samples/input_portleit_1.pdf
usage: pdf_merge_multipages.py [-h] [-output filename] [-columns n_h] [-lines n_v] [-page-order opt]
[-rotation opt] [-valign opt] [-align opt] [-metainfo opt] [-title text]
input-file [input-file ...]
Merge multiple mages in PDF files w/o gap.
positional arguments:
input-file Input PDF file(s)
optional arguments:
-h, --help show this help message and exit
-output filename Output file
-columns n_h # of columns of merged pages (default = 2)
-lines n_v # of lines of merged pages (default = 1)
-page-order opt Page order (choices=left2right[default], left2bottom, right2left, right2bottom)
-rotation opt Page orientation (choices=none[default], flip, right, left, auto, rauto)
-valign opt Page fitting (choices=resize, none[default], top, bottom, center, fit)
-align opt Page fitting (choices=resize, none[default], right, left, center, fit)
-metainfo opt Meta data for marged file (choices=full[default], none, partial, short)
-title text set title in meta data for marged file (Default: output file name)
---output filename
: Der Name der Ausgabedatei. Wenn nicht angegeben, lautet der Standardwert "a.out.pdf"
---Spalten nh
, -lines n_v
: Layoutspezifikation: Platzieren Sie die Seite der eingegebenen PDF-Datei in horizontalen n_h Spalten x vertikalen n_v Zeilen. Wenn nicht angegeben, ist der Standardwert 2x1 ("2up")
---page-order option
: Geben Sie die Reihenfolge an, in der die Seiten angeordnet sind.
--left2right
: Platziere die erste Seite der Eingabedatei oben links. Die Seiten, die auf die Eingabedatei folgen, sind nacheinander rechts angeordnet. Wenn sie das rechte Ende erreichen, werden sie nacheinander vom linken Ende der Spalte direkt unter oder von links oben rechts auf der nächsten Seite angeordnet. (Standard)
--left2bottom
: Platziere die erste Seite der Eingabedatei oben links. Die Seiten, die auf die Eingabedatei folgen, sind in der Reihenfolge von unten angeordnet, und wenn sie unten erreicht sind, sind sie vom oberen Rand der Spalte rechts oder von oben links bis zum unteren Rand der nächsten Seite angeordnet.
--left2top
: Platziere die erste Seite der Eingabedatei unten links. Die Seiten, die auf die Eingabedatei folgen, sind in der Reihenfolge von oben angeordnet. Wenn Sie oben angekommen sind, werden sie vom unteren Rand der Spalte nach rechts oder von links unten nach oben auf der nächsten Seite platziert.
--right2left
: Platziere die erste Seite der Eingabedatei oben rechts. Die Seiten, die auf die Eingabedatei folgen, sind nacheinander links angeordnet. Wenn sie das linke Ende erreichen, werden sie nacheinander vom rechten Ende der Spalte direkt unter oder von rechts oben links auf der nächsten Seite angeordnet.
--right2bottom
: Platziere die erste Seite der Eingabedatei oben rechts. Ordnen Sie die Seiten, die der Eingabedatei folgen, in der Reihenfolge von unten an. Wenn Sie unten angekommen sind, platzieren Sie sie oben in der Spalte links oder oben rechts unten in der nächsten Seite.
--right2top
: Platziere die erste Seite der Eingabedatei unten rechts. Die Seiten, die auf die Eingabedatei folgen, sind in der Reihenfolge von oben angeordnet. Wenn Sie oben angekommen sind, werden sie vom unteren Rand der Spalte nach links oder vom unteren rechten zum oberen Rand der nächsten Seite platziert.
---Rotationsoption
: Seitenrotation
--none
: Drehen Sie nicht jede Seite der zu platzierenden Eingabedatei. (Standard)
--flip
: Blättere jede Seite der Eingabedatei um, die auf den Kopf gestellt werden soll.
--right
: Drehen Sie jede Seite der platzierten Eingabedatei um 90 Grad nach rechts.
--left
: Drehen Sie jede Seite der platzierten Eingabedatei um 90 Grad nach links.
-- auto
: Wenn jede Seite der Eingabedatei oben auf der Ausgabeseite vertikal (horizontal) platziert wird, wird jede Seite der anderen Eingabedatei, die auf derselben Seite der Ausgabedatei platziert ist, horizontal (vertikal) platziert. ), Drehe es um 90 Grad nach links, sonst dreht es sich nicht.
-- rauto
: Wenn die Seite der Eingabedatei oben auf der Ausgabeseite vertikal (horizontal) platziert wird, wird jede Seite der anderen Eingabedatei, die auf derselben Seite der Ausgabedatei platziert ist, horizontal (vertikal) platziert. Drehen Sie es im Fall von um 90 Grad nach rechts und platzieren Sie es, wenn nicht, ohne es zu drehen.
---valign opttion
: Geben Sie die vertikale Positionseinstellung der zu platzierenden Seite an
--none
, bottom
: Untere Ausrichtung (Standard)
top
: Ausrichtung von oben
--resize
: Verkleinert sich, um die vertikale Größe der Seite der Eingabedatei anzupassen, die oben auf der Ausgabeseite platziert wird. Wenn dies gleichzeitig mit "-algin resize" oder "-algin fit" angegeben wird, ist das Verkleinerungsverhältnis möglicherweise kleiner, das Layoutintervall ist jedoch weiterhin die Eingabedatei, die oben auf der Ausgabeseite platziert wird. Dies ist die vertikale Größe der Seite.
--fit
: Verkleinert sich, um der vertikalen Größe der Seite der Eingabedatei oben auf der Ausgabeseite zu entsprechen. Wenn dies gleichzeitig mit "-algin resize" oder "-algin fit" angegeben wird, ist das Verkleinerungsverhältnis kleiner und das Layoutintervall kleiner als die vertikale Größe der Seite der Eingabedatei, die oben auf der Ausgabeseite platziert ist. Manchmal.-- Option ausrichten
: Festlegen der horizontalen Positionseinstellung der zu platzierenden Seite
--none
, left
: Rechtsbündig (Standard)
--center
: Ausrichtung links und rechts in der Mitte
resize
: Passt die Größe an die horizontale Größe der Eingabedateiseite an, die oben auf der Ausgabeseite platziert ist. Wenn es gleichzeitig mit "-valgin resize" oder "-valgin fit" angegeben wird, ist das Reduktionsverhältnis möglicherweise kleiner, aber das Layoutintervall ist immer noch die Eingabedatei, die oben auf der Ausgabeseite platziert wird. Dies ist die horizontale Größe der Seite.
--fit
: Verkleinert sich, um der horizontalen Größe der Seite der Eingabedatei oben auf der Ausgabeseite zu entsprechen. Wenn dies gleichzeitig mit "-valgin resize" oder "-valgin fit" angegeben wird, ist das Verkleinerungsverhältnis kleiner und das Layoutintervall kleiner als die horizontale Größe der Seite der Eingabedatei, die oben auf der Ausgabeseite platziert ist. Manchmal.
---metainfo options
: Angabe von Metainformationen in der Ausgabedatei
--full
: Wird generiert, indem die Metainformationen der Eingabedatei zur kombinierten Version hinzugefügt werden. (Standard)
--partial
: Wird generiert, indem einem Teil der kombinierten Metainformationen der Eingabedatei hinzugefügt wird
--Nur short
: '/ Title', '/ Creater', '/ Producer' werden generiert
--none
: Generiert keine Metainformationen für die Ausgabedatei. (Der PyPDF2-Standardwert ist angegeben.)
---title text
: Geben Sie den Titel der Metainformationen der Eingabedatei an. (Standard ist der Name der Ausgabedatei)Recommended Posts