-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy path01_export_fontlab_lato.vfpy
executable file
·84 lines (75 loc) · 2.8 KB
/
01_export_fontlab_lato.vfpy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import os
import os.path
import glob
from fontlab import *
from PythonQt import QtGui
ws = flWorkspace.instance()
main = ws.mainWindow
item = flItems
qapp = QtGui.QApplication.instance()
pref = flPreferences()
cwd = os.path.dirname(__file__)
fontRelFolder = os.path.join(cwd, '..', 'sources')
outRelFolder = os.path.join(cwd, '..', 'build')
class ExportFont(object):
def __init__(self):
self.fontFolder = None
self.fontPaths = None
self.fontPath = None
self.fp = None
def getFontPaths(self, fontFolder = None):
if not fontFolder:
self.fontFolder = fontRelFolder
self.fontPaths = glob.glob(os.path.join(self.fontFolder, '*.vfj'))
if not len(self.fontPaths):
self.fontFolder = QtGui.QFileDialog.getExistingDirectory(None, 'Choose folder with VFJ files', self.fontFolder, QFileDialog.ShowDirsOnly)
if self.fontFolder:
self.fontPaths = glob.glob(os.path.join(self.fontFolder, '*.vfj'))
if not len(self.fontPaths):
print("No VFJ files found in folder!")
def openFont(self, fontPath):
main.loadFont(fontPath)
self.fp = ws.currentPackage
self.fg = CurrentFont()
self.fontPath = self.fp.path
self.subFolder = os.path.splitext(os.path.basename(self.fontPath))[0]
#print(self.fp, self.fg)
def exportFontDSUFO(self, outFolder = None):
if not outFolder:
outFolder = os.path.join(outRelFolder, self.subFolder, 'ds-ufo')
if not os.path.isdir(outFolder):
os.makedirs(outFolder)
ec = ExportControl()
ec.profileName = "DesignSpace + UFO"
ec.destinationMode = pref.DestinationFolder
ec.conflictMode = pref.ConflictOverwrite
ec.contentMode = pref.ContentInstances
ec.destinationFolder = outFolder
ec.groupProfiles = False
ec.groupFamily = False
ws.exportFont(self.fp, ec)
def exportFontInstUFO(self, outFolder = None):
if not outFolder:
outFolder = os.path.join(outRelFolder, self.subFolder, 'ds-ufo', 'masters')
if not os.path.isdir(outFolder):
os.makedirs(outFolder)
ec = ExportControl()
ec.profileName = "UFO Package"
ec.destinationMode = pref.DestinationFolder
ec.conflictMode = pref.ConflictOverwrite
ec.contentMode = pref.ContentInstances
ec.destinationFolder = outFolder
ec.groupProfiles = False
ec.groupFamily = False
ws.exportFont(self.fp, ec)
def main(self):
self.getFontPaths()
for fontPath in self.fontPaths:
print(fontPath)
self.openFont(fontPath)
self.exportFontDSUFO()
self.exportFontInstUFO()
if __name__ == "__main__":
ex = ExportFont()
ex.main()
qapp.quit()