💻
コマンドラインからPDFのページを差し替える - PDFtk
学位論文などで本文は英語だけれども、表紙などでフォーマットが決まっていて日本語が必要になることがあると思います。
LaTeXで執筆を行っていると、たった数ページのためにクラスファイルを編集して体裁を整えるのは非常に面倒です。
この記事ではPDFtkを用いてコマンドラインからPDFのページを差し替える方法を解説します。
PDFtkのインストール
Ubuntu 24.04では、以下のコマンドでインストールができます。
$ sudo apt install pdftk-java
PDFtkのソースコードはこちら
ページを差し替える
本体のファイルの1ページ目を別のファイルで置き換える場合を考えます。
ここでは、本体のファイルをmain.pdf、新しい表紙をcover.pdfとします。
以下のコマンドで表紙を差し替えた結果をmain_new.pdfに出力できます。
$ pdftk A=main.pdf B=cover.pdf cat B1 A2-end output main_new.pdf
catで、A=main.pdfの2ページ目から最後までの前にB=cover.pdfの1ページ目を結合して、main_new.pdfに出力するという感じです。
メタデータを張り替える
PDFtkの出力結果はタイトルや作者、ブックマークなどのメタデータが消えているため、その情報をmain.pdfから抽出してmain_new.pdfに貼り付けます。
これもPDFtkを用いて以下のように行います。
$ pdftk main.pdf dump_data_utf8 output main.info
$ pdftk main_new.pdf update_info_utf8 main.info output main_new_meta.pdf
*_utf8ではなくdump_dataとupdate_infoでも可能ですが、非ASCII文字が含まれる場合には*_utf8を使用することでUTF-8によるエンコードで出力されます。
参考
この記事に書いた使い方に限らず、PDFtkはPDFの結合、分割、回転など様々な操作が可能です。詳しい使い方は pdftk -h
を確認してください。
Discussion