« 運動公園の変化、木が少なくなった | トップページ | 随分と久しぶりに、二千円札を手に入れた »

2015年10月14日 (水)

Python:青空文庫を読むスクリプト PyBunko を見つけた

2015-10-14(水)晴れ/曇り

 小説テキストファイルを読むためにPyBookシリーズを作成したり、ソニーのブックリーダを購入したりしていましたが、その間に、ちょっと面白いスクリプトを見つけました。それは、青空文庫を読むためのスクリプトです。Pythonスクリプトの記法の参考書として、いつもお世話になっている「移動型Python」サイトに載っていました。オリジナルの詳細やスクリーンショットなどは下記を見ていただくことにします。

 移動型Python アプリケーションページ

 さて、何が一番興味深いかというと、通常のフォントで縦書き表示が行われているということです。私のPyBookViewer(PyBookViewerの先日の記事)は、普通にテキスト表示しますので横書きになります。それを、90度左回転処理したフォントを使うことで、(無理矢理)縦書きに見せています。弱点は、機種によってはシステムフォントにしないと使用できないので、他のアプリやメニューでも文字が回転して表示されます。

 PyBunkoは普通のフォントを使い、1文字ずつ表示場所を決めて表示させて、縦に配置してゆきます。これで、縦書きに見せています。なかなか、凄いアイデアだと思いました。

Scym0384a  Scym0385a
(左)PyBookViewer        (右)PyBunko

上図は、両方ともノーマルフォントの場合です。
PyBunkoは通常のフォントを使用しますから、フォントを細工したり、システムフォントを入れ換えたりとかの手間が要らず簡単です。

 さて、私のメインの対象は青空文庫ではないので、このままでは使えませんでした。まあ、対象が違うのですから仕方がないのですが、なんとも残念です。ということで、自分のデータで動くようにしたらどうかなるか、試してみました。自分用にソースを改変してみることについては、作者の方にメール中です。

 いつもの、スクリプトを弄る方が目的になってしまう悪い癖が出て、改変内容は 以下のようになりました。
----------------------------------------------------
(1)青空文庫以外の一般テキストファイルも対象にした。
(2)余分に改行されることがあるのを対策した。
(3)文字コードをShift-jisのみでなく、Shift-JIS/UTF-8/UTF-16対応にした。
(4)文字コードを自動判定するようにした。
(5)設定ファイルでデフォルト値を変えられるようにした。
  (フォント、対象ディレクトリ、画面下部のマージン、青空文庫ファイルの
   ルビ削除有無)
(6)Python2.0.0で、タッチ操作を可能にした。
(7)処理内部コードをunicodeのみにした。 
(8)回転表示させる記号を追加した(『』、・・・ など)。
(9)ブックマークがない場合、ブックマークDBを削除する(肥大化防止)。
(10)ページ番号でのジャンプ機能を追加した。
(11)ファイル終端に【文書終】を表示するようにした。
(12)検索機能を追加した(検索、次を検索、すべて検索、すべて検索再)。
-----------------------------------------------------
 こうやってみると、かなりの改変になりました。テキスト表示画面は上の画像のとおりですが、他のスクリーンショットも載せてみます。

Scym0386a  Scym0387a

(左)メニュー画面です。文字コードは自動判定にしましたが、いざというときに文字コードを固定出来るようにしています。
(右)検索 → すべて検索 で、各々の節の題名の頭にある■を検索したところです。目次代わりに使えますし、選択したところにジャンプする事が出来ます。

 これで、自分が対象にしていた小説ファイルを読むことが出来ます。現状では、あくまで自分のファイル用のテストという位置づけなので、ソースは掲載できません。
 実際に本を読むよりも改造ばかりです。
 
 

|

« 運動公園の変化、木が少なくなった | トップページ | 随分と久しぶりに、二千円札を手に入れた »

Python」カテゴリの記事

アプリケーション」カテゴリの記事

携帯電話」カテゴリの記事

書籍・雑誌」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/513620/62401220

この記事へのトラックバック一覧です: Python:青空文庫を読むスクリプト PyBunko を見つけた:

« 運動公園の変化、木が少なくなった | トップページ | 随分と久しぶりに、二千円札を手に入れた »