コード例 #1
0
 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
コード例 #2
0
 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)
コード例 #3
0
 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'
コード例 #4
0
ファイル: tempEditLib.py プロジェクト: gferreira/tempEdit
    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')