PDF-API2
view release on metacpan or search on metacpan
lib/PDF/API2/Resource/CIDFont/TrueType/FontFile.pm view on Meta::CPAN
$data->{'fontstretch'} = $stretch[$font->{'OS/2'}->{'usWidthClass'}] || 'Normal';
$data->{'fontweight'} = $font->{'OS/2'}->{'usWeightClass'};
$data->{'panose'} = pack('n', $font->{'OS/2'}->{'sFamilyClass'});
foreach my $p (qw[bFamilyType bSerifStyle bWeight bProportion bContrast bStrokeVariation bArmStyle bLetterform bMidline bXheight]) {
$data->{'panose'} .= pack('C', $font->{'OS/2'}->{$p});
}
$data->{'apiname'} = join('', map { ucfirst(lc(substr($_, 0, 2))) } split m/[^A-Za-z0-9\s]+/, $data->{'fontname'});
$data->{'fontname'} =~ s/[\x00-\x1f\s]//g;
$data->{'altname'} = $font->{'name'}->find_name(1);
$data->{'altname'} =~ s/[\x00-\x1f\s]//g;
$data->{'subname'} = $font->{'name'}->find_name(2);
$data->{'subname'} =~ s/[\x00-\x1f\s]//g;
$font->{'cmap'}->read->find_ms();
if (defined $font->{'cmap'}->find_ms()) {
lib/PDF/API2/Resource/Font/Postscript.pm view on Meta::CPAN
$data->{subname}=$data->{weight};
$data->{subname}.=' Italic' if($data->{italicangle}<0);
$data->{subname}.=' Oblique' if($data->{italicangle}>0);
$data->{subname}=~s/[^A-Za-z0-9]+//og;
$data->{missingwidth}||=$data->{avgwidth2};
$data->{issymbol} = 0;
$data->{fontbbox} = [ split(/\s+/,$data->{fontbbox}) ];
$data->{apiname}=join('', map { ucfirst(lc(substr($_, 0, 2))) } split m/[^A-Za-z0-9\s]+/, $data->{apiname});
$data->{flags} = 34;
$data->{uni}||=[];
foreach my $n (0..255)
{
$data->{uni}->[$n]=uniByName($data->{char}->[$n] || '.notdef') || 0;
}
delete $data->{bbox};
lib/PDF/API2/Resource/Font/Postscript.pm view on Meta::CPAN
$df{DoubleLowerUnderlineOffset},
$df{DoubleUpperUnderlineWidth},
$df{DoubleLowerUnderlineWidth},
$df{StrikeOutOffset},
$df{StrikeOutWidth},
$df{KernPairs},
$df{KernTracks} ) = unpack('v*',$buf);
$data->{fontname}=$df{psName};
$data->{fontname}=~s/[^A-Za-z0-9]+//og;
$data->{apiname}=join('', map { ucfirst(lc(substr($_, 0, 2))) } split m/[^A-Za-z0-9\s]+/, $df{windowsName});
$data->{upem}=1000;
$data->{fontbbox}=[-100,-100,$df{MaxWidth},$df{Ascent}];
$data->{stemv}=0;
$data->{stemh}=0;
$data->{lastchar}=$df{LastChar};
$data->{firstchar}=$df{FirstChar};
lib/PDF/API2/Resource/XObject/Form/BarCode/qrcode.pm view on Meta::CPAN
sub render {
my ($self, @lines) = @_;
$self->fillcolor($self->{' color'});
my $y = $self->{' quzn'};
my $w = $self->{' mils'} / 1000 * 72;
my $h = $self->{' zone'};
foreach my $line (@lines) {
my $x = $self->{' quzn'};
foreach my $char (split m//, $line) {
if ($char eq '*') {
$self->rectangle($x, $y, $x + $w, $y + $h);
$self->fill();
}
$x += $w;
}
$y += $h;
}
$self->{' w'} = 2 * $self->{' quzn'} + length($lines[0]) * $w;
lib/PDF/API2/Resource/XObject/Image/PNM.pm view on Meta::CPAN
# Read the remainder of the file
local $/ = undef;
my $plain = <$fh>;
# Discard everything other than digits and whitespace
$plain =~ s/[^\d\s]+//gs;
$plain =~ s/^\s+//;
# Convert to an array of integers
my @raster = split m/\s+/, $plain;
# Check length
my $size = $info->{'width'} * $info->{'height'};
croak "Incomplete ASCII PGM" if scalar(@raster) < $size;
# Discard any additional integers
splice @raster, $size if scalar(@raster) > $size;
# Scale
$scale = 1;
lib/PDF/API2/Resource/XObject/Image/PNM.pm view on Meta::CPAN
# Read the remainder of the file
local $/ = undef;
my $plain = <$fh>;
# Discard everything other than digits and whitespace
$plain =~ s/[^\d\s]+//gs;
$plain =~ s/^\s+//;
# Convert to an array of integers
my @raster = split m/\s+/, $plain;
# Check length
my $size = $info->{'width'} * $info->{'height'};
croak "Incomplete ASCII PGM" if scalar(@raster) < $size * 3;
# Discard any additional integers
splice @raster, $size if scalar(@raster) > $size * 3;
# Scale
$scale = 1;
( run in 0.974 second using v1.01-cache-2.11-cpan-71847e10f99 )