mirror of
https://github.com/rdkit/rdkit.git
synced 2026-06-05 22:04:27 +08:00
103 lines
3.9 KiB
Python
Executable File
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"
|
|
|
|
|