def button_apply_callback(self, sender): if self.otfs_folder is not None: _otfs_paths = walk(self.otfs_folder, 'otf') if len(_otfs_paths) > 0: # set ufos folder if self.ufos_folder is None: self.ufos_folder = self.otfs_folder # print settings boolstring = ["False", "True"] print 'batch generating ufos for all otfs in folder...\n' print '\totfs folder: %s' % self.otfs_folder print '\tufos folder: %s' % self.ufos_folder print # batch convert self.w.bar.start() for otf_path in _otfs_paths: print '\tcreating ufo from %s...' % os.path.split(otf_path)[1] otf = OpenFont(otf_path, showUI=True) # does not work without UI ufo_file = os.path.splitext(os.path.split(otf_path)[1])[0] + '.ufo' ufo_path = os.path.join(self.ufos_folder, ufo_file) otf.save(ufo_path) # close otf.close() print '\t\tufo path: %s' % ufo_path print '\t\tconversion sucessful? %s\n' % os.path.exists(ufo_path) # done self.w.bar.stop() print print '...done.\n' # no font in folder else: print no_font_in_folder
def button_apply_callback(self, sender): if self.otfs_folder is not None: _otfs_paths = walk(self.otfs_folder, 'otf') if len(_otfs_paths) > 0: # set ufos folder if self.ufos_folder is None: self.ufos_folder = self.otfs_folder # print settings boolstring = ["False", "True"] print('batch generating ufos for all otfs in folder...\n') print('\totfs folder: %s' % self.otfs_folder) print('\tufos folder: %s' % self.ufos_folder) print() # batch convert self.w.bar.start() for otf_path in _otfs_paths: print('\tcreating ufo from %s...' % os.path.split(otf_path)[1]) otf = OpenFont(otf_path, showUI=True) # does not work without UI ufo_file = os.path.splitext(os.path.split(otf_path)[1])[0] + '.ufo' ufo_path = os.path.join(self.ufos_folder, ufo_file) otf.save(ufo_path) # close otf.close() print('\t\tufo path: %s' % ufo_path) print('\t\tconversion sucessful? %s\n' % os.path.exists(ufo_path)) # done self.w.bar.stop() print() print('...done.\n') # no font in folder else: print(no_font_in_folder)
def button_apply_callback(self, sender): _otfs_folder = self.w.otfs_folder_value.get() _ufos_folder = self.w.ufos_folder_value.get() if _otfs_folder != None: _otfs_paths = walk(_otfs_folder, 'otf') if len(_otfs_paths) > 0: # set ufos folder if _ufos_folder == None: _ufos_folder = _otfs_folder # print settings boolstring = ("False", "True") print 'batch generating .ufos for all .otfs in folder...\n' print '\totfs folder: %s' % _otfs_folder print '\tufos folder: %s' % _ufos_folder print # batch convert self.w.bar.start() for otf_path in _otfs_paths: print '\tsaving .ufo for %s...' % os.path.split(otf_path)[1] otf = OpenFont(otf_path, showUI=True) ufo_file = os.path.splitext(os.path.split(otf_path)[1])[0] + '.ufo' ufo_path = os.path.join(_ufos_folder, ufo_file) otf.save(ufo_path) # close otf.close() print '\t\tufo path: %s' % ufo_path print '\t\tconversion sucessful? %s\n' % os.path.exists(ufo_path) # done self.w.bar.stop() print print '...done.\n'
def exportButtonCallback(self, sender): f = CurrentFont() if f is None: return if self.verbose: print('exporting selected glyphs back to their sources...\n') for glyphName in f.selectedGlyphNames: if self.importMode == 1: glyph = f[glyphName].getLayer('foreground') if self.glyphSetPathKey not in glyph.lib: continue glyphsFolder = glyph.lib[self.glyphSetPathKey] ufoName = splitall(glyphsFolder)[-2] glyphNameExtension = os.path.splitext(ufoName)[0] glyphNameParts = glyphName.split('.') if not (len(glyphNameParts) > 1 and glyphNameParts[-1] == os.path.splitext(ufoName)[0]): print(f'{glyphName} does not have the expected glyph name extension, skipping...') continue if self.verbose: print(f'\twriting {glyphName} to {ufoName}...') outputGlyphName = '.'.join(glyphNameParts[:-1]) glyphSet = GlyphSet(glyphsFolder, validateWrite=True) glyphSet.writeGlyph(outputGlyphName, glyph.naked(), glyph.drawPoints) glyphSet.writeContents() else: for layerName in f.layerOrder: glyph = f[glyphName].getLayer(layerName) if self.glyphSetPathKey not in glyph.lib: continue glyphsFolder = glyph.lib[self.glyphSetPathKey] # mode 0 if not '.ufoz' in glyphsFolder: glyphSet = GlyphSet(glyphsFolder, validateWrite=True) ufoName = splitall(glyphsFolder)[-2] if self.verbose: print(f'\twriting {glyphName} to {ufoName}...') glyphSet.writeGlyph(glyphName, glyph.naked(), glyph.drawPoints) glyphSet.writeContents() # mode 2 else: ufoPath = os.path.dirname(glyphsFolder) ufoName = splitall(ufoPath)[-1] dstFont = OpenFont(ufoPath, showInterface=False) if self.verbose: print(f'\twriting {glyphName} to {ufoName}...') dstFont.insertGlyph(glyph, name=glyph.name) dstFont.save() dstFont.close() if self.verbose: print() print('...done.\n')