はじめに
ディスコンになったICのデータシートと後継型番のデータシートがほぼ同じに見えた&目grepにも限界があるので、差分をとりたくなった。
調べてみるとMacではAdobe Acrobatを使うかdiff-pdfを使う方法があるらしい。
個人的にAdobe製品は極力使いたくないのでdiff-pdfを使ってみることにした。
環境
macOS Catalina 10.15.6
XQuartz 2.7.11
diff-pdf 0.4.1_4
インストール
-
XQuartz
以下から落として入れるだけ
https://www.xquartz.org/ -
diff-pdf
brewで入れるbrew install diff-pdf
使い方
-
差分をターミナル上で表示する場合
diff-pdf -v a.pdf b.pdf
-
差分をファイルに出力する場合
diff-pdf --output-diff=output.pdf a.pdf b.pdf
-
差分をファイルに出力しないでビューワーを起動する場合
diff-pdf --view a.pdf b.pdf
オプション
-
-h, --help
ヘルプを表示する -
-v, --verbose
差分をターミナル上で表示する -
-s, --skip-identical only output pages with differences
--output-diff=と併用で差分のみをファイルに出力する -
-m, --mark-differences additionally mark differences on left side
出力の左端にどの行に差分があるか表示する -
--output-diff= output differences to given PDF file
出力を指定したファイル名で保存する -
--channel-tolerance= consider channel values to be equal if within specified tolerance
差分があると判定するしきい値を0〜255の範囲で指定出来る
0がデフォルトで完全一致じゃなければ差分判定される -
--view view the differences in a window
結果
差分を確認したいのはLEDドライバICであるMAX7219CNGとMAX7219CNG+のデータシート
ひとまず差分がどれだけあるか確かめてみたが、全ページが差分判定となってしまった
diff-pdf -v MAX7219CNG.pdf MAX7219CNG+.pdf
// 出力
page 0 differs
page 1 differs
page 2 differs
〜中略〜
page 16 differs
page 17 differs
18 of 18 pages differ.
とりあえず100でしきい値を設定してみると2ページのみ差分判定となった
diff-pdf -v --channel-tolerance=100 MAX7219CNG.pdf MAX7219CNG+.pdf
// 出力
page 13 differs
page 17 differs
2 of 18 pages differ.
差分のみファイルに出力して見てみるといい感じに差分が見られる
diff-pdf -v -s --output-diff=output.pdf --channel-tolerance=100 MAX7219CNG.pdf MAX7219CNG+.pdf
open output.pdf