def findT1File(self, ext='.pfb'):
     possible_exts = (ext.lower(), ext.upper())
     if hasattr(self,'pfbFileName'):
         r_basename = os.path.splitext(self.pfbFileName)[0]
         for e in possible_exts:
             if rl_isfile(r_basename + e):
                 return r_basename + e
     try:
         r = _fontdata.findT1File(self.name)
     except:
         afm = bruteForceSearchForAFM(self.name)
         if afm:
             if ext.lower() == '.pfb':
                 for e in possible_exts:
                     pfb = os.path.splitext(afm)[0] + e
                     if rl_isfile(pfb):
                         r = pfb
                     else:
                         r = None
             elif ext.lower() == '.afm':
                 r = afm
         else:
             r = None
     if r is None:
         warnOnce("Can't find %s for face '%s'" % (ext, self.name))
     return r
示例#2
0
def fetchPFB(dstDir,report=None):
	#fetch the standard pfb files into ./fonts
	from reportlab.pdfbase._fontdata import _font2fnrMapWin32, findT1File
	N = []
	for fontName in list(_font2fnrMapWin32.keys()):
		try:
			fn = findT1File(fontName)
			if fn is None: raise ValueError
		except:
			N.append(fontName)
			continue
		if sys.platform=='win32':
			fn = path_join(path_dirname(fn),path_basename(fn).lower())
		dd = path_join(dstDir,'reportlab','fonts')
		_src2dst(fn,dd)
		os.chmod(path_join(dd,path_basename(fn)),0o666)
	if N: raise ValueError('Can\'t copy pfb fonts '+ ' '.join(N)) 
	if report: report('pfb font files copied to fonts')