Spójrz na „Łączenie plików PDF w wierszu poleceń w OSX” w Łączenie plików PDF w OS X z wiersza poleceń .
Okazuje się, że od wersji Tiger OSX jest dostarczany ze skryptem Python, który robi dokładnie to, czego potrzebujesz. Skrypt jest już wykonywalny, a Python jest wstępnie zainstalowany w systemie OS X, więc wszystko, co musisz zrobić, aby go uruchomić, to otwarcie terminala i pisanie
"/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
Również na powiązanej stronie to sugeruje dokonanie symboliczny link do join.py
pliku, aby ułatwić wpisywanie one jednak pominięty -s
w ln -s ... ...
, i bez niego, twrdym jest tworzony. Prawdopodobnie nie miałoby to znaczenia, choć wspomnę o tym.
Wystarczy zainstalować Ghostscript za pomocą Brew z poleceniem:
Następnie uruchom polecenie z wszystkimi wymienionymi plikami:
źródło
gs
więc na przyszłość, to rozwiązanie byłoby równie wygodne.Skrypt Pythona firmy Apple w akcji Automator działa bardzo wolno, ponieważ korzysta z interfejsów API CGPDFDocument firmy CoreGraphics, a nie z nowszej struktury PDFKit. Importuje również całą bibliotekę CoreGraphics, a nie tylko wymagane interfejsy API.
Alternatywny, szybszy skrypt Pythona można znaleźć tutaj:
Skrypt ten dodaje również spis treści do pliku PDF, wyszczególniając każdy plik komponentu (i scalając istniejące ToC), czego nie robi Apple.
Można go użyć w wierszu polecenia (z nazwami plików PDF jako argumentami) lub w akcji skryptu powłoki Automatora, aby utworzyć szybką akcję / usługę dla Findera.
źródło
time
polecenia w połączeniu zejoinpdfs.py
skryptem , wbudowanymjoin.py
skryptem i dwoma plikami ~ 200 MB każdy,joinpdfs.py
skrypt był o 9 sekund szybszy niż wbudowanyjoin.py
skrypt , co oczywiście zapewnia dodatkową korzyść z posiadania nietkniętego spisu treści . Miły! +1FWIW, napisałem szybki program, który pozwala ci to robić bez konieczności polegania na zewnętrznych zależnościach, takich jak python systemowy i tym podobne. Na github tutaj: pdfmerge i dość prosty w użyciu, może albo przekazać mu listę plików PDF do scalenia
pdfmerge in1.pdf in2.pdf ... out.pdf
, przekazać listę plików do scalenia w pliku tekstowympdfmerge infileslist.txt out.pdf
lub po prostu zrobić bieżący katalog w kolejności ABCpdfmerge out.pdf
. Napisałem go jako projekt edukacyjny, więc darmowy i otwarty. Możesz pobrać najnowszy plik binarny z karty wydań na github.źródło
join.py
skryptu z akcji Połącz strony PDF w Automatorze, nic więcej nie trzeba pobierać ani instalować, ale aby użyć Twojej, musiałbym pobierz i zainstaluj. Nie widziałem również pliku binarnego na link.w oparciu o @Bartosz Petryński „s miłą odpowiedź , możemy stworzyć własny minimalny
cpdf
narzędzie na górze GhostScriptu:następnie użyj go w następujący sposób:
źródło
Odkryłem, że darmowe narzędzie wiersza poleceń PDF spójne jest najlepszą opcją. Jest bardzo szybki, bezstratny i nie psuje orientacji ani hiperłączy, jak niektóre inne rozwiązania. Format to:
źródło