Antworten:
Weitere Informationen finden Sie unter "Kombinieren von PDF-Dateien in der Befehlszeile in OS X " unter Verknüpfen von PDF-Dateien in OS X über die Befehlszeile .
Es stellt sich heraus, dass OSX ab Tiger mit einem Python-Skript ausgeliefert wird, das genau das tut, was Sie brauchen. Das Skript ist bereits ausführbar und Python ist unter OS X vorinstalliert. Sie müssen also nur das Terminal öffnen und eingeben, um es auszuführen
"/System/Library/Automator/Combine PDF Pages.action/Contents/Resources/join.py" -o PATH/TO/YOUR/MERGED/FILE.pdf /PATH/TO/ORIGINAL/1.pdf /PATH/TO/ANOTHER/2.pdf /PATH/TO/A/WHOLE/DIR/*.pdf
Auch auf der verlinkten Seite es schlägt vor , machen eine symbolische Verknüpfung für die join.py
Datei zu erleichtern die Eingabe jedoch sie entfallen die -s
in ln -s ... ...
, und ohne sie, eine feste Verknüpfung erstellt. Wahrscheinlich würde es nichts ausmachen, obwohl ich es erwähnen würde.
Installieren Sie Ghostscript einfach mit dem Befehl Brew:
brew install gs
Führen Sie dann den Befehl mit allen aufgelisteten Dateien aus:
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=merged.pdf source1.pdf source2.pdf source3.pdf
gs
so dass diese Lösung für zukünftige Referenzzwecke genauso praktisch wäre.
Apples Python-Skript in der Automator-Aktion ist sehr langsam, da es die CGPDFDocument-APIs von CoreGraphics anstelle des neueren PDFKit-Frameworks verwendet. Außerdem wird die gesamte CoreGraphics-Bibliothek und nicht nur die erforderlichen APIs importiert.
Ein alternatives, schnelleres Python-Skript finden Sie hier:
Dieses Skript fügt dem PDF-Dokument auch ein Inhaltsverzeichnis hinzu, in dem alle Komponentendateien (und das Zusammenführen vorhandener ToCs) aufgeführt sind, was bei Apple nicht der Fall ist.
Sie kann in der Befehlszeile (mit PDF-Dateinamen als Argumente) oder in einer Automator-Shell-Skriptaktion verwendet werden, um eine Schnellaktion / einen Dienst für den Finder auszuführen.
time
Befehls in Verbindung mit Ihrem joinpdfs.py
Skript , dem integrierten join.py
Skript und zwei Dateien mit jeweils ca. 200 MB war Ihr joinpdfs.py
Skript 9 Sekunden schneller als das integrierte join.py
Skript , wobei der zusätzliche Vorteil natürlich darin bestand, dass das Inhaltsverzeichnis intakt war . Nett! +1
FWIW, ich habe ein kurzes kleines Programm geschrieben, mit dem Sie dies tun können, ohne sich auf externe Abhängigkeiten wie Systempython und dergleichen verlassen zu müssen. Auf github hier: pdfmerge und ziemlich einfach zu bedienen, kann man entweder eine Liste der zusammenzuführenden PDF-Dateien pdfmerge in1.pdf in2.pdf ... out.pdf
übergeben, eine Liste der zusammenzuführenden Dateien in eine Textdatei einfügen wie pdfmerge infileslist.txt out.pdf
oder einfach das aktuelle Verzeichnis in ABC-Reihenfolge mit pdfmerge out.pdf
. Ich habe es als Lernprojekt geschrieben, also kostenlos und offen, und Sie können die neueste Binärdatei auf der Registerkarte "Veröffentlichungen" von github herunterladen.
join.py
Skript aus der Aktion „PDF-Seiten kombinieren“ in Automator nicht heruntergeladen oder installiert werden Laden Sie es herunter und installieren Sie es. Habe auch kein Binary am Link gesehen.
Aufbauend auf über @Bartosz Petryński ‚s nette Antwort , wir können selbst minimalen machen cpdf
Dienstprogramm auf dem Ghostscript:
brew install gs
cpdf () {
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="$1" "${@:2}"
}
dann benutze es wie folgt:
cpdf merged.pdf file1.pdf file2.pdf file3.pdf
Ich fand das kostenlose Coherent PDF Command Line Tool die beste Option. Es ist sehr schnell, verlustfrei und bringt weder Orientierung noch Hyperlinks durcheinander, wie dies bei einigen anderen Lösungen der Fall war. Das Format ist:
cpdf file1.pdf file2.pdf -o output.pdf