| PDF-API3 documentation | Contained in the PDF-API3 distribution. |
PDF::API3::Compat::API2::Basic::TTF::Mort::Rearrangement
Reads the table into memory
Prints a human-readable representation of the table
None known
Jonathan Kew Jonathan_Kew@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 Jonathan Kew L<Jonathan_Kew@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: Rearrangement.pm,v 2.0 2005/11/16 02:16:00 areibens Exp $ # #======================================================================= package PDF::API3::Compat::API2::Basic::TTF::Mort::Rearrangement;
use strict; use vars qw(@ISA); use PDF::API3::Compat::API2::Basic::TTF::Utils; use PDF::API3::Compat::API2::Basic::TTF::AATutils; @ISA = qw(PDF::API3::Compat::API2::Basic::TTF::Mort::Subtable); sub new { my ($class, $direction, $orientation, $subFeatureFlags) = @_; my ($self) = { 'direction' => $direction, 'orientation' => $orientation, 'subFeatureFlags' => $subFeatureFlags }; $class = ref($class) || $class; bless $self, $class; }
sub read { my ($self, $fh) = @_; my ($classes, $states) = AAT_read_state_table($fh, 0); $self->{'classes'} = $classes; $self->{'states'} = $states; $self; }
sub pack_sub { my ($self) = @_; return AAT_pack_state_table($self->{'classes'}, $self->{'states'}, 0); }
sub print { my ($self, $fh) = @_; my $post = $self->post(); $fh = 'STDOUT' unless defined $fh; $self->print_classes($fh); $fh->print("\n"); my $states = $self->{'states'}; my @verbs = ( "0", "Ax->xA", "xD->Dx", "AxD->DxA", "ABx->xAB", "ABx->xBA", "xCD->CDx", "xCD->DCx", "AxCD->CDxA", "AxCD->DCxA", "ABxD->DxAB", "ABxD->DxBA", "ABxCD->CDxAB", "ABxCD->CDxBA", "ABxCD->DCxAB", "ABxCD->DCxBA"); foreach (0 .. $#$states) { $fh->printf("\t\tState %d:", $_); my $state = $states->[$_]; foreach (@$state) { my $flags; $flags .= "!" if ($_->{'flags'} & 0x4000); $flags .= "<" if ($_->{'flags'} & 0x8000); $flags .= ">" if ($_->{'flags'} & 0x2000); $fh->printf("\t(%s%d,%s)", $flags, $_->{'nextState'}, $verbs[($_->{'flags'} & 0x000f)]); } $fh->print("\n"); } } 1;