回答:
「コマンドラインからのOS XでのPDFファイルの結合」の「OSXでのコマンドラインでのPDFファイルの結合」を参照してください。
OSXには、Tiger以降、必要なことを正確に実行するPythonスクリプトが付属しています。スクリプトはすでに実行可能で、PythonはOS Xにプリインストールされているため、実行するために必要なことは、ターミナルを開いて入力するだけです
"/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
また、リンクされたページでは、join.py
入力を簡単にするためにファイルのシンボリックリンクを作成することをお勧めしますが、-s
in を省略しln -s ... ...
、それなしではハードリンクが作成されます。おそらく問題になりませんが、言及しますが。
Brew with commandを使用してGhostscriptをインストールするだけです:
brew install gs
次に、リストされているすべてのファイルでコマンドを実行します。
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=merged.pdf source1.pdf source2.pdf source3.pdf
gs
ので、今後の参考のためにこのソリューションも同様に便利です。
AutomatorアクションのAppleのpythonスクリプトは、新しいPDFKitフレームワークではなくCoreGraphicsのCGPDFDocument APIを使用するため、非常に遅くなります。また、必要なAPIだけでなく、CoreGraphicsライブラリ全体をインポートします。
代替のより高速なpythonスクリプトは、次の場所にあります。
また、このスクリプトは目次をPDFに追加し、各コンポーネントファイルを一覧表示(および既存のToCをマージ)しますが、Appleはそうしません。
コマンドライン(PDFファイル名を引数として使用)またはAutomatorシェルスクリプトアクションで使用して、Finderのクイックアクション/サービスを作成できます。
time
コマンドをあなたと一緒にjoinpdfs.py
スクリプト、組み込みのjoin.py
スクリプトと二つのファイル〜200メガバイトそれぞれ、あなたのjoinpdfs.py
スクリプトは、より高速なビルトインより9秒であったjoin.py
スクリプトそのままTOCを持つことの当然の付加的な利点と、 。いいね!+1
FWIW、私はシステムpythonなどのような外部の依存関係に依存することなくこれを可能にする簡単な小さなプログラムを書きました。ここの github で:pdfmergeと非常に簡単に使用するには、マージするPDFファイルのリストを渡すかpdfmerge in1.pdf in2.pdf ... out.pdf
、テキストファイルにマージするファイルのリストを渡すか、pdfmerge infileslist.txt out.pdf
またはABC順で現在のディレクトリを実行しpdfmerge out.pdf
ます。私はそれを学習プロジェクトとして書いたので、無料でオープンで、githubのリリースタブから最新のバイナリを入手できます。
join.py
、AutomatorのPDFページの結合アクションからのスクリプトであるPDFファイルを結合するには、他に何もダウンロードまたはインストールする必要はありませんが、使用する必要がありますダウンロードしてインストールします。また、リンクにバイナリが表示されませんでした。
上に構築@BartoszPetryńskiさんの素敵な答え、私たちは自分の最小限にすることができcpdf
GhostScriptの上部の有用性を:
brew install gs
cpdf () {
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="$1" "${@:2}"
}
次のように使用します:
cpdf merged.pdf file1.pdf file2.pdf file3.pdf
無料のCoherent PDFコマンドラインツールが最適なオプションであることがわかりました。非常に高速でロスレスであり、他のソリューションのように方向やハイパーリンクを台無しにしません。形式は次のとおりです。
cpdf file1.pdf file2.pdf -o output.pdf