PDFファイルをtext形式に変換してPPvに表示する。変換にはpdftotextというコマンドラインツールを使用。 なぜこんなことをするかというと、EPWING形式の辞書を引くためです。
準備
Releases ・ oschwartz10612/poppler-windowsからRelease-23.07.0-0.zipをダウンロード。適当な場所に解凍する。
以下を編集して取込。pdftotextのパスは各自読み替えてください。
A_exec = { ; エイリアス pdftotext = D:\bin\poppler\Library\bin\pdftotext.exe } _Command = { ; ユーザコマンド・関数 pdftoppv = *string o,tempfile=%*temp(name,f) %: %Oi pdftotext -f %*arg(2) -l %*arg(2) -layout -nopgbrk "%*arg(1)" %so"tempfile" %: *ppv -utf8 %so"tempfile" -k *string i,pagenum=%*arg(2) %%: *string i,name="%*arg(1)" %%: *string i,tempfile=%so"tempfile" %%: *mapkey use,K_forpdftoppv pdftoppvnext = %Oi pdftotext -f %*calc("%si"pagenum"+1") -l %*calc("%si"pagenum"+1") -layout -nopgbrk %si"name" %si"tempfile" %: *ppv -utf8 -r -bootid:%*rightstr("%n", 1) %si"tempfile" -k *string i,pagenum=%*calc("%si"pagenum"+1") pdftoppvprev = %Oi pdftotext -f %*calc("%si"pagenum"-1") -l %*calc("%si"pagenum"-1") -layout -nopgbrk %si"name" %si"tempfile" %: *ppv -utf8 -r -bootid:%*rightstr("%n", 1) %si"tempfile" -k *string i,pagenum=%*calc("%si"pagenum"-1") pdftoppvjump = %Oi pdftotext -f %en %"移動するページ数" %${%si"pagenum"%} -l %${%si"pagenum"%} -layout -nopgbrk %si"name" %si"tempfile" %: *ppv -utf8 -r -bootid:%*rightstr("%n", 1) %si"tempfile" -k *string i,pagenum=%${%si"pagenum"%} } K_forpdftoppv = { ^LEFT ,*pdftoppvprev ^RIGHT ,*pdftoppvnext J ,*pdftoppvjump }
やり方
PDFファイルにカーソルをあわせて以下を実行する。第一引数にはファイルパスを、第二引数にはページ数を指定する。
*pdftoppv %FCDN,1
PPvには以下の操作が追加される。
- ^[←] 前のページ
- ^[→] 次のページ
- [J] 指定したページへ移動
おまけ:標準出力の場合
標準出力を利用する場合は以下のようになる。
A_exec = { ; エイリアス pdftotext = D:\bin\poppler\Library\bin\pdftotext.exe } _Command = { ; ユーザコマンド・関数 pdftoppv = *ppv "%*arg(1)" -esc:on -text -utf8 -document:"pdftotext -f %*arg(2) -l %*arg(2) -layout -nopgbrk %"%*arg(1)" - > %%si'TempFile'" -k *string i,pagenum=%*arg(2) %%: *mapkey use,K_forpdftoppv pdftoppvnext = *ppv -r -bootid:%*rightstr("%n", 1) %FCD -esc:on -text -utf8 -document:"pdftotext -f %*calc("%si"pagenum"+1") -l %*calc("%si"pagenum"+1") -layout -nopgbrk %%FCD - > %%si'TempFile'" -k *string i,pagenum=%*calc("%si"pagenum"+1") pdftoppvprev = *ppv -r -bootid:%*rightstr("%n", 1) %FCD -esc:on -text -utf8 -document:"pdftotext -f %*calc("%si"pagenum"-1") -l %*calc("%si"pagenum"-1") -layout -nopgbrk %%FCD - > %%si'TempFile'" -k *string i,pagenum=%*calc("%si"pagenum"-1") pdftoppvjump = *ppv -r -bootid:%*rightstr("%n", 1) %FCD -esc:on -text -utf8 -document:"pdftotext -f %en %"移動するページ数" %${%si"pagenum"%} -l %${%si"pagenum"%} -layout -nopgbrk %%FCD - > %%si'TempFile'" -k *string i,pagenum=%${%si"pagenum"%} } K_forpdftoppv = { ^LEFT ,*pdftoppvprev ^RIGHT ,*pdftoppvnext J ,*pdftoppvjump }
0 件のコメント:
コメントを投稿