mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-08-11 09:13:57 -04:00
Moved fonts access to new resource API
This commit is contained in:
parent
f9ff180347
commit
9bd19f734e
BIN
resources/fonts/liberation/LiberationMono-Bold.ttf
Normal file
BIN
resources/fonts/liberation/LiberationMono-Bold.ttf
Normal file
Binary file not shown.
BIN
resources/fonts/liberation/LiberationMono-BoldItalic.ttf
Normal file
BIN
resources/fonts/liberation/LiberationMono-BoldItalic.ttf
Normal file
Binary file not shown.
BIN
resources/fonts/liberation/LiberationMono-Italic.ttf
Normal file
BIN
resources/fonts/liberation/LiberationMono-Italic.ttf
Normal file
Binary file not shown.
BIN
resources/fonts/liberation/LiberationMono-Regular.ttf
Normal file
BIN
resources/fonts/liberation/LiberationMono-Regular.ttf
Normal file
Binary file not shown.
BIN
resources/fonts/liberation/LiberationSans-Bold.ttf
Normal file
BIN
resources/fonts/liberation/LiberationSans-Bold.ttf
Normal file
Binary file not shown.
BIN
resources/fonts/liberation/LiberationSans-BoldItalic.ttf
Normal file
BIN
resources/fonts/liberation/LiberationSans-BoldItalic.ttf
Normal file
Binary file not shown.
BIN
resources/fonts/liberation/LiberationSans-Italic.ttf
Normal file
BIN
resources/fonts/liberation/LiberationSans-Italic.ttf
Normal file
Binary file not shown.
BIN
resources/fonts/liberation/LiberationSans-Regular.ttf
Normal file
BIN
resources/fonts/liberation/LiberationSans-Regular.ttf
Normal file
Binary file not shown.
BIN
resources/fonts/liberation/LiberationSerif-Bold.ttf
Normal file
BIN
resources/fonts/liberation/LiberationSerif-Bold.ttf
Normal file
Binary file not shown.
BIN
resources/fonts/liberation/LiberationSerif-BoldItalic.ttf
Normal file
BIN
resources/fonts/liberation/LiberationSerif-BoldItalic.ttf
Normal file
Binary file not shown.
BIN
resources/fonts/liberation/LiberationSerif-Italic.ttf
Normal file
BIN
resources/fonts/liberation/LiberationSerif-Italic.ttf
Normal file
Binary file not shown.
BIN
resources/fonts/liberation/LiberationSerif-Regular.ttf
Normal file
BIN
resources/fonts/liberation/LiberationSerif-Regular.ttf
Normal file
Binary file not shown.
BIN
resources/fonts/prs500/tt0003m_.ttf
Normal file
BIN
resources/fonts/prs500/tt0003m_.ttf
Normal file
Binary file not shown.
BIN
resources/fonts/prs500/tt0011m_.ttf
Normal file
BIN
resources/fonts/prs500/tt0011m_.ttf
Normal file
Binary file not shown.
BIN
resources/fonts/prs500/tt0419m_.ttf
Normal file
BIN
resources/fonts/prs500/tt0419m_.ttf
Normal file
Binary file not shown.
@ -403,16 +403,15 @@ def prepare_string_for_xml(raw, attribute=False):
|
||||
return raw
|
||||
|
||||
if isosx:
|
||||
import glob, shutil
|
||||
fdir = os.path.expanduser('~/.fonts')
|
||||
try:
|
||||
if not os.path.exists(fdir):
|
||||
os.makedirs(fdir)
|
||||
if not os.path.exists(os.path.join(fdir, 'LiberationSans_Regular.ttf')):
|
||||
from calibre.ebooks.lrf.fonts.liberation import __all__ as fonts
|
||||
for font in fonts:
|
||||
l = {}
|
||||
exec 'from calibre.ebooks.lrf.fonts.liberation.'+font+' import font_data' in l
|
||||
open(os.path.join(fdir, font+'.ttf'), 'wb').write(l['font_data'])
|
||||
base = P('fonts/liberation/*.ttf')
|
||||
for f in glob.glob(base):
|
||||
shutil.copy2(f, fdir)
|
||||
except:
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
|
@ -1,7 +1,6 @@
|
||||
__license__ = 'GPL v3'
|
||||
__copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
|
||||
import os
|
||||
from calibre.ptempfile import PersistentTemporaryFile
|
||||
|
||||
try:
|
||||
from PIL import ImageFont
|
||||
@ -22,52 +21,40 @@ FONT_MAP = {
|
||||
}
|
||||
|
||||
LIBERATION_FONT_MAP = {
|
||||
'Swis721 BT Roman' : 'LiberationSans_Regular',
|
||||
'Dutch801 Rm BT Roman' : 'LiberationSerif_Regular',
|
||||
'Courier10 BT Roman' : 'LiberationMono_Regular',
|
||||
'Swis721 BT Roman' : 'LiberationSans-Regular',
|
||||
'Dutch801 Rm BT Roman' : 'LiberationSerif-Regular',
|
||||
'Courier10 BT Roman' : 'LiberationMono-Regular',
|
||||
}
|
||||
|
||||
SYSTEM_FONT_MAP = {}
|
||||
for key, val in LIBERATION_FONT_MAP.items():
|
||||
SYSTEM_FONT_MAP[key] = SYSTEM_FONT_PATH + val.replace('_', '-') + '.ttf'
|
||||
|
||||
FONT_FILE_MAP = {}
|
||||
|
||||
SYSTEM_FONT_MAP = {}
|
||||
for key, val in LIBERATION_FONT_MAP.items():
|
||||
SYSTEM_FONT_MAP[key] = SYSTEM_FONT_PATH + val + '.ttf'
|
||||
|
||||
def get_font_path(name):
|
||||
if FONT_FILE_MAP.has_key(name) and os.access(FONT_FILE_MAP[name].name, os.R_OK):
|
||||
return FONT_FILE_MAP[name].name
|
||||
|
||||
if FONT_FILE_MAP.has_key(name) and os.access(FONT_FILE_MAP[name], os.R_OK):
|
||||
return FONT_FILE_MAP[name]
|
||||
# translate font into file name
|
||||
fname = FONT_MAP[name]
|
||||
for m, s in ((FONT_MAP, 'prs500'), (LIBERATION_FONT_MAP, 'liberation')):
|
||||
fname = m[name]+'.ttf'
|
||||
|
||||
# first, check configuration in /etc/
|
||||
etc_file = os.path.join(os.path.sep, 'etc', 'calibre', 'fonts', fname + '.ttf')
|
||||
if os.access(etc_file, os.R_OK):
|
||||
return etc_file
|
||||
# first, check configuration in /etc/
|
||||
etc_file = os.path.join(os.path.sep, 'etc', 'calibre', 'fonts', fname)
|
||||
if os.access(etc_file, os.R_OK):
|
||||
return etc_file
|
||||
|
||||
# then, try calibre shipped ones
|
||||
try:
|
||||
try:
|
||||
font_mod = __import__('calibre.ebooks.lrf.fonts.prs500', {}, {},
|
||||
[fname], -1)
|
||||
getattr(font_mod, fname)
|
||||
except (ImportError, AttributeError):
|
||||
font_mod = __import__('calibre.ebooks.lrf.fonts.liberation', {}, {},
|
||||
[LIBERATION_FONT_MAP[name]], -1)
|
||||
p = PersistentTemporaryFile('.ttf', 'font_')
|
||||
p.write(getattr(font_mod, fname).font_data)
|
||||
p.close()
|
||||
FONT_FILE_MAP[name] = p
|
||||
return p.name
|
||||
except ImportError:
|
||||
pass
|
||||
# then, try calibre shipped ones
|
||||
f = P('fonts/%s/%s'%(s,fname))
|
||||
if os.path.exists(f):
|
||||
return f
|
||||
|
||||
# finally, try system default ones
|
||||
if SYSTEM_FONT_MAP.has_key(name) and os.access(SYSTEM_FONT_MAP[name], os.R_OK):
|
||||
return SYSTEM_FONT_MAP[name]
|
||||
|
||||
# not found
|
||||
raise SystemError, 'font %s (in file %s) not installed' % (name, fname)
|
||||
raise SystemError('font %s (in file %s) not installed' % (name, fname))
|
||||
|
||||
def get_font(name, size, encoding='unic'):
|
||||
'''
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,5 +0,0 @@
|
||||
__all__ = ['LiberationMono_Bold', 'LiberationMono_Regular', 'LiberationSans_Bold',
|
||||
'LiberationSans_Regular', 'LiberationSerif_Bold', 'LiberationSerif_Regular',
|
||||
'LiberationMono_BoldItalic', 'LiberationMono_Italic',
|
||||
'LiberationSans_BoldItalic', 'LiberationSans_Italic',
|
||||
'LiberationSerif_BoldItalic', 'LiberationSerif_Italic']
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
||||
__license__ = 'GPL v3'
|
||||
__copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
|
||||
import collections, itertools
|
||||
import collections, itertools, glob
|
||||
|
||||
from PyQt4.QtCore import Qt, QByteArray, SIGNAL
|
||||
from PyQt4.QtGui import QGraphicsRectItem, QGraphicsScene, QPen, \
|
||||
@ -410,30 +410,9 @@ class Document(QGraphicsScene):
|
||||
font_map[font] = [str(i) for i in QFontDatabase.applicationFontFamilies(id)][0]
|
||||
|
||||
if load_substitutions:
|
||||
from calibre.ebooks.lrf.fonts.liberation import LiberationMono_BoldItalic
|
||||
QFontDatabase.addApplicationFontFromData(QByteArray(LiberationMono_BoldItalic.font_data))
|
||||
from calibre.ebooks.lrf.fonts.liberation import LiberationMono_Italic
|
||||
QFontDatabase.addApplicationFontFromData(QByteArray(LiberationMono_Italic.font_data))
|
||||
from calibre.ebooks.lrf.fonts.liberation import LiberationSerif_Bold
|
||||
QFontDatabase.addApplicationFontFromData(QByteArray(LiberationSerif_Bold.font_data))
|
||||
from calibre.ebooks.lrf.fonts.liberation import LiberationSans_BoldItalic
|
||||
QFontDatabase.addApplicationFontFromData(QByteArray(LiberationSans_BoldItalic.font_data))
|
||||
from calibre.ebooks.lrf.fonts.liberation import LiberationMono_Regular
|
||||
QFontDatabase.addApplicationFontFromData(QByteArray(LiberationMono_Regular.font_data))
|
||||
from calibre.ebooks.lrf.fonts.liberation import LiberationSans_Italic
|
||||
QFontDatabase.addApplicationFontFromData(QByteArray(LiberationSans_Italic.font_data))
|
||||
from calibre.ebooks.lrf.fonts.liberation import LiberationSerif_Regular
|
||||
QFontDatabase.addApplicationFontFromData(QByteArray(LiberationSerif_Regular.font_data))
|
||||
from calibre.ebooks.lrf.fonts.liberation import LiberationSerif_Italic
|
||||
QFontDatabase.addApplicationFontFromData(QByteArray(LiberationSerif_Italic.font_data))
|
||||
from calibre.ebooks.lrf.fonts.liberation import LiberationSans_Bold
|
||||
QFontDatabase.addApplicationFontFromData(QByteArray(LiberationSans_Bold.font_data))
|
||||
from calibre.ebooks.lrf.fonts.liberation import LiberationMono_Bold
|
||||
QFontDatabase.addApplicationFontFromData(QByteArray(LiberationMono_Bold.font_data))
|
||||
from calibre.ebooks.lrf.fonts.liberation import LiberationSerif_BoldItalic
|
||||
QFontDatabase.addApplicationFontFromData(QByteArray(LiberationSerif_BoldItalic.font_data))
|
||||
from calibre.ebooks.lrf.fonts.liberation import LiberationSans_Regular
|
||||
QFontDatabase.addApplicationFontFromData(QByteArray(LiberationSans_Regular.font_data))
|
||||
base = P('fonts/liberation/*.ttf')
|
||||
for f in glob.glob(base):
|
||||
QFontDatabase.addApplicationFont(f)
|
||||
|
||||
self.font_loader = FontLoader(font_map, self.dpi)
|
||||
|
||||
|
@ -5,10 +5,10 @@ __docformat__ = 'restructuredtext en'
|
||||
|
||||
'''
|
||||
'''
|
||||
import os, math, re
|
||||
import os, math, re, glob
|
||||
from PyQt4.Qt import QWidget, QSize, QSizePolicy, QUrl, SIGNAL, Qt, QTimer, \
|
||||
QPainter, QPalette, QBrush, QFontDatabase, QDialog, \
|
||||
QByteArray, QColor, QPoint, QImage, QRegion, \
|
||||
QColor, QPoint, QImage, QRegion, \
|
||||
QFont, QObject, QApplication, pyqtSignature
|
||||
from PyQt4.QtWebKit import QWebPage, QWebView, QWebSettings
|
||||
|
||||
@ -20,32 +20,9 @@ from calibre.constants import iswindows
|
||||
from calibre import prints
|
||||
|
||||
def load_builtin_fonts():
|
||||
from calibre.ebooks.lrf.fonts.liberation import LiberationMono_BoldItalic
|
||||
QFontDatabase.addApplicationFontFromData(QByteArray(LiberationMono_BoldItalic.font_data))
|
||||
from calibre.ebooks.lrf.fonts.liberation import LiberationMono_Italic
|
||||
QFontDatabase.addApplicationFontFromData(QByteArray(LiberationMono_Italic.font_data))
|
||||
from calibre.ebooks.lrf.fonts.liberation import LiberationSerif_Bold
|
||||
QFontDatabase.addApplicationFontFromData(QByteArray(LiberationSerif_Bold.font_data))
|
||||
from calibre.ebooks.lrf.fonts.liberation import LiberationSans_BoldItalic
|
||||
QFontDatabase.addApplicationFontFromData(QByteArray(LiberationSans_BoldItalic.font_data))
|
||||
from calibre.ebooks.lrf.fonts.liberation import LiberationMono_Regular
|
||||
QFontDatabase.addApplicationFontFromData(QByteArray(LiberationMono_Regular.font_data))
|
||||
from calibre.ebooks.lrf.fonts.liberation import LiberationSans_Italic
|
||||
QFontDatabase.addApplicationFontFromData(QByteArray(LiberationSans_Italic.font_data))
|
||||
from calibre.ebooks.lrf.fonts.liberation import LiberationSerif_Regular
|
||||
QFontDatabase.addApplicationFontFromData(QByteArray(LiberationSerif_Regular.font_data))
|
||||
from calibre.ebooks.lrf.fonts.liberation import LiberationSerif_Italic
|
||||
QFontDatabase.addApplicationFontFromData(QByteArray(LiberationSerif_Italic.font_data))
|
||||
from calibre.ebooks.lrf.fonts.liberation import LiberationSans_Bold
|
||||
QFontDatabase.addApplicationFontFromData(QByteArray(LiberationSans_Bold.font_data))
|
||||
from calibre.ebooks.lrf.fonts.liberation import LiberationMono_Bold
|
||||
QFontDatabase.addApplicationFontFromData(QByteArray(LiberationMono_Bold.font_data))
|
||||
from calibre.ebooks.lrf.fonts.liberation import LiberationSerif_BoldItalic
|
||||
QFontDatabase.addApplicationFontFromData(QByteArray(LiberationSerif_BoldItalic.font_data))
|
||||
from calibre.ebooks.lrf.fonts.liberation import LiberationSans_Regular
|
||||
QFontDatabase.addApplicationFontFromData(QByteArray(LiberationSans_Regular.font_data))
|
||||
#for f in QFontDatabase().families():
|
||||
# print f
|
||||
base = P('fonts/liberation/*.ttf')
|
||||
for f in glob.glob(base):
|
||||
QFontDatabase.addApplicationFont(f)
|
||||
return 'Liberation Serif', 'Liberation Sans', 'Liberation Mono'
|
||||
|
||||
def config(defaults=None):
|
||||
|
Loading…
x
Reference in New Issue
Block a user