\[ %汎用 \newcommand{\ctext}[1]{\raise0.2ex\hbox{\textcircled{\scriptsize{#1}}}} %数学 %汎用 \newcommand{\as}{{\quad\textrm{as}\quad}} \newcommand{\st}{{\textrm{ s.t. }}} \newcommand{\set}[2]{\left\{\left.#1\;\right|\;#2\right\}} \newcommand{\naturalNumbers}{\mathbb{N}} \newcommand{\integers}{\mathbb{Z}} \newcommand{\rationalNumbers}{\mathbb{Q}} \newcommand{\realSpace}{\mathbb{R}} \newcommand{\complexSpace}{\mathbb{C}} \newcommand{\field}{\mathbb{F}} \newcommand{\func}[2]{{#1}\left({#2}\right)} \newcommand{\argmax}{\mathop{\textrm{arg\,max}}} %集合論 \newcommand{\range}[2]{\{#1,\cdots,#2\}} \renewcommand{\complement}{\mathrm{c}} \newcommand{\ind}[2]{\mathbbm{1}_{#1}\left(#2\right)} \newcommand{\indII}[1]{\mathbbm{1}\left\{#1\right\}} %数論 \newcommand{\abs}[1]{\left|#1\right|} \newcommand{\combi}[2]{{_{#1}\mathrm{C}_{#2}}} \newcommand{\perm}[2]{{_{#1}\mathrm{P}_{#2}}} %解析学 \newcommand{\cl}[1]{\operatorname{cl}#1} \newcommand{\Img}[1]{\operatorname{Img}\left(#1\right)} \newcommand{\dom}[1]{\operatorname{dom}\left(#1\right)} \newcommand{\norm}[1]{\left\|#1\right\|} \newcommand{\floor}[1]{\left\lfloor#1\right\rfloor} \newcommand{\ceil}[1]{\left\lceil#1\right\rceil} \newcommand{\expo}[1]{\exp\left(#1\right)} \newcommand{\sinc}{\mathop{\textrm{sinc}}} \newcommand{\GammaFunc}[1]{\Gamma\left(#1\right)} %逆三角関数 \newcommand{\asin}[1]{\operatorname{Sin}^{-1}{#1}} \newcommand{\acos}[1]{\operatorname{Cos}^{-1}{#1}} \newcommand{\atan}[1]{\operatorname{{Tan}^{-1}}{#1}} \newcommand{\atanEx}[2]{\atan{\left(#1,#2\right)}} %微分 \newcommand{\deriv}[3]{\frac{\operatorname{d}^{#3}#1}{\operatorname{d}{#2}^{#3}}} \newcommand{\derivLong}[3]{\frac{\operatorname{d}^{#3}}{\operatorname{d}{#2}^{#3}}#1} \newcommand{\partDeriv}[3]{\frac{\operatorname{\partial}^{#3}#1}{\operatorname{\partial}{#2}^{#3}}} \newcommand{\partDerivLong}[3]{\frac{\operatorname{\partial}^{#3}}{\operatorname{\partial}{#2}^{#3}}#1} \newcommand{\partDerivIIHetero}[3]{\frac{\operatorname{\partial}^2#1}{\partial#2\operatorname{\partial}#3}} %積分 \newcommand{\integ}[4]{\int_{#1}^{#2}{#3}\mathrm{d}#4} \newcommand{\LebInteg}[4]{\int_{#1} {#2} {#3}\left(\mathrm{d}#4\right)} %複素解析 \renewcommand{\Re}[1]{{\operatorname{Re}{\left(#1\right)}}} \renewcommand{\Im}[1]{{\operatorname{Im}{\left(#1\right)}}} \newcommand{\Arg}[1]{\operatorname{Arg}{\left[{#1}\right]}} \newcommand{\Log}[1]{\operatorname{Log}{#1}} %ラプラス変換 \newcommand{\LPLC}[1]{\operatorname{\mathcal{L}}\left[#1\right]} \newcommand{\ILPLC}[1]{\operatorname{\mathcal{L}}^{-1}\left[#1\right]} %線形代数 \newcommand{\bm}[1]{{\boldsymbol{#1}}} \newcommand{\Span}[1]{\operatorname{span}\left[#1\right]} \newcommand{\Ker}[1]{\operatorname{Ker}\left(#1\right)} \newcommand{\rank}[1]{\operatorname{rank}\left(#1\right)} \newcommand{\inprod}[2]{\left\langle#1,#2\right\rangle} \newcommand{\matEntry}[3]{#1\left[#2\right]\left[#3\right]} \newcommand{\matPart}[5]{#1\left[#2:#3\right]\left[#4:#5\right]} \newcommand{\diag}[1]{\operatorname{diag}\left(#1\right)} \newcommand{\tr}[1]{\operatorname{tr}{#1}} %ベクトル %単位ベクトル \newcommand{\vix}{\bm{i}_x} \newcommand{\viy}{\bm{i}_y} \newcommand{\viz}{\bm{i}_z} %確率論 \newcommand{\PDF}[2]{\operatorname{PDF}\left[#1,\;#2\right]} \newcommand{\Ber}[1]{\operatorname{Ber}\left(#1\right)} \newcommand{\Beta}[2]{\operatorname{Beta}\left(#1,#2\right)} \newcommand{\GammaDist}[2]{\operatorname{Gamma}\left(#1,#2\right)} \newcommand{\cind}[2]{\ind{#1\left| #2\right.}} %条件付き指示関数 \renewcommand{\Pr}[1]{\operatorname{Pr}\left[#1\right]} \newcommand{\cPr}[2]{\Pr{#1\left| #2\right.}} \newcommand{\E}[2]{\operatorname{E}_{#1}\left[#2\right]} \newcommand{\cE}[3]{\E{#1}{\left.#2\right|#3}} \newcommand{\Var}[2]{\operatorname{Var}_{#1}\left[#2\right]} \newcommand{\Cov}[2]{\operatorname{Cov}\left[#1,#2\right]} \newcommand{\CovMat}[1]{\operatorname{Cov}\left[#1\right]} %グラフ理論 \newcommand{\neighborhood}{\mathcal{N}} %プログラミング \newcommand{\plpl}{\mathrel{++}} \newcommand{\pleq}{\mathrel{+}=} \newcommand{\asteq}{\mathrel{*}=} \]

Firefox 上の pdf.js で色反転

目的

ブラウザでPDFを色反転して表示したい。こんな風に。

2019_10_14_2321.png
デフォルトの状態。眩しくて目に悪い。
2019_10_14_2322.png
色反転したイケてる状態

原理

開発者ツールを開き、コンソールで以下のスクリプトを実行する。

thumbnailView.style.filter += 'invert(1)';
viewer.childNodes.forEach(element => {
	element.style.filter += 'invert(1)';
});

ON/OFFスイッチングに対応させ、ブックマークレットに登録する

実行するたびにON/OFFを切り替えるには、原理的には次のようにすればよい。

if (!thumbnailView.style.filter.includes('invert(1)')) {
	thumbnailView.style.filter += 'invert(1)';
	viewer.childNodes.forEach(element => {
		element.style.filter += 'invert(1)';
	});
} else {
	thumbnailView.style.filter = thumbnailView.style.filter.replace('invert(1)', '');
	viewer.childNodes.forEach(element => {
		element.style.filter = element.style.filter.replace('invert(1)', '');
	});
}

しかし一々開発者ツールを開いてスクリプトを書き込んで実行するのは面倒だから、ブックマークレットに登録してクリック一発で実行できるようにしよう。 メニューバーの「ブックマーク」 -> 「ブックマークツールバー」の項目(ブックマークツールバーが空の場合は空のアイテムが1つ出る)の中で右クリック -> 「新しいブックマーク」 で現れる画面の「URL」の項目に次のコードを記述すればよい。

javascript:(function() {
	if (!thumbnailView.style.filter.includes('invert(1)')) {
		thumbnailView.style.filter += 'invert(1)';
		viewer.childNodes.forEach(element => {
			element.style.filter += 'invert(1)';
		});
	} else {
		thumbnailView.style.filter = thumbnailView.style.filter.replace('invert(1)', '');
		viewer.childNodes.forEach(element => {
			element.style.filter = element.style.filter.replace('invert(1)', '');
		});
	}
})();

Firefoxのウィンドウの ハンバーガーアイコン -> 「カスタマイズ」でブックマークツールバーの項目をツールバーに移動させることができる。 ブックマークツールバーを普段利用していない人は、そのようにしてスペースを節約するとよい。 ファビコンを設定してブックマークレットの名前を空にしてさらにスペースを節約するとよい。

2019_10_14_2238.png

ブックマークレットにファビコンを設定する方法はここを参照。 使ったアイコンはこれ

関連記事
スポンサーサイト



コメント

非公開コメント

プロフィール

motchy

Author:motchy
・組込
・画像処理
・RPA

@神奈川

検索フォーム