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
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')