Files
rdkit/Python/sping/Pyart/Fontmapping.py
Greg Landrum 75a79b6327 initial import
2006-05-06 22:20:08 +00:00

103 lines
3.9 KiB
Python
Executable File

## font mapping stuff ##
# by default, I'm using the standard acrobat fonts so that pdfmetrics should work well
#
DefaultFace = 'times'
import string
# these are the required fonts for piddle
PidLegalFonts = { "courier": "courier", # note: keys are lowercased
"helvetica": "helvetica",
"monospaced": "courier",
"sansserif": "helvetica",
"serif": "times",
"times": "times",
"symbol" : "symbol",
"zapfdingbats": "zapfdingbats"} # Could add more...
#PidLegalShapes:
Roman="Roman"; Bold="Bold"; Italic="Italic"; BoldItalic = "BoldOblique"
MapPid2PyartFontName = { ("helvetica", Roman): "Helvetica",
("helvetica", Bold): "Helvetica-Bold",
("helvetica", Italic): "Helvetica-Oblique",
("helvetica", BoldItalic): "Helvetica-BoldOblique",
("times", Roman) : "Times-Roman",
("times", Bold) : "Times-Bold",
("times", Italic) : "Times-Italic",
("times", BoldItalic) : "Times-BoldItalic",
("courier", Roman) : "Courier",
("courier", Bold) : "Courier-Bold",
("courier", Italic) : "Courier-Oblique",
("courier", BoldItalic) : "Courier-BoldOblique",
("symbol", Roman) : "Symbol",
("symbol", Bold) : "Symbol",
("symbol", Italic) : "Symbol",
("symbol", BoldItalic) : "Symbol",
("zapfdingbats", Roman ) : "ZapfDingbats",
("zapfdingbats", Bold ) : "ZapfDingbats",
("zapfdingbats", Italic ) : "ZapfDingbats",
("zapfdingbats", BoldItalic ) : "ZapfDingbats" }
# PDFFontMapping = { ("helvetica", Roman): "Helvetica",
# ("helvetica", Bold): "Helvetica-Bold",
# ("helvetica", Italic): "Helvetica-Oblique",
# ("times", Roman) : "Times-Roman",
# ("times", Bold) : "Times-Bold",
# ("times", Italic) : "Times-Italic",
# ("courier", Roman) : "Courier",
# ("courier", Bold) : "Courier-Bold",
# ("courier", Italic) : "Courier-Oblique",
# ("symbol", Roman) : "Symbol",
# ("symbol", Bold) : "Symbol",
# ("symbol", Italic) : "Symbol",
# ("zapfdingbats", Roman ) : "ZapfDingbats",
# ("zapfdingbats", Bold ) : "ZapfDingbats",
# ("zapfdingbats", Italic ) : "ZapfDingbats" }
def getPyartName(pidfont):
if not pidfont.bold:
if pidfont.italic:
shape = Italic
else:
shape = Roman
else:
if pidfont.italic:
shape = BoldItalic
else:
shape = Bold
face = pidfont.face or DefaultFace
# print "pidfont.face = %s" % pidfont.face
face = string.lower(face)
if PidLegalFonts.has_key(face):
return MapPid2PyartFontName[ ( PidLegalFonts[face], shape) ]
else:
raise ValueError,"Illegal Font"
getPdfName = getPyartName
# def getPdfName(pidfont):
# if pidfont.bold:
# shape = Bold
# elif pidfont.italic:
# shape = Italic
# else:
# shape = Roman
# face = pidfont.face or DefaultFace
# # print "pidfont.face = %s" % pidfont.face
# face = string.lower(face)
# if PidLegalFonts.has_key(face):
# return PDFFontMapping[ ( PidLegalFonts[face], shape) ]
# else:
# raise "Illegal Font"