PDF::API3::Compat::API2::Basic::TTF::PCLT - PCLT TrueType font table


PDF-API3 documentation Contained in the PDF-API3 distribution.

Index


Code Index:

NAME

Top

PDF::API3::Compat::API2::Basic::TTF::PCLT - PCLT TrueType font table

DESCRIPTION

Top

The PCLT table holds various pieces HP-PCL specific information. Information here is generally not used by other software, except for the xHeight and CapHeight which are stored here (if the table exists in a font).

INSTANCE VARIABLES

Top

Only from table and the standard:

    version
    FontNumber
    Pitch
    xHeight
    Style
    TypeFamily
    CapHeight
    SymbolSet
    Typeface
    CharacterComplement
    FileName
    StrokeWeight
    WidthType
    SerifStyle

Notice that Typeface, CharacterComplement and FileName return arrays of unsigned characters of the appropriate length

METHODS

Top

$t->read

Reads the table into memory thanks to some utility functions

$t->out($fh)

Writes the table to a file either from memory or by copying.

BUGS

Top

None known

AUTHOR

Top

Martin Hosken Martin_Hosken@sil.org. See PDF::API3::Compat::API2::Basic::TTF::Font for copyright and licensing.


PDF-API3 documentation Contained in the PDF-API3 distribution.
#=======================================================================
#    ____  ____  _____              _    ____ ___   ____
#   |  _ \|  _ \|  ___|  _   _     / \  |  _ \_ _| |___ \
#   | |_) | | | | |_    (_) (_)   / _ \ | |_) | |    __) |
#   |  __/| |_| |  _|    _   _   / ___ \|  __/| |   / __/
#   |_|   |____/|_|     (_) (_) /_/   \_\_|  |___| |_____|
#
#   A Perl Module Chain to faciliate the Creation and Modification
#   of High-Quality "Portable Document Format (PDF)" Files.
#
#=======================================================================
#
#   THIS IS A REUSED PERL MODULE, FOR PROPER LICENCING TERMS SEE BELOW:
#
#
#   Copyright Martin Hosken <Martin_Hosken@sil.org>
#
#   No warranty or expression of effectiveness, least of all regarding
#   anyone's safety, is implied in this software or documentation.
#
#   This specific module is licensed under the Perl Artistic License.
#
#
#   $Id: PCLT.pm,v 2.0 2005/11/16 02:16:00 areibens Exp $
#
#=======================================================================
package PDF::API3::Compat::API2::Basic::TTF::PCLT;

use strict;
use vars qw(@ISA %fields @field_info);

require PDF::API3::Compat::API2::Basic::TTF::Table;
use PDF::API3::Compat::API2::Basic::TTF::Utils;

@ISA = qw(PDF::API3::Compat::API2::Basic::TTF::Table);
@field_info = (
    'version' => 'f',
    'FontNumber' => 'L',
    'Pitch' => 'S',
    'xHeight' => 'S',
    'Style' => 'S',
    'TypeFamily' => 'S',
    'CapHeight' => 'S',
    'SymbolSet' => 'S',
    'Typeface' => 'C16',
    'CharacterComplement' => 'C8',
    'FileName' => 'C6',
    'StrokeWeight' => 'C',
    'WidthType' => 'C',
    'SerifStyle' => 'c');

sub init
{
    my ($k, $v, $c, $i);
    for ($i = 0; $i < $#field_info; $i += 2)
    {
        ($k, $v, $c) = TTF_Init_Fields($field_info[$i], $c, $field_info[$i + 1]);
        next unless defined $k && $k ne "";
        $fields{$k} = $v;
    }
}


sub read
{
    my ($self) = @_;
    my ($dat);

    $self->SUPER::read || return $self;

    init unless defined $fields{'xHeight'};
    $self->{' INFILE'}->read($dat, 54);

    TTF_Read_Fields($self, $dat, \%fields);
    $self;
}


sub out
{
    my ($self, $fh) = @_;

    return $self->SUPER::out($fh) unless $self->{' read'};
    $fh->print(TTF_Out_Fields($self, \%fields, 54));
}

1;