Ctrl K
ComunidadGuías…

font-preview/generate.pl

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
#!/usr/bin/env perl

use strict;
use warnings;
use Text::Amuse::Compile;
use Text::Amuse::Compile::Fonts;
use Data::Dumper;
use Path::Tiny;
binmode STDOUT, ':encoding(UTF-8)';
binmode STDERR, ':encoding(UTF-8)';

my ($file, $dest) = @ARGV;

die "Missing input file.json" unless ($file && -f $file);
die "Missing destination directory" unless ($dest && -d $dest);

my @fonts = Text::Amuse::Compile::Fonts->new($file)->all_fonts;

foreach my $ff (@fonts) {
    my $font = $ff->name;
    my $pdf = $font;
    $pdf =~ s/ /-/g;
    $pdf .= '.pdf';
    my $fdest = path($dest, $pdf);
    next if $fdest->exists;

    my $muse = 'font-preview.muse';
    if ($ff->has_languages) {
        foreach my $lang (@{ $ff->languages }) {
            if (-f "$lang.muse") {
                $muse = "$lang.muse";
                last;
            }
        }
    }
    my $muse_pdf = $muse;
    $muse_pdf =~ s/\.muse$/\.pdf/;

    my $c = Text::Amuse::Compile->new(
                                      pdf => 1,
                                      luatex => 1,
                                      fontspec => $file,
                                      cleanup => 1,
                                      extra => {
                                                papersize => 'a5',
                                                division => 15,
                                                sitename => $font,
                                                nocoverpage => 1,
                                                fontsize => 11,
                                                mainfont => $font,
                                                body_only => 1,
                                               },
                                     );
    $c->purge($muse);
    $c->compile($muse);
    my $png = "$fdest";
    $png =~ s/\.pdf$/.png/;
    system(qw/convert -density 150 -trim -quality 100 -sharpen 0x1.0/,  $muse_pdf . '[0]',  $png) == 0
      or die "Couldn't convert $pdf to $png $!";
    path($muse_pdf)->move("$fdest");
    $c->purge($muse);
    print "Generated $fdest\n";
}