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


101

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


Adobe Acrobat proでできるトリミングの種類を教えてください。私はそれを持っていないので、あなたが探しているものを伝えることができないからです。
xubuntix

Adobe Acrobat Proでは、マージンコントロールを使用してPDFをトリミングできます。上、下、右、および左の値を指定して切り取ることができます
ラケシュ

回答:


124

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ポイントをトリミングします。

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

複数のファイルをトリミングする

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

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

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

保存して閉じます。次に、ファイルを右クリックして、[ プロパティ]> [アクセス許可 ]に移動し、[プログラムとしてファイルの実行を許可する]フィールドをオンにします。ここでダイアログを閉じます。スクリプトをダブルクリックして実行し、「ターミナルで実行」を選択します。そして、新しい-余白なしのトリミングされたバージョンで、接尾辞-cropが付いたすべてのPDFがフォルダーに印刷されます。余白やその他のものが必要な場合は、もちろんスクリプトを開いて、後に引数を追加できますpdfcrop


負のマージンを指定する代わりに、を使用することもできます--bbox "<left> <bottom> <right> <top>"。これにより、アプローチを使用して、以下の私の答えで説明された作物エリアを決定できます
bluenote10

ページ番号(トリミングする必要がある)を伝える可能性はありますか?
LK

私はそれがすべてかゼロかを恐れています。pdfcrop --help利用可能なオプションをリストします。ページの範囲を指定できるものは何もありません。
ラスマス

7
PDFCropの出力のサイズと入力を比較すると、pdfcropは境界ボックスのみを変更するように見えます。データは削除されません。したがって、このアプローチは、pdfを小さくしたり、情報を隠したりするには不適切です。
init_js

魔法のように!余白があってもPDFが必要です!
ジョジョ

36

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を切り取る


1
測定値はbp、からわずかに異なりptます。tex.stackexchange.com/questions/8260/…を参照してください。
koppor

2
私の場合、pdfcropはファイルサイズを300x(7MBから2GB)に増やしました。私がしなければならなかったgs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS="/ebook" -sOutputFile=output2.pdf output.pdfファイルのサイズを固定され、その後。
フィクトル

17

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 419test_cropped.pdfようになりますされました:

結果

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


15

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ます。トリムの順序が通り、下、右、上に残されるべきである\includegraphicsからgraphicx

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


1
注:これはPDFから画面外になるコンテンツを実際に削除するのではなく、非表示にするだけです。トップスコアの回答で@init_jsがコメントする内容と同じです。
1月Żankowski18年


3

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

例:
これは これは前です ctrl + kの後です。 ここに画像の説明を入力してください


3

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


2

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


左上、右下のパラメーターが何であるかを取得できません。それらはポイント、インチ、センチメートルですか?
ラケシュ

@Rakesh:パラメーターの説明と、それらを簡単に決定する方法については、私の答えをご覧ください。
bluenote10

2

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

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

使用してインストール

pip install pdfCropMargins

を使用して実行

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

助けて

pdf-crop-margins -h | もっと

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.