LoginSignup
1
1

More than 3 years have passed since last update.

fbterm で PDF を眺める

Last updated at Posted at 2021-01-11

fbterm で PDF を眺める

w3m (w3m-img) はインライン画像を表示することができます. jfbterm の上で. と思っていたら最近は fbterm の上でも表示できるようです. ありがたい.

ranger はそんな w3m の力を借りて画像のプレビューができます. 設定ファイルを少しいじれば pdf や動画ファイルのプレビューもできます.

sc1.png
sc2.png

ということは

ranger は PDF を表示できるので私たちにもきっとできます. まずは PDF を画像にします.

ranger はどのようにして PDF をプレビューしているのでしょうか. その答えは $HOME/.config/ranger/scope.sh にあります. そんなファイルがない場合は ranger --copy-config=all してください. 162 行目辺りに次のようにあります:

$HOME/.config/ranger/scope.sh (162)
## PDF
application/pdf)
    pdftoppm -f 1 -l 1 \
    ...

なるほど PDF を画像に変換するには pdftoppm を使うようです. 詳しい使い方は man pdftoppm で得られます. 得てください.

PDF を画像に変換するコマンド
$ pdftoppm -png PDFファイル名 画像ファイルのプレフィクス

画像 (と化した PDF) を表示する

w3m はインライン画像を表示できるので w3m のために HTML を書きます. しかし彼は css を読めないことに気をつけてください. HTML 4.01 Transitional 以下で書きましょう.

w3m のための HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>ほげほげ.pdf</TITLE>
</HEAD>
<BODY>
<CENTER>
<DIV><IMG SRC="path/to/image/page-01.png" WIDTH="80%"></DIV>
<DIV><IMG SRC="path/to/image/page-02.png" WIDTH="80%"></DIV>
...
</CENTER>
</BODY>
</HTML>

そしてこの HTML を w3m で読めば画像に変換された PDF を眺めることができます.

test.gif

面倒なんじゃい

私たちはなんとか PDF を眺めることができました. しかし PDF を眺めたいと思うたびにこの操作を行うことはとても面倒です. 私たちにできる大抵のことはコンピュータにもできます.

次のようなシェルスクリプトを書きます. ファイル名は PDF-wo-Miru (PDF を見る) から pdfm.sh です.

pdfm.sh

#!/bin/sh

if [ $# -ne 1 ]; then
    echo "Usage: `basename $0` pdf-file"
    exit 1
fi

TEMPDIR=`mktemp -d`
TEMPBASE="$TEMPDIR/pdfm"
TEMPHTML=`tempfile -s.html`

pdftoppm -png $1 $TEMPBASE

cat << EOF > $TEMPHTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>$1</TITLE>
</HEAD>
<BODY>
<CENTER>
EOF

find $TEMPDIR/*.png | sort | while read line
do
    echo "<DIV><IMG SRC=\"$line\" WIDTH=\"80%\"></DIV>" >> $TEMPHTML
done

cat << EOF >> $TEMPHTML
</CENTER>
</BODY>
</HTML>
EOF

w3m $TEMPHTML

rm -rf $TEMPHTML $TEMPDIR

完成したら make pdfm と実行して,生成された pdfm$HOME/bin/ あたりにぶち込んで置きましょう.


おわりに

おわりです.

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1