Exemple #1
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.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)))
Exemple #2
0
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)))
Exemple #3
0
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 test_time(self):
     timer = Timer()
     time.sleep(0.01)
     overall_time = timer.time()
     assert overall_time > 0
Exemple #6
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)))