注目いただきたいのはChromeでPDFファイルを開いて色を付けているところです。PDFをhtmlに変換するソフトがあるんですね。それを通してみたらそのままいけちゃいました。サーバーでそのソフトを動かしてPDFをhtml化してそのままサーバーに出力されたhtmlをChromeで読み込む、それをpopilizerが処理するという流れでやれそうです。面白かったのは、PDF変換後のHTMLはレイアウトを崩さないようにするためにテクニカルな処理がなされているのですが、特にチューンすることなくそのままpopilizerが使えてしまえました(<ーそんなに美味しい話はなかったです。ただ、少し手を加えたら満足する着色ができるようになりました。PDFがふつうのHTMLと違って困るのは文章が全てつながってしまうことです。これは構文解析をする上で厳しいものがあります。その辺り上手く分割する必要があるのですが、、という問題です。)。悪くない流れですね。論文とかそのたぐいはペイント読書が最も得意とする領域なので使えるコンテンツが増えてきました。poppyS(PDFリーダー)が既にあるのですが、環境構築が厳しかったりしたのでpopilizerもPDF対応できたのがでかいです(★1)。
PDFのフル対応は技術書典11までに間に合わせたいですね。PDFで配布されてますからね、書物が。前回も一応自作PDFリーダー(poppyS)を作るんだというネタでやってましたがブラウザ拡張のほうがしきい値が低い。これはぜひ間に合わせないとだ。
(★1)何より、iPadで読んでみたい。先日、家族がiPad Pro(2021)を買ってきました。M1が載っているやつです。popilizerもSafariのショートカットで動くのですが試したら爆速。あれを見たらPDFも読んでみたくなった。爆速具合については後ほど動画でもアップします。これまでレファレンスとしてモバイルはpixel3aで試してましたが遅すぎでした。このおかげで速度面でのチューニングが進んだのは事実ですが、そろそろテクニカルなチューニングの領域に入ってました。例えばDOMをどこまでfetchさせるかとか着色をどの範囲までやるかとかそういうのです。バグったりする可能性大だったのでこれで打ち切れて安心しています。流石M1ですね。iPad Pro(M1)がハード面の進化に対してそれを必要とするソフトがないと揶揄されたりしますが、こういうインタラクティブにHTMLと格闘する系のソフト、タブレットで使いたくなるソフトにとってはM1はまさに願ったりかなったりです。
(★2)今はiOSではなくAndoroid系で実験しています。SafariでローカルファイルHTMLファイルが開けないのが決定的でした(探したけどやり方が見つからなかった)(★3)。アップルの開発者登録とかそういうのをやればできるんでしょうか?でもそのフェーズでないと考えているので気楽にやれるAndroidで進めています。こちらだとKiwiBrowser(Chromium系ブラウザ)でローカルファイルを読めます。HuaweiのMatepad Proを購入しました。Qoo 10というサイトで掘り出し物5万円で買えました。いい感じでPDFが読めています。2パターン考えていて、
- サーバーからはPDFをHTML化したものを返しそれをローカルHTMLとして保存、保存したものを読み込ませてそのDOM要素(各ページ)をサーバーに送る、構文解析したものを戻す、色を付けられる
- サーバーからはPDFをHTML化、かつpopilizeしたものを返しローカルHTMLとして保存、保存したものを読み込ませるがサーバーとの通信は不要(すでにpopilizeされているから)
といった具合です。
使い分けとして、、
前者は数ページくらいの軽いPDF、例えば公文書の速報とか短い論文とか、そういうのをやる際に良さそうです。
後者はページ数が大きい教科書とかそういうのに使うべきと見てます。繰り返し読むからもう最初から処理しちゃったほうがいい、という感じで。既に私はそのように運用しています。
(★3)実はローカルファイル自体は開けています。SafariでpopilizerをShortcut経由で起動、その中でファイルを読み込ませるダイアログを開いてそこからHTMLを読み込み、DOMツリーを置換、まではやれたのですが、、何故か速度が激ノロなんですよね。原因は特定できてないのですが、初回読み込み時(こちらは速い)はブラウザがなにか最適化を走らせてて、途中でDOM要素を追加するとそれがかからないとかあるかもしれません。なのでこの路線は現状はペンディングしています。いずれ落ち着いたら再開します。