def main(): t = Timer() parser = ArgumentParser() parser.add_argument("-d", "--directory", default="./", help="Path to directory containing the fonts") parser.add_argument("-o", "--output", default="merged.ttf", help="Path to output file.") parser.add_argument( "-v", "--verbose", action="store_true", help="Verbose mode, printing out more info", ) args = parser.parse_args() logging.basicConfig( level=logging.INFO if args.verbose else logging.WARNING) valid_files = build_valid_filenames(directory=args.directory) if len(valid_files) <= 1: log.warning( "expecting at least two fonts to merge, but only got %d " + "font(s).", len(valid_files), ) sys.exit(-1) for idx, file in enumerate(valid_files): if not has_gsub_table(file): log.info("adding default GSUB table to %s." % file) valid_files[idx] = add_gsub_to_font(file) merger = merge.Merger() print("Merging %d Fonts..." % len(valid_files)) font = merger.merge(valid_files) # Use the line metric in the first font to replace the one in final result. metrics = read_line_metrics(ttLib.TTFont(valid_files[0])) set_line_metrics(font, metrics) font.save(args.output) font.close() print("%d fonts are merged. %d fonts are skipped. Cost %0.3f s." % (len(valid_files), len(files) - len(valid_files), t.time())) print("Please check the result at %s." % os.path.abspath(os.path.realpath(args.output)))
def main(): t = Timer() parser = ArgumentParser() parser.add_argument('-f', '--files', help='Path to YAML file containing paths to the fonts') parser.add_argument('-o', '--output', default='merged.ttf', help='Path to output file.') parser.add_argument('-v', '--verbose', action='store_true', help='Verbose mode, printing out more info') args = parser.parse_args() logging.basicConfig(level=logging.INFO if args.verbose else logging.WARNING) if not args.files: print('add -h for usage') sys.exit(2) with open(args.files, 'r') as stream: try: valid_files = yaml.safe_load(stream) except yaml.YAMLError as exc: print(exc) if len(valid_files) <= 1: log.warn('expecting at least two fonts to merge, but only got %d ' + 'font(s).', len(valid_files)) sys.exit(-1) for idx, file in enumerate(valid_files): if not has_gsub_table(file): log.info('adding default GSUB table to %s.' % file) valid_files[idx] = add_gsub_to_font(file) merger = merge.Merger() print('Merging %d Fonts...' % len(valid_files)) font = merger.merge(valid_files) # Use the line metric in the first font to replace the one in final result. metrics = read_line_metrics(ttLib.TTFont(valid_files[0])) set_line_metrics(font, metrics) font.save(args.output) font.close() print('%d fonts are merged. Cost %0.3f s.' % (len(valid_files), t.time())) print('Please check the result at %s.' % os.path.abspath( os.path.realpath(args.output)))
def main(newName, files): t = Timer() parser = ArgumentParser() parser.add_argument('-d', '--directory', default='./', help='Path to directory containing the fonts') # parser.add_argument('-o', '--output', default='merged.ttf', # help='Path to output file.') parser.add_argument('-v', '--verbose', action='store_true', help='Verbose mode, printing out more info') args = parser.parse_args() logging.basicConfig( level=logging.INFO if args.verbose else logging.WARNING) valid_files = build_valid_filenames(files=files, directory=args.directory) if len(valid_files) <= 1: log.warning( 'expecting at least two fonts to merge, but only got %d ' + 'font(s).', len(valid_files)) # sys.exit(-1) return for idx, file in enumerate(valid_files): if not has_gsub_table(file): log.info('adding default GSUB table to %s.' % file) valid_files[idx] = add_gsub_to_font(file) merger = merge.Merger() print('Merging %d Fonts...' % len(valid_files)) font = merger.merge(valid_files) # Use the line metric in the first font to replace the one in final result. metrics = read_line_metrics(ttLib.TTFont(valid_files[0])) set_line_metrics(font, metrics) # print(os.path.basename(valid_files[0])) font.save(newName) font.close() print('%d fonts are merged. %d fonts are skipped. Cost %0.3f s.' % (len(valid_files), len(files) - len(valid_files), t.time())) print('Please check the result at %s.' % os.path.abspath(os.path.realpath(newName)))
def test_time(self): timer = Timer() time.sleep(0.01) overall_time = timer.time() assert overall_time > 0
def main(): t = Timer() parser = ArgumentParser() parser.add_argument('-d', '--directory', default='./', help='Path to directory containing the fonts') parser.add_argument('-o', '--output', default='merged.ttf', help='Path to output file.') parser.add_argument('-v', '--verbose', action='store_true', help='Verbose mode, printing out more info') args = parser.parse_args() logging.basicConfig(level=logging.INFO if args.verbose else logging.WARNING) valid_files = build_valid_filenames(directory=args.directory) if len(valid_files) <= 1: log.warn('expecting at least two fonts to merge, but only got %d ' + 'font(s).', len(valid_files)) sys.exit(-1) for idx, file in enumerate(valid_files): if not has_gsub_table(file): log.info('adding default GSUB table to %s.' % file) valid_files[idx] = add_gsub_to_font(file) merger = merge.Merger() print('Merging %d Fonts...' % len(valid_files)) font = merger.merge(valid_files) # Use the line metric in the first font to replace the one in final result. metrics = read_line_metrics(ttLib.TTFont(valid_files[0])) set_line_metrics(font, metrics) font.save(args.output) font.close() print('%d fonts are merged. %d fonts are skipped. Cost %0.3f s.' % (len(valid_files), len(files) - len(valid_files), t.time())) print('Please check the result at %s.' % os.path.abspath( os.path.realpath(args.output)))