複数の PDF ファイルを 1 つに結合する (マトリックス状に配置)

複数の PDF ファイルを 1 つに結合する (マトリックス状に配置)

一連の PDF ファイル (、、、... など) があるとします。これらin-01.pdfすべてを 1 つのファイルに結合して、マトリックスを形成したいと思います。in-02.pdfin-03.pdfM x N

コマンドを使用montageすると、それを実行できます (整数である必要MNあります)。

montage -mode concatenate -tile NxM in-*.pdf out.pdf

問題は、結果として得られる PDF のサイズが非常に大きいことです。これは、すべての入力 PDF サイズの合計よりも (おそらく) 少しだけ大きくなると予想していました。montage最初に入力 PDF を画像に変換し、それらの画像から出力 PDF を作成していると思います (そのため、たとえば、元の PDF のテキストは出力 PDF ではテキストとして表示されず、品質が低くサイズが大きい画像として表示されます)。

それを実行する方法があるはずです (たとえば、LATEX では、最初に画像に変換しなくても、PDF 画像を別の PDF に挿入できます)。

GNU/Linux システムでフリー ソフトウェア ツールを使用するコマンド ラインの代替手段を探しています。

注記: これらの PDF ファイルはすべて、まったく同じ寸法 (幅と高さ) であると想定できます。これらは、プロット/グラフ (単純な図形、線、長方形) といくつかのテキスト (タイトル、ラベルなど) で構成される自動生成された PDF 画像です。

答え1

ユーティリティプログラムを使用することもできpdfnupますpdfジャムスイート。

pdfnup in.pdf --nup 3x3

ファイルを出力しますin-nup.pdfのページで.pdfで元の PDF から 3x3 マトリックスを使用して一連のページに配置します。

すべての PDF ファイルを 1 つに結合する必要があります。また、出力ファイルの用紙サイズを指定する必要があります。詳細については、pdfjam のドキュメントを参照してください。

答え2

ここでエミュレートしようとしているレイアウトはNアップこれを行うにはいくつかの方法があります。xae のコメントにあるように、pdfjam でこれを行うことができます。私のコメントを参照してください。たとえば、次のようになります。

pdfjam --suffix nup --nup 2x2 input.pdf

4 面の 2x2 マトリックスを生成します。 あるいは、--landscapeマトリックスを縦向きではなく横向きに表示するオプションを渡すこともできます。

これをPostScriptで実行することもできます

pdf2ps input.pdf input.ps
psnup -4 input.ps output.ps
ps2pdf output.ps output.pdf

-44アップ(2x2)を意味します

lprまた、このPDFファイルをLinuxで直接印刷しようとしている場合、CUPSクライアントにはN-upオプション付きのBerkley LPR印刷スプーラ()のバージョンが含まれていると思います。このオプションは、

lpr -o number-up=4 input.pdf

またはデフォルトとして設定する

lpoptions -p QueueName -o number-up=4

関連情報