web-dev-qa-db-ja.com

PDFファイルを切り取るコマンドラインツール

Adobe Acrobat ProでできるようにPDFファイルを切り取るオープンソースのコマンドラインツールを探しています。 PdfTk、ImageMagick、PyPDF、GhostScriptを試しましたが、これまでのところ成功していません。

100
Rakesh

PDFcrop をご覧になることをお勧めします。

5、10、20、および30 pt(ポイント)の左、上、右、および下マージンでPDFをトリミングする場合は、実行します

pdfcrop --margins '5 10 20 30' input.pdf output.pdf

ターミナル内。実際に何かを切り抜くには、切り抜きの引数に負の値を使用します。例えば、

pdfcrop --margins '-50 -50 -50 -50' input.pdf output.pdf

左、上、右、下から(この順序で)50ポイントをトリミングします。

pdfcrop inputコマンドのみを実行すると、input-crop.pdfというタイトルのファイルがマージンなしで出力されます。これは、ドキュメントにpdfイラストを含めるときに非常に便利です。

複数のファイルの切り取り

残念ながら、pdfcropは一度に複数のファイルをトリミングできません。ただし、スクリプトが置かれているフォルダー内のすべてのPDFをトリミングするスクリプトを作成するのは簡単です。

新しい空のファイルを作成し、something.shと呼びます。テキストエディタで開き、次を挿入します。

#!/bin/bash
for FILE in ./*.pdf; do
  pdfcrop "${FILE}"
done

保存して閉じます。次に、ファイルを右クリックして、Properties> Permissionsに移動し、フィールドをチェックして、ファイルをプログラムとして実行することを許可します。ここでダイアログを閉じます。スクリプトをダブルクリックして実行し、Run in Terminalを選択します。そして、サフィックス-cropが付いたすべてのPDFの新しい、マージンのないトリミングされたバージョンがフォルダーに印刷されるようになりました。余白やその他のものが必要な場合は、もちろんスクリプトを開いて、pdfcropの後に引数を追加できます。

123
Rasmus

Rasmusのおかげで、texlive-extra-utilsパッケージからpdfcropをインストールできます。

Sudo apt-get install texlive-extra-utils

次に、pdf cropコマンドを使用してPDFファイルを切り取ります。

pdfcrop input.pdf output.pdf

--helpを使用して、--marginsのようなさらにすばらしいパラメーターを表示します。

pdfcrop --margins 5 input.pdf output.pdf

ページの両側から5 bpでPDFを切り取る

35
sarigalin

また、Ghostscriptを使用してPDFファイルをトリミングすることもできます。プロセスを簡素化するための小さなスクリプトを作成しました( この回答 に触発されました):

#!/bin/bash

if [ $# -lt 5 ]
then
  echo "Usage: `basename $0` <pdf-file> <x_min> <x_max> <y_min> <y_max>"
  echo "Notes:"
  echo " - all coordinates are absolute; no calculation of width/height necessary"
  echo " - use 'gv' to determine the coordinates"
  exit 65
fi

file="$1"
xmin="$2"
xmax="$3"
ymin="$4"
ymax="$5"

base="${file%.*}"
outfile="${base}_cropped.pdf"

echo "writing to: $outfile"

gs \
  -o $outfile \
  -sDEVICE=pdfwrite \
  -c "[/CropBox [$xmin $ymin $xmax $ymax] /PAGES pdfmark" \
  -f $file

トリミングの座標を決定するには、gvを使用します。これは、Ghostscriptと同じ単位を使用してマウスカーソルの座標を出力します。たとえば、ここでx/yの最小座標(左上隅の値)を決定します。

crop1

今最大座標:

crop2

そして最後に、スクリプトpdf_crop_by_coordinates.sh test.pdf 45 429 38 419を実行して、次のようなtest_cropped.pdfを生成します。

result

ただし、品質と正確さの点でGhostscriptソリューションがpdfcropとどのように比較されるのか、私にはわかりません。

17
bluenote10

Pdftkで何かできないときは、次の場所は PDFjam です。これは pdfpages LaTeXパッケージのコマンドラインラッパーです(したがって、それも必要です) TeXディストリビューションがインストールされています)。使い方のヘルプについては、通常のヘルプ画面をお勧めします:

pdfjam --help

マニュアルページがまばらであり、Webページが例に集中しているためです。

PDFをトリミングするには、次のようなコマンドが必要です。

pdfjam --keepinfo --trim "10mm 15mm 10mm 15mm" --clip true --suffix "cropped" input.pdf

これにより、input-cropped.pdfというファイルが出力されます。トリムの順序は、 graphicx からの\includegraphicsに従って、左、下、右、上にする必要があります。

PDFcropと比較する方法のアイデアを与えるために、私は最近非常に派手なPDFをトリミングする理由がありました。私のオリジナルは675 kBで、PDFjamでトリミングしたバージョンは1.2 MBでしたが、PDFcropでトリミングしたバージョンは4.5 MBでした。 PDFjamとPDFcropの両方が埋め込まれたハイパーリンクとブックマークを取り除きましたが、--keepinfoオプションを使用したPDFjamはドキュメントのプロパティ(タイトル、作成者、件名など)を保持していました。

15
Alex Ball

グラフィカルツールでも問題ない場合は、kropをお勧めします。 http://arminstraub.com/software/krop

3
Sunday

これはあなたを助けるかもしれません。
これは、Ubuntuおよびlifeの新しいバージョンに準拠しています。これは Master PDF Editor です。切り抜きを使用したり、何かを追加したりできます。

例:
これは This is before これはctrl + kの後 enter image description here

3
Shamina

このページのpypdfスクリプト を使用できます。しかし、 このstackexchangeの質問 への答えには、同様に多くのオプションがあるようです。

2
xubuntix

pdfCropMargins プログラムは、PDFファイルのマージンを自動的にトリミングするコマンドラインアプリケーションです。

このプログラムは、Ghostscriptプログラムまたはシステムにインストールされている(および配置可能な)pdftoppmプログラムに依存します。しきい値191を使用して、PILでページ画像を分析し、境界ボックスを見つけます。

使用してインストール

pip install pdfCropMargins

を使用して実行

pdf-crop-margins -v -s -u your-file.pdf

助けて

pdf-crop-margins -h |もっと

2
CharmiChokshi

Briss はコマンドラインではありませんが、一見の価値があります。

2
weberjn