[Mac] コマンドラインでウェブページを PDF に変換する:wkhtmltopdf(2)

コマンドラインでウェブページを PDF に変換する wkhtmltopdf について書いた。

[Mac] コマンドラインでウェブページを PDF に変換する:wkhtmltopdf – with a Christian Wife
https://wacw.cf/2020/04/15/convert-webpage-to-pdf-via-commandline/

wkhtmltopdf は普通に変換すると、以下のように毎回出力する PDF のファイル名を指定しなければいけない。

$ wkhtmltopdf https://google.com google.pdf

これを、自動で元のウェブページのタイトルにしたい。その方法を発見したのでメモ。

(1)wkhtmltopdf をインストールする。

[Mac] コマンドラインでウェブページを PDF に変換する:wkhtmltopdf – with a Christian Wife
https://wacw.cf/2020/04/15/convert-webpage-to-pdf-via-commandline/

(2)ExifTool をインストールする。

ExifTool by Phil Harvey
https://exiftool.org/

後は以下のコマンドを実行するだけだ。

$ wkhtmltopdf https://google.com temp.pdf && exiftool '-Title<${Title;s/\//|/}' temp.pdf -overwrite_original &#038;&#038; exiftool '-filename<$Title.%e' temp.pdf -overwrite_original

これは3つのコマンドから構成されている。

1つ目のコマンドで ウェブページから PDF を作成。このとき PDF のメタデータにウェブページのタイトルが記入される。

$ wkhtmltopdf https://google.com temp.pdf

2つ目のコマンドでタイトルから / を | に置換する。なぜなら次の3つ目のコマンドで / があるとよけいなディレクトリができてしまうからそれを防ぐために | に置換する。

$ exiftool '-Title<${Title;s/\//|/}' temp.pdf -overwrite_original

3つ目のコマンドでメタデータのタイトルを元にファイル名を変更する。

$ exiftool '-filename<$Title.%e' temp.pdf -overwrite_original

参考:
ExifTool example commands
https://ninedegreesbelow.com/photography/exiftool-commands.html

Automatically renames files with correct file extention in bulk - Stack Overflow
https://stackoverflow.com/questions/39544276/automatically-renames-files-with-correct-file-extention-in-bulk

FileName and Directory tags
https://exiftool.org/filename.html

Batch rename to filename + xmp:title (iptc title)
https://exiftool.org/forum/index.php?topic=6745.0

Exiftool - modify metadata format - Stack Overflow
https://stackoverflow.com/questions/44403351/exiftool-modify-metadata-format

【Linuxコマンド】sedで文字列を置換する方法 | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイト
https://www.sejuku.net/blog/54595