Pythonでのプレゼンツール
Discreet Blog 27.9.2006: Bruce the Presentation Tool で知った bruce 。
すごい気になってて是非とも日本語を表示したいなとと思って色々探したり試したりし てみたところ、単にpygameで日本語を表示するやり方と一緒で良かったみたい。
試した環境は、WindowsXP+ActivePython2.4.3+Pygame-1.7.1(windows用バイナリ)です。 本当はcygwinで試したかったんだけど、cygwinにsourceでpygameをインストールすると sdlライブラリを別途インストールしないといけないんだけどちょっと大変そうだった ので、sdlライブラリの含まれているwindows用バイナリを使うことにしました。
で、 example.py のファイルの文字コードをutf-8とした場合には、下記のように することで日本語表示できました。
$ diff -c example.py.org example.py
*** example.py.org Fri Sep 29 01:20:18 2006
--- example.py Fri Sep 29 01:20:04 2006
***************
*** 1,7 ****
from bruce.config import Config
! Config.text_font = 'python_games/Vera.ttf'
! Config.bold_font = 'python_games/VeraBd.ttf'
! Config.code_font = 'python_games/VeraMono.ttf'
from bruce.main import main
from bruce.pages import *
--- 1,11 ----
+ # -*- coding: utf-8 -*-
+
from bruce.config import Config
! import os
! Config.text_font = os.path.join(os.environ['WINDIR'], 'Fonts', 'msgothic.ttc')
! Config.title_font = os.path.join(os.environ['WINDIR'], 'Fonts', 'msgothic.ttc')
! Config.bold_font = os.path.join(os.environ['WINDIR'], 'Fonts', 'msgothic.ttc')
! Config.code_font = os.path.join(os.environ['WINDIR'], 'Fonts', 'msgothic.ttc')
from bruce.main import main
from bruce.pages import *
***************
*** 24,29 ****
--- 28,39 ----
for page in opening_pages.split('---'):
pages.append(TextPage(page))
+ pages.append(TextPage(u'''
+ =日本語
+
+ - 表示できるかな?
+ - うへへへへへ
+ '''))
pages.append(InterpreterPage('Zen of Python', 'import this'))
pages.append(ScratchPadInterpreterPage('Draw to the Screen', '''
ファイルの文字コードをshift_jisにした場合は、
pages.append(TextPage(unicode('日本語','shift_jis')))
とかしたらいい。
あと、このままだとファイルを表示するCodeFilePageで文字化けしてしまうので 「C:\Python2.4\Lib\site-packages\bruce\codefile.py」を下記のように修正しました。
*** ../../../tmp/bruce-1.1.1/bruce/codefile.py Tue Dec 13 11:43:14 2005
--- codefile.py Thu Sep 28 19:58:55 2006
***************
*** 20,27 ****
class CodeFilePage(Page):
def __init__(self, title, file, bgcolour=Config.code_bgcolour,
! fgcolour=Config.code_fgcolour):
! self.pagetext = [line.rstrip() for line in open(file)]
self.title = title
self.fgcolour = fgcolour
self.bgcolour = bgcolour
--- 20,27 ----
class CodeFilePage(Page):
def __init__(self, title, file, bgcolour=Config.code_bgcolour,
! fgcolour=Config.code_fgcolour,file_encoding='utf8'):
! self.pagetext = [unicode(line,file_encoding).rstrip() for line in open(file)]
self.title = title
self.fgcolour = fgcolour
self.bgcolour = bgcolour
で、なんとなくは日本語も表示されるんだけど、ファイルが大きい場合は縮小して表示 するためにフォントサイズを小さくしている関係か、一部文字化けしている部分が残っ てる。まぁでもコードを記述したファイルにはもともとあんまり日本語書かないからと りあえず放置する方向で行こうかなと思ってます。
で、ちょっと使ってみた感想としては、インタープリタ表示や画像表示のできる高橋メ ソッドプレゼンツールって感じです。機会があったら使ってみよう。

