LoginSignup
5
7

More than 1 year has passed since last update.

LinuxでPDFを編集するためのツール

Last updated at Posted at 2021-11-09

この記事について

Linux (Ubuntu22.04)上でPDFファイルを編集するソフト・コマンドの私的な健忘録です。
他の方々にも役立つ情報があれば幸いです。

PDF閲覧

evinceですね。

PDFのページ順序を入れ替える、回転、削除、マージなど

pdfarranger

GUIでやりたいときは、pdfarranger
パッケージ名もpdfarranger。

インストール方法:

sudo apt install pdfarranger

使い方はGUIなので迷わないだろう。

使用上の注意点としては、ver.1.4.2のpdfarrangerで編集すると、しおり(bookmark, outline)がきれいさっぱり消去されてしまった。しおりを使っているPDFには使用禁止。

pdftk

CUI(コマンドライン)でやりたいときは、pdftk
パッケージ名はpdftkなので、下記のようにインストールすれば良い。ただし細かいことを言うと、これはtransitional packageであり、本体はpdftk-javaらしい。

sudo apt install pdftk

なお、上記のパッケージでインストールされるpdftkは、下記のPDFLabsのものとは異なるみたい。

PDFLabs版pdftk:
https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/

使い方については他の人の記事を参照されたい。
pdftkは、しおりを編集することもできる。
参考URL:
https://reject.tokyo/pdf-index/

使用例のメモ:

shuffle: 2つのPDF(infile1.pdfとinfile2.pdf)を交互に結合する。

pdftk A=infile1.pdf B=infile2.pdf shuffle A B output outfile.pdf

shuffle: 2つのPDF(infile1.pdfとinfile2.pdf)を交互に結合する。ただし、infile2.pdfの方だけ逆順にする。
両面書類を片面ずつ2回に分けてスキャンした後に結合するときに便利。

pdftk A=infile1.pdf B=infile2.pdf shuffle A Bend-1 output outfile.pdf

Bについているend-1が逆順の指定。
両面書類を片面ずつ2回に分けてスキャンするさい、奇数ページは正順でスキャンされるが、その後に書類を裏返して、偶数ページをスキャンすると、偶数ページは逆順でスキャンされる。そのようなとき、上記のコマンドで結合すると、本来のページ順になる。

PDFを1ページごとにばらばらのPDFファイルに分割する。

pdftk input.pdf burst output page-%02d.pdf

%02dは、1桁の数には0をつけて2桁の数字にする指定。%03dなら3桁の数字になる。

PDFの一部を切り出す(トリミングする)

krop

GUIでやりたいときは、krop
パッケージ名もkrop。

インストール方法:

sudo apt install krop

使い方はGUIなので迷わないだろう。

pdfcrop, pdfjam

CUI(コマンドライン)でやりたいときは、pdfcroppdfjam
これらは、texlive-extra-utilsパッケージをインストールするとその中に入っている。
TeXLive一式をインストールしてある人は、すでに入っていると思う。
シェルスクリプトなどでバッチ処理をするときに役立つかもしれない。

pdfjamはトリミングに加えて、ページの結合・分割・割付もできる。

PDF中の注釈(コメント)をflattenする

注釈(コメント)の付いたPDFをLaTeXの図に取り込んだ(includegraphics)とき、その注釈(コメント)が表示されない。PDF中の注釈を表示するかしないかはアプリによるので、おそらくこれはLaTeXの仕様なのだろう。
解決策としては、注釈(コメント)という属性をなくして、ベタ書きに変換してしまえばよい。flatten(フラット化)するというらしい。qpdfコマンドでやるのが簡単。
パッケージ名もqpdf。

インストール方法:

sudo apt install qpdf

コマンド記述例: 脚注付きのinput.pdfをflattenして、output-flattened.pdfを生成する。

qpdf --flatten-annotations=all input.pdf output-flattened.pdf

注: pdftkにもflattenの機能があるが、これは別物。PDF中の注釈ではなく、PDF中の入力フォームをflattenするための機能らしい。
qpdfでも入力フォームのflattenはできるので、pdftkでやる必要はないが、参考までにコマンド記述を下記に示す。

コマンド記述例: 入力フォーム付きのinput.pdfをflattenして、output-flattened.pdfを生成する。

pdftk input.pdf output output-flattened.pdf flatten

PDFとSVGの相互変換

PDFの図をMicrosoft PowerPointで使いたいときがある。
PowerPointはPDF形式のファイルを図として扱えないが、SVGに変換すれば扱える。
PNGやJPGなどのイメージグラフィックスに変換するという手もあるが、元のPDFがベクタグラフィックスの場合は、SVGの方が比較的小さいファイルサイズで高品位の図になるので、お勧め。

PDF→SVGへ変換

pdf2svgというコマンドで変換できる。
パッケージ名もpdf2svg。

インストール方法:

sudo apt install pdf2svg

使用例: foo.pdfを変換してfoo.svgにしたいとき

pdf2svg foo.pdf foo.svg

SVG→PDFへ変換

inkscapeをコマンドラインで使って変換できる。
インストール方法は、拙作の記事を参照:
https://qiita.com/j0306043/items/5666e67bcbfd099be7d5#inkscape

下記はVer.1.1のinkscapeの場合で説明する。
(古いバージョンのinkscapeとはオプションの指定が異なるので注意)

使用例: foo.svgを変換してfoo.pdfにしたいとき

inkscape -p foo.svg -o foo.pdf

convertで変換するよりも、フォント絡みの再現性が良い感じ。

5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7