| Server IP : 216.92.14.13 / Your IP : 216.73.216.171 Web Server : Apache System : Linux vps4089.pairvps.com 5.15.0-190-generic #200-Ubuntu SMP Fri Aug 7 15:06:04 UTC 2026 x86_64 User : rmlac2fmr ( 1040637) PHP Version : 8.2.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/local/bin/ |
Upload File : |
#!/usr/bin/perl
use strict;
use Font::TTF::Font;
use Getopt::Std;
use Pod::Usage;
our $VERSION = 0.1; # MH 2011-02-28 Original
our $CHAIN_CALL;
our %opts;
our $f;
unless($CHAIN_CALL)
{
getopts('a:d:hl:', \%opts);
pod2usage( -verbose => 2, -noperldoc => 1) if $opts{'h'};
pod2usage(-verbose => 1) unless defined $ARGV[0];
$f = Font::TTF::Font->open($ARGV[0]) || die "Can't open file $ARGV[0]";
}
my $h = $f->{'hhea'}->read;
my $o = $f->{'OS/2'}->read;
if ($opts{'a'})
{
$h->{'Ascender'} = $opts{'a'};
$o->{'sTypoAscender'} = $opts{'a'};
$o->{'usWinAscent'} = $opts{'a'};
}
if ($opts{'d'})
{
$h->{'Descender'} = -$opts{'d'};
$o->{'sTypoDescender'} = -$opts{'d'};
$o->{'usWinDescent'} = $opts{'d'};
}
if ($opts{'l'})
{
$o->{'sTypoLineGap'} = $opts{'l'};
}
$f->out($ARGV[1]) if (defined $ARGV[1]);
__END__
=head1 NAME
ttfascent - sets ascent and descent of a TrueType font
=head1 SYNOPSIS
ttfascent [-a num] [-d num] [-l num] infile [outfile]
Opens infile (a .ttf file) changes the ascent and descent values in the Hhea and
OS/2 table and then writes the resulting file to outfile if specified.
=head1 OPTIONS
-a num Sets the ascent value to this number of em units
-d num Sets the descent value to this number of em units. This value is
usually positive.
-l num Sets the typographical line gap in the OS/2 table.
=head1 DESCRIPTION
Setting the ascent and descent values of a font is a fiddly business. This program
sets the values in their default relationship.
=head1 AUTHOR
Martin Hosken L<http://scripts.sil.org/FontUtils>.
(see CONTRIBUTORS for other authors).
=head1 LICENSING
Copyright (c) 1998-2016, SIL International (http://www.sil.org)
This script is released under the terms of the Artistic License 2.0.
For details, see the full text of the license in the file LICENSE.
=cut