Skip to content
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ Simple script to check figure spacing in fonts or UFOs (without kerning).
For each figure suffix found (such as .tosf), a new spacing page is made.

Input (pick one):
* folder(s) containing UFO files or font files
* folder(s) containing UFO- or font files
* individual UFO- or font files
* designspace file (for proofing UFO sources)

Expand All @@ -132,7 +132,7 @@ Other modes include
* `overlay` (superimposed outline view)

Input (pick one):
* folder(s) containing UFO files or font files
* folder(s) containing UFO- or font files
* individual UFO- or font files
* designspace file (for proofing UFO sources)

Expand All @@ -158,7 +158,7 @@ The glyphset can be filtered with a regular expression (for example,
use `-r ".*dieresis"` to show all glyphs whose names end with -dieresis).

Input (pick one):
* folder(s) containing UFO files or font files
* folder(s) containing UFO- or font files
* individual UFO- or font files
* designspace file (for proofing UFO sources)

Expand Down Expand Up @@ -277,7 +277,7 @@ Input (pick one):
Creates simple view which illustrates all vertical metrics
set in the font metadata. Additionally, tallest and lowest glyphs are shown.

Using the -n option, the number of extreme glyphs can be increased.
Using the -e option, the number of reported extreme glyphs can be modified.

Input:
* font file(s), or folder(s) containing font files
Expand Down
6 changes: 3 additions & 3 deletions drawbot_proofing/__init__.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
"""
DrawBot Proofing Tools

A collection of font proofing tools using DrawBot for type designers and developers.
A collection of font proofing tools for type designers and font developers.
"""

__version__ = "1.0.3"
__version__ = "1.0.4"
__author__ = "Adobe"
__email__ = "opensource@adobe.com"

# Import key modules for easier access

from . import proofing_helpers
43 changes: 22 additions & 21 deletions drawbot_proofing/accentProof.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,27 @@
from .proofing_helpers.globals import FONT_MONO, ADOBE_BLANK


def get_args(args=None):

parser = argparse.ArgumentParser(
description=__doc__,
formatter_class=RawDescriptionAndDefaultsFormatter)

parser.add_argument(
'--headless',
default=False,
action='store_true',
help='do not open result PDF after generating')

parser.add_argument(
'input',
metavar='INPUT',
nargs='+',
help='font file(s) or folder(s)')

return parser.parse_args(args)


def get_supported_chars(font):
'''
characters supported by a font
Expand Down Expand Up @@ -285,28 +306,8 @@ def get_atomic_latin(start=0):
return sorted(atomic)


def get_options(args=None):
parser = argparse.ArgumentParser(
description=__doc__,
formatter_class=RawDescriptionAndDefaultsFormatter
)
parser.add_argument(
'input',
metavar='INPUT',
nargs='+',
help='font file(s) or folder(s)',
)
parser.add_argument(
'--headless',
default=False,
action='store_true',
help='do not open result PDF after generating',
)
return parser.parse_args(args)


def main(test_args=None):
args = get_options(test_args)
args = get_args(test_args)
accents_dict = get_cmb_accents_dict()
atomic = get_atomic_latin(start=ord('ß'))
atomic_dict = {cp: chr(cp) for cp in atomic}
Expand Down
10 changes: 5 additions & 5 deletions drawbot_proofing/alphabetProof.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,19 +45,18 @@
from .proofing_helpers.formatter import RawDescriptionAndDefaultsFormatter
from .proofing_helpers.globals import FONT_MONO, ADOBE_BLANK
from .proofing_helpers.names import (
get_name_overlap, get_path_overlap, get_ps_name)
get_name_overlap, get_path_overlap, get_ps_name, get_unique_name)
from .proofing_helpers.stamps import timestamp


def get_options():
def get_args():

mode_choices = ['proof', 'spacing', 'sample', 'all']
ws_choices = ['lat', 'grk', 'cyr', 'figures', 'auto']

parser = argparse.ArgumentParser(
description=__doc__,
formatter_class=RawDescriptionAndDefaultsFormatter
)
formatter_class=RawDescriptionAndDefaultsFormatter)

parser.add_argument(
'-m', '--mode',
Expand Down Expand Up @@ -217,6 +216,7 @@ def make_proof(args, fonts, output_path):
font=FONT_MONO,
fontSize=10,
align='right')
caption += f' | {get_unique_name(font)}'
if args.kerning_off:
caption += ' | no kerning'
caption += f' | {timestamp(readable=True)}'
Expand Down Expand Up @@ -289,7 +289,7 @@ def make_pdf_name(args, fonts):


def main():
args = get_options()
args = get_args()
fonts = []
for item in args.input:
if Path(item).exists():
Expand Down
27 changes: 13 additions & 14 deletions drawbot_proofing/charsetProof.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,42 +34,41 @@


def get_args(args=None):

available_charsets = [
cs.upper() for cs in dir(charsets) if not cs.startswith('_')]

parser = argparse.ArgumentParser(
description=(__doc__),
formatter_class=RawDescriptionAndDefaultsFormatter,
)
formatter_class=RawDescriptionAndDefaultsFormatter)

parser.add_argument(
'input',
metavar='INPUT',
nargs='+',
help='font file(s) or folder(s)'
)
parser.add_argument(
'-p', '--pointsize',
metavar='PT',
action='store',
default=40,
type=int,
help='point size for sample'
)
help='point size for sample')

parser.add_argument(
'-s', '--spacer',
action='store',
metavar='CHR',
default='',
help=r'spacing character (may need to be escaped with \)'
)
help=r'spacing character (may need to be escaped with \)')

parser.add_argument(
'-c', '--charset',
action='store',
default='AL3',
# choices=available_charsets, # ugly
help=f'character set ({", ".join(available_charsets)})',
)
help=f'character set ({", ".join(available_charsets)})',)

parser.add_argument(
'input',
metavar='INPUT',
nargs='+',
help='font file(s) or folder(s)')

return parser.parse_args(args)

Expand Down
22 changes: 7 additions & 15 deletions drawbot_proofing/contextProof.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@
default_wl = Path(__file__).parent / "_content" / "en_10k.txt"


def get_options():
def get_args():

parser = argparse.ArgumentParser(
description=__doc__,
formatter_class=RawDescriptionAndDefaultsFormatter
)
formatter_class=RawDescriptionAndDefaultsFormatter)

parser.add_argument(
'-p', '--point_size',
Expand All @@ -52,12 +52,6 @@ def get_options():
action='store',
help='wordlist file')

parser.add_argument(
'-d', '--date',
default=False,
action='store_true',
help='date output file')

parser.add_argument(
'-a', '--word_amount',
default=300,
Expand Down Expand Up @@ -85,6 +79,7 @@ def get_options():

parser.add_argument(
'input',
metavar='INPUT',
nargs='+',
help='input font file(s)')

Expand Down Expand Up @@ -180,18 +175,15 @@ def make_output_path(args):
flag = 'letters'
else:
flag = 'letter'
output_name = f'contextProof ({flag} {args.letters})'
output_name = f'context proof ({flag} {args.letters})'
else:
output_name = f'contextProof (combination {args.combination})'

if args.date:
output_name = f'{timestamp()} ' + output_name
output_name = f'context proof (combination {args.combination})'

return Path(f'~/Desktop/{output_name}.pdf').expanduser()


def main():
args = get_options()
args = get_args()
wordlist_path = Path(args.wordlist)
output_path = make_output_path(args)

Expand Down
84 changes: 55 additions & 29 deletions drawbot_proofing/figureSpacingProof.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
For each figure suffix found (such as .tosf), a new spacing page is made.

Input (pick one):
* folder(s) containing UFO files or font files
* folder(s) containing UFO- or font files
* individual UFO- or font files
* designspace file (for proofing UFO sources)

Expand All @@ -29,9 +29,38 @@
from .proofing_helpers.files import get_font_paths, get_ufo_paths
from .proofing_helpers.formatter import RawDescriptionAndDefaultsFormatter
from .proofing_helpers.globals import FONT_MONO
from .proofing_helpers.names import get_family_name, get_name_overlap
from .proofing_helpers.stamps import timestamp


def get_args():

parser = argparse.ArgumentParser(
description=__doc__,
formatter_class=RawDescriptionAndDefaultsFormatter)

parser.add_argument(
'--point_size',
default=100,
action='store',
type=int,
help='font size')

parser.add_argument(
'-s', '--suffixes',
action='store',
help='suffixes',
nargs='*')

parser.add_argument(
'input',
nargs='+',
metavar='INPUT',
help='input file(s) or folder(s)')

return parser.parse_args()


def joinit(iterable, delimiter):
'''
https://stackoverflow.com/a/5656097
Expand Down Expand Up @@ -181,44 +210,41 @@ def get_figure_suffixes(gnames, custom_suffixes, report=False):
return suffixes


def get_options():
parser = argparse.ArgumentParser(
description=__doc__,
formatter_class=RawDescriptionAndDefaultsFormatter
)
def make_output_name(paths):
'''
Make a sensible filename for the PDF proof created.

parser.add_argument(
'--point_size',
default=100,
action='store',
type=int,
help='font size',
)
'''
chunks = ['figure spacing']

parser.add_argument(
'-s', '--suffixes',
action='store',
help='suffixes',
nargs='*',
)
all_family_names = sorted(set([get_family_name(font) for font in paths]))
family_name_overlap = get_name_overlap(all_family_names)

parser.add_argument(
'path',
help='folder containing UFO or font files')
if family_name_overlap:
chunks.append(family_name_overlap)
else:
if len(all_family_names) == 1:
chunks.append(all_family_names[0])
elif len(all_family_names) == 2:
chunks.append(', '.join(all_family_names))
else:
chunks.append(', '.join(all_family_names[:2]) + ' etc')

return parser.parse_args()
pdf_name = ' '.join(chunks) + '.pdf'
return pdf_name


def main():
args = get_options()
args = get_args()

input_path = Path(args.path)
input_paths = [Path(i) for i in args.input]
input_list = []
input_list.extend(get_ufo_paths(input_path))
input_list.extend(get_font_paths(input_path))
for input_path in input_paths:
input_list.extend(get_ufo_paths(input_path))
input_list.extend(get_font_paths(input_path))

output_pdf = f'figure spacing {input_path.name}.pdf'
output_path = Path(f'~/Desktop/{output_pdf}').expanduser()
output_name = make_output_name(input_list)
output_path = Path(f'~/Desktop/{output_name}').expanduser()

db.newDrawing()
for input_file in input_list:
Expand Down
Loading