多くの PDF は白地に黒文字で、夜間にディスプレイで読むのは目に優しくないです。そこで本記事ではPDFをダークモードで読む方法をまとめます。
Windows
SumatraPDF
Adobe Reader にもアクセシビリティから色反転の設定がありますがちょっと面倒です. それよりも SumatraPDF が実は色反転の機能を持っているので, これをおすすめします (たしかストア版は非対応だったはず). コマンドラインからもしくはショートカットにオプション -invert-colors
を設定します.
ついでに詳細設定から FixedPageUI
の GradientColors
を #3a3a3a
程度に設定し背景色を濃くしておくと快適です. 私はスタートメニューのタイルに SumatraPDF (通常) と SumatraPDF (ダークモード) のふたつのショートカットを設定しました. なお SumatraPDF は同時起動できないため, ライトモードとダークモードが共存することはできません. また, ライトモードからダークモードに切り替えようと思うと一旦 SumatraPDF を終了しダークモードで起動しなおすという手間が発生します.
ブラウザ
Chromium 系のブラウザ (Chrome および Chromium Edge で動作確認しました) を使用しているのなら, stylus をインストールし, 次のスタイルを PDF (正規表現 .*\.pdf
) に適用してください.
/* Chromium 用 PDF ダークモード */
embed {
filter: invert(1) hue-rotate(180deg);
}
ついでに stylus で任意のページに強制ダークモードを適用するといっそう快適です. 気が向いたら別記事にするかもしれません.
なお Firefox の場合 PDF への WebExtention のアクセスがなぜか禁止されており, bugzilla で要望が出ているものの開発者は積極的には対応する気がなさそうです. なのでこの方法は使えません. 一方, pdf.js にダークモードをつくる issue が立っているのですが, こちらもまったく対応される気配がありません.
2021-03-16 追記 こちらのサイトに従って userContent.css
を作成すれば Firefox でもダークモードが実現できます (Win10 v20H2, Firefox 86で確認). ただしデフォルトでは普通に表示し必要に応じてダークモードに切り替える, という運用をしたいので, CSS prefers color scheme を使用して (ついでに hue rotate もつけて)
@media (prefers-color-scheme: dark) {
#viewerContainer > #viewer .page > .canvasWrapper > canvas {
filter: invert(1) hue-rotate(180deg);
}
}
とするのはいかがでしょうか. もちろん stylus で一括制御できる Chromium 系の方が便利なのですが, これなら許容範囲かな, と.
Android
Adobe Acrobat Reader がダークモードを備えているのでこれを使えばバッチリです.