web-dev-qa-db-ja.com

コマンドラインを使用して、a PDFをシートごとに複数のページを持つものに変換する

slides.pdfに1ページに4枚のスライドを含めたいとしましょう。

Evince(デフォルトのUbuntuドキュメントビューア)でslides.pdfドキュメントを開くことができます

evince slides.pdf-> Print-> Page Setup-> Pages per Side-> 4(またはその他の数値)

次に、ファイルに印刷して印刷することを指定できます。結果は、1枚のシートに必要な数のスライドを含むoutput.pdfファイルです。

これと同じ機能をコマンドラインから実現したいと思います(これをスクリプトに組み込む必要があるため)。私がこれまでに見つけたのは、外部ツールに依存するソリューションだけです。たとえば、pdfjamをインストールしようとしました(すでに持っている機能を実現するには、texlive-latex-baseから88.1MB相当のパッケージをインストールする必要がありました!)、結果はpdfjam ERROR: LaTeX package pdfpages.sty is not installedでのみ失敗しました。

外部パッケージは避けたい。

コマンドラインからこれを行うにはどうすればよいですか?

11
user84207

[〜#〜]面付け[〜#〜]を実行するには、Multivalent.jar(内部にツールを含む最新の無料バージョン、現在sourceforgeでホストされている最新のMultivalentビルド-2009-pdfツールはありません)

multivalent.jarビルドは、次のツールからダウンロードできます。

オンライン男性http://multivalent.sourceforge.net/Tools/pdf/Impose.html

使用する:

Java -cp path...to/Multivalent.jar tool.pdf.Impose -dim (rowsxcols) -paper (paper sizes where pages will be imposed) file.pdf
2
Dingo

Pdfnupを使用することもできます。

pdfnup --nup 2x2 --no-landscape file.pdf

ここで、2x2は2行2列を指します(またはその逆-わかりません)。その他のオプションについては、manpdfnupを参照してください。

20
Paul Robert

これを行うことができ、維持されている唯一のツールはPyPDF2です https://pythonhosted.org/PyPDF2/index.html

あなたはいくつかのサンプルコードを見ることができます: https://superuser.com/a/1508283/590044

0
Loren