PDFリーダーでの正規表現検索

PDFリーダーでの正規表現検索

私は、そのミニマリスト的なアプローチが気に入っているので、zathura を使用していますが、これで問題が解決するのであれば、mupdf または他のものに切り替えることもできます。

PDF および EPUB ドキュメント内のすべての単語を最初から最後まで 1 つずつハイライト表示する必要があります。テキストに何らかの動きがあると、テキストに集中しやすくなります。私のアプローチは、すべての単語に一致する正規表現検索を実行することでしたが、zathura も mupdf も検索で正規表現をサポートしていません。これを行う方法はありますか?

私は zathura をフォークしようとしますが、正直に言うと、必要な機能を備えた別の最小限の Gnu/Linux 互換ドキュメント ビューアーがあるのであれば、それほどの時間を費やしたくはありません。また、  pdfgrep zathura で結果を強調表示するためのターミナル ツールを使用する方法があれば、それも役立ちます。

答え1

基本的なテキスト選択

によるザスーラのWikipediaページ:

Zathuraはテキストを検索し、テキストをプライマリX選択にコピーすることができます

これは、読みながらテキストを選択する機能が組み込まれていることを意味しますが、マウスが必要になる可能性があります (キーボード制御の選択のソリューションを見つけるのは難しいでしょう)。

どれくらいミニマリストが必要ですか?私はアトリル、やや軽量なフォークエビンス(GNOMEドキュメントビューア)。Atrilは、MATEデスクトップ(GNOME 2 の継続)。GTK+ に依存していますが、かなり軽量です。

もう一つの選択肢はXpdfアプリケーション。参照Wikipedia の PDF ソフトウェア一覧 § Linux および Unix

正規表現

私が知っている唯一の(使える)正規表現検索の実装は、次のようなコマンドラインツールを除いて、pdfgrepは、実際には Web ブラウザです。これはあまり使いやすくありませんが、Firefox での解決策は次のとおりです。Firefox で PDF を開き、開発者ツールの JavaScript コンソール (F12 または Ctrl+Shift+K) を開きます。次のコマンドを実行します。

» pdf = document.getElementById("viewer").innerText.replace(/[ \t]+/g, " ");
» function grep(what, context=100) { return pdf.match(RegExp(`[\\s\\S]{0,${context}}${what}[\\s\\S]{0,${context}}`), "img"); }
» grep("put your regex here")
» grep("get more context", 300)

バックスラッシュをエスケープする必要があることに注意してください。grepコマンドにはオプションの 2 番目の引数があり、各側に提供するコンテキストの文字数を指定します (デフォルト = 100)。

Chrome や PDF ビューアが組み込まれた他のブラウザは、かなり似ているはずですが、実際の PDF コンテンツがどの HTML オブジェクトに保持されているかを把握する必要があります ( id="viewer"Firefox の場合は 要素ですが、他のブラウザについてはわかりません。最悪の場合、document.bodyの代わりにを使用しますdocument.getElementById("viewer")。目次の項目と一致する場合があります)。

答え2

間違っていなければ、各単語を最初から最後まで選択するAdobe Acrobat Readerという関数があります。read out loud

関連情報