Should have been in last commit

This commit is contained in:
Kovid Goyal 2007-06-10 02:21:52 +00:00
parent de0596066d
commit e3332234f1

View File

@ -12,7 +12,11 @@
## You should have received a copy of the GNU General Public License along ## You should have received a copy of the GNU General Public License along
## with this program; if not, write to the Free Software Foundation, Inc., ## with this program; if not, write to the Free Software Foundation, Inc.,
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import pkg_resources, sys, os from libprs500.ebooks.lrf.fonts.prs500 import tt0419m_
from libprs500.ebooks.lrf.fonts.prs500 import tt0011m_
import sys, os
from libprs500 import iswindows
from libprs500.ptempfile import PersistentTemporaryFile
try: try:
from PIL import ImageFont from PIL import ImageFont
@ -22,19 +26,23 @@ except ImportError:
''' '''
Default fonts used in the PRS500 Default fonts used in the PRS500
''' '''
from libprs500.ebooks.lrf.fonts.prs500 import tt0003m_, tt0011m_, tt0419m_
FONT_MAP = { FONT_MAP = {
'Swis721 BT Roman' : 'prs500/tt0003m_.ttf', 'Swis721 BT Roman' : tt0003m_,
'Dutch801 Rm BT Roman' : 'prs500/tt0011m_.ttf', 'Dutch801 Rm BT Roman' : tt0011m_,
'Courier10 BT Roman' : 'prs500/tt0419m_.ttf' 'Courier10 BT Roman' : tt0419m_,
} }
FONT_FILE_MAP = {}
def get_font_path(name): def get_font_path(name):
name = name.replace('/', os.path.sep) if FONT_FILE_MAP.has_key(name) and os.access(FONT_FILE_MAP[name].name, os.R_OK):
if hasattr(sys, 'frozen'): return FONT_FILE_MAP[name].name
src = os.path.dirname(sys.executable)+os.path.sep+'fonts'+os.path.sep+name p = PersistentTemporaryFile('.ttf', 'font_')
else: p.write(FONT_MAP[name].font_data)
src = pkg_resources.resource_filename('libprs500.ebooks.lrf.fonts', name) p.close()
return src FONT_FILE_MAP[name] = p
return p.name
def get_font(name, size, encoding='unic'): def get_font(name, size, encoding='unic'):
@ -46,6 +54,6 @@ def get_font(name, size, encoding='unic'):
@param manager: A dict that will store the PersistentTemporary @param manager: A dict that will store the PersistentTemporary
''' '''
if name in FONT_MAP.keys(): if name in FONT_MAP.keys():
path = get_font_path(FONT_MAP[name]) path = get_font_path(name)
return ImageFont.truetype(path, size, encoding=encoding) return ImageFont.truetype(path, size, encoding=encoding)