summaryrefslogtreecommitdiff
path: root/lib/PDF/Builder/Resource/Font
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PDF/Builder/Resource/Font')
-rw-r--r--lib/PDF/Builder/Resource/Font/BdFont.pm14
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont.pm65
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/bankgothic.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/courier.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/courierbold.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/courierboldoblique.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/courieroblique.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/georgia.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/georgiabold.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/georgiabolditalic.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/georgiaitalic.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/helvetica.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/helveticabold.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/helveticaboldoblique.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/helveticaoblique.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/symbol.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/timesbold.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/timesbolditalic.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/timesitalic.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/timesroman.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/trebuchet.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/trebuchetbold.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/trebuchetbolditalic.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/trebuchetitalic.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/verdana.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/verdanabold.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/verdanabolditalic.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/verdanaitalic.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/webdings.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/wingdings.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/CoreFont/zapfdingbats.pm2
-rw-r--r--lib/PDF/Builder/Resource/Font/Postscript.pm101
-rw-r--r--lib/PDF/Builder/Resource/Font/SynFont.pm10
33 files changed, 166 insertions, 82 deletions
diff --git a/lib/PDF/Builder/Resource/Font/BdFont.pm b/lib/PDF/Builder/Resource/Font/BdFont.pm
index bb4c23e..ffb026f 100644
--- a/lib/PDF/Builder/Resource/Font/BdFont.pm
+++ b/lib/PDF/Builder/Resource/Font/BdFont.pm
@@ -5,8 +5,8 @@ use base 'PDF::Builder::Resource::Font';
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
-our $LAST_UPDATE = '3.024'; # manually update whenever code is changed
+our $VERSION = '3.026'; # VERSION
+our $LAST_UPDATE = '3.026'; # manually update whenever code is changed
use PDF::Builder::Util;
use PDF::Builder::Basic::PDF::Utils;
@@ -40,14 +40,16 @@ for body text!
=head1 METHODS
-=over 4
+=head2 new
-=cut
+ $font = PDF::Builder::Resource::Font::BdFont->new($pdf, $font, %options)
-=item $font = PDF::Builder::Resource::Font::BdFont->new($pdf, $font, %options)
+=over
Returns a BmpFont object.
+=back
+
=cut
#I<encode>
@@ -438,8 +440,6 @@ sub filled_circle {
__END__
-=back
-
=head1 AUTHOR
Alfred Reibenschuh, extensively rewritten by Phil Perry
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont.pm b/lib/PDF/Builder/Resource/Font/CoreFont.pm
index f615f9a..4c4da67 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont.pm
@@ -5,8 +5,8 @@ use base 'PDF::Builder::Resource::Font';
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
-our $LAST_UPDATE = '3.024'; # manually update whenever code is changed
+our $VERSION = '3.026'; # VERSION
+our $LAST_UPDATE = '3.026'; # manually update whenever code is changed
use File::Basename;
@@ -38,9 +38,11 @@ PDF::Builder::Resource::Font::CoreFont - Module for using the 14 standard PDF bu
=head1 METHODS
-=over
+=head2 new
+
+ $font = PDF::Builder::Resource::Font::CoreFont->new($pdf, $fontname, %options)
-=item $font = PDF::Builder::Resource::Font::CoreFont->new($pdf, $fontname, %options)
+=over
Returns a corefont object.
@@ -48,12 +50,15 @@ Valid %options are:
=over
-I<encode>
-... changes the encoding of the font from its default.
+=item encode
+
+Changes the encoding of the font from its default.
See I<perl's Encode> for the supported values. B<Warning:> only single byte
encodings are permitted. Multibyte encodings such as 'utf8' are forbidden.
-I<pdfname> ... changes the reference-name of the font from its default.
+=item pdfname
+
+Changes the reference-name of the font from its default.
The reference-name is normally generated automatically and can be
retrieved via C<$pdfname=$font->name()>.
@@ -67,23 +72,19 @@ B<standard PDF types>
=over
-=over
-
-=item * helvetica helveticaoblique helveticabold helvetiaboldoblique
+=item * helvetica, helveticaoblique, helveticabold, helvetiaboldoblique
May have Arial substituted on some systems (e.g., Windows)
-=item * courier courieroblique courierbold courierboldoblique
+=item * courier, courieroblique, courierbold, courierboldoblique
Fixed pitch, may have Courier New substituted on some systems (e.g., Windows)
-=item * timesroman timesitalic timesbold timesbolditalic
+=item * timesroman, timesitalic, timesbold, timesbolditalic
May have Times New Roman substituted on some systems (e.g., Windows)
-=item * symbol zapfdingbats
-
-=back
+=item * symbol, zapfdingbats
=back
@@ -91,21 +92,17 @@ B<Primarily Windows typefaces>
=over
-=over
-
-=item * georgia georgiaitalic georgiabold georgiabolditalic
-
-=item * verdana verdanaitalic verdanabold verdanabolditalic
+=item * georgia, georgiaitalic, georgiabold, georgiabolditalic
-=item * trebuchet trebuchetitalic trebuchetbold trebuchetbolditalic
+=item * verdana, verdanaitalic, verdanabold, verdanabolditalic
-=item * bankgothic bankgothicitalic bankgothicbold bankgothicitalic
+=item * trebuchet, trebuchetitalic, trebuchetbold, trebuchetbolditalic
-Free versions of Bank Gothic are often only medium weight.
+=item * bankgothic, bankgothicitalic, bankgothicbold, bankgothicitalic
-=item * webdings wingdings
+Free versions of Bank Gothic are often only medium weight Roman (bankgothic).
-=back
+=item * webdings, wingdings
=back
@@ -253,13 +250,17 @@ sub new {
return $self;
}
-=over
+=head2 is_standard
+
+ $bool = $class->is_standard($name)
-=item $bool = $class->is_standard($name)
+=over
Returns true if C<$name> is an exact, case-sensitive match for one of the
standard font names shown above.
+=back
+
=cut
sub is_standard {
@@ -288,10 +289,16 @@ sub is_standard {
return;
}
-=item PDF::Builder::Resource::Font::CoreFont->loadallfonts()
+=head2 loadallfonts
+
+ PDF::Builder::Resource::Font::CoreFont->loadallfonts()
+
+=over
"Requires in" all fonts available as corefonts.
+=back
+
=cut
sub loadallfonts {
@@ -426,8 +433,6 @@ BEGIN
__END__
-=back
-
=head1 AUTHOR
Alfred Reibenschuh
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/bankgothic.pm b/lib/PDF/Builder/Resource/Font/CoreFont/bankgothic.pm
index f27f6ee..38c55d0 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/bankgothic.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/bankgothic.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::bankgothic;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.013'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/courier.pm b/lib/PDF/Builder/Resource/Font/CoreFont/courier.pm
index fc4131c..1f51b22 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/courier.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/courier.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::courier;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.019'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/courierbold.pm b/lib/PDF/Builder/Resource/Font/CoreFont/courierbold.pm
index 4d57b24..0ca600e 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/courierbold.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/courierbold.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::courierbold;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.019'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/courierboldoblique.pm b/lib/PDF/Builder/Resource/Font/CoreFont/courierboldoblique.pm
index 1d97ebd..dfd06d9 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/courierboldoblique.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/courierboldoblique.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::courierboldoblique;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.019'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/courieroblique.pm b/lib/PDF/Builder/Resource/Font/CoreFont/courieroblique.pm
index 0817c06..30fa9af 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/courieroblique.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/courieroblique.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::courieroblique;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.019'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/georgia.pm b/lib/PDF/Builder/Resource/Font/CoreFont/georgia.pm
index 12c16f9..b1993b4 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/georgia.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/georgia.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::georgia;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.018'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/georgiabold.pm b/lib/PDF/Builder/Resource/Font/CoreFont/georgiabold.pm
index 034514e..006ebeb 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/georgiabold.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/georgiabold.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::georgiabold;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.018'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/georgiabolditalic.pm b/lib/PDF/Builder/Resource/Font/CoreFont/georgiabolditalic.pm
index f55159b..b2d319d 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/georgiabolditalic.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/georgiabolditalic.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::georgiabolditalic;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.018'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/georgiaitalic.pm b/lib/PDF/Builder/Resource/Font/CoreFont/georgiaitalic.pm
index 2cef3b3..4cbb3e8 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/georgiaitalic.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/georgiaitalic.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::georgiaitalic;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.018'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/helvetica.pm b/lib/PDF/Builder/Resource/Font/CoreFont/helvetica.pm
index 23d4825..dee3ec4 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/helvetica.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/helvetica.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::helvetica;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.019'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/helveticabold.pm b/lib/PDF/Builder/Resource/Font/CoreFont/helveticabold.pm
index 6d73bc0..a4479d9 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/helveticabold.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/helveticabold.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::helveticabold;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.019'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/helveticaboldoblique.pm b/lib/PDF/Builder/Resource/Font/CoreFont/helveticaboldoblique.pm
index 111137d..3381eed 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/helveticaboldoblique.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/helveticaboldoblique.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::helveticaboldoblique;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.019'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/helveticaoblique.pm b/lib/PDF/Builder/Resource/Font/CoreFont/helveticaoblique.pm
index f7fd3ac..5158348 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/helveticaoblique.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/helveticaoblique.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::helveticaoblique;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.019'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/symbol.pm b/lib/PDF/Builder/Resource/Font/CoreFont/symbol.pm
index d010f89..baa9a03 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/symbol.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/symbol.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::symbol;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.019'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/timesbold.pm b/lib/PDF/Builder/Resource/Font/CoreFont/timesbold.pm
index 88bf02f..138d0ff 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/timesbold.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/timesbold.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::timesbold;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.019'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/timesbolditalic.pm b/lib/PDF/Builder/Resource/Font/CoreFont/timesbolditalic.pm
index eba4bca..c14edd9 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/timesbolditalic.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/timesbolditalic.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::timesbolditalic;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.019'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/timesitalic.pm b/lib/PDF/Builder/Resource/Font/CoreFont/timesitalic.pm
index ea4a9d9..6c8b9b4 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/timesitalic.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/timesitalic.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::timesitalic;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.019'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/timesroman.pm b/lib/PDF/Builder/Resource/Font/CoreFont/timesroman.pm
index 1a162d7..45eacce 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/timesroman.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/timesroman.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::timesroman;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.019'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/trebuchet.pm b/lib/PDF/Builder/Resource/Font/CoreFont/trebuchet.pm
index 421c8e5..b0f8c43 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/trebuchet.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/trebuchet.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::trebuchet;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.018'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/trebuchetbold.pm b/lib/PDF/Builder/Resource/Font/CoreFont/trebuchetbold.pm
index 9f36303..c0d15f7 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/trebuchetbold.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/trebuchetbold.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::trebuchetbold;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.018'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/trebuchetbolditalic.pm b/lib/PDF/Builder/Resource/Font/CoreFont/trebuchetbolditalic.pm
index dbac4e1..7cd6010 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/trebuchetbolditalic.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/trebuchetbolditalic.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::trebuchetbolditalic;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.018'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/trebuchetitalic.pm b/lib/PDF/Builder/Resource/Font/CoreFont/trebuchetitalic.pm
index 0898a60..368f921 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/trebuchetitalic.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/trebuchetitalic.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::trebuchetitalic;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.018'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/verdana.pm b/lib/PDF/Builder/Resource/Font/CoreFont/verdana.pm
index a89e690..be6a4c0 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/verdana.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/verdana.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::verdana;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.018'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/verdanabold.pm b/lib/PDF/Builder/Resource/Font/CoreFont/verdanabold.pm
index 4f941ad..3509f2b 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/verdanabold.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/verdanabold.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::verdanabold;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.018'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/verdanabolditalic.pm b/lib/PDF/Builder/Resource/Font/CoreFont/verdanabolditalic.pm
index a55484a..50019f0 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/verdanabolditalic.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/verdanabolditalic.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::verdanabolditalic;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.018'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/verdanaitalic.pm b/lib/PDF/Builder/Resource/Font/CoreFont/verdanaitalic.pm
index dc08552..0ac50eb 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/verdanaitalic.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/verdanaitalic.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::verdanaitalic;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.018'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/webdings.pm b/lib/PDF/Builder/Resource/Font/CoreFont/webdings.pm
index 58ec60d..df8d45e 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/webdings.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/webdings.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::webdings;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '2.029'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/wingdings.pm b/lib/PDF/Builder/Resource/Font/CoreFont/wingdings.pm
index 2aed6b9..5376345 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/wingdings.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/wingdings.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::wingdings;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '2.029'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/CoreFont/zapfdingbats.pm b/lib/PDF/Builder/Resource/Font/CoreFont/zapfdingbats.pm
index c39bf82..0547fe9 100644
--- a/lib/PDF/Builder/Resource/Font/CoreFont/zapfdingbats.pm
+++ b/lib/PDF/Builder/Resource/Font/CoreFont/zapfdingbats.pm
@@ -3,7 +3,7 @@ package PDF::Builder::Resource::Font::CoreFont::zapfdingbats;
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
+our $VERSION = '3.026'; # VERSION
our $LAST_UPDATE = '3.019'; # manually update whenever code is changed
=head1 NAME
diff --git a/lib/PDF/Builder/Resource/Font/Postscript.pm b/lib/PDF/Builder/Resource/Font/Postscript.pm
index d7d98b8..544d7d5 100644
--- a/lib/PDF/Builder/Resource/Font/Postscript.pm
+++ b/lib/PDF/Builder/Resource/Font/Postscript.pm
@@ -5,8 +5,8 @@ use base 'PDF::Builder::Resource::Font';
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
-our $LAST_UPDATE = '3.024'; # manually update whenever code is changed
+our $VERSION = '3.026'; # VERSION
+our $LAST_UPDATE = '3.026'; # manually update whenever code is changed
use Encode qw(:all);
use IO::File qw();
@@ -18,6 +18,19 @@ use PDF::Builder::Basic::PDF::Utils;
PDF::Builder::Resource::Font::Postscript - support routines for using PostScript fonts. Inherits from L<PDF::Builder::Resource::Font>
+=head1 METHODS
+
+=head2 new
+
+ PDF::Builder::Resource::Font::Postscript->new($pdf, $psfile, %opts)
+
+=over
+
+Create an object for a PostScript font. Handles ASCII (.pfa), binary (.pfb), and
+T1 (.t1) font files, as well as ASCII (.afm) and binary (.pfm) metrics files.
+
+=back
+
=cut
sub new {
@@ -95,17 +108,29 @@ sub readPFAPFB {
die "Cannot find PFA/PFB font file '$file' ..." unless -f $file;
my $l = -s $file;
+ $l1 = $l2 = $l3 = 0;
+ $head = $body = $tail = '';
+
+ my $type = 'pfa';
+ if ($file =~ m/\.pfb$/i) {
+ $type = 'pfb';
+ } elsif ($file =~ m/\.t1$/i) {
+ $type = 't1';
+ }
open(my $inf, "<", $file) or die "$!: $file";
binmode($inf,':raw');
- read($inf, $line, 2);
+ read($inf, $line, 2); # read 2 bytes to check header
@lines = unpack('C*', $line);
- if ($lines[0] == 0x80 && $lines[1] == 1) {
+
+ if ($lines[0] == 0x80 && $lines[1] == 1) { # .pfb
+ # first 6 bytes are 80 01, 4 byte LSB $l1 head length
read($inf, $line, 4);
- $l1 = unpack('V', $line);
+ $l1 = unpack('V', $line); # length of head
seek($inf, $l1, 1);
read($inf, $line, 2);
@lines = unpack('C*', $line);
+ # at start of binary body, 6 bytes 80 01, 4 byte LSB $l2 body length
if ($lines[0] == 0x80 && $lines[1] == 2) {
read($inf, $line, 4);
$l2 = unpack('V', $line);
@@ -115,6 +140,7 @@ sub readPFAPFB {
seek($inf, $l2, 1);
read($inf, $line, 2);
@lines = unpack('C*', $line);
+ # after body, 6 bytes 80 01, 4 byte LSB $l3 tail length
if ($lines[0] == 0x80 && $lines[1] == 1) {
read($inf, $line, 4);
$l3 = unpack('V', $line);
@@ -124,33 +150,84 @@ sub readPFAPFB {
seek($inf, 0, 0);
@lines = <$inf>;
$stream = join('', @lines);
+ # each section, skip over 80 01, length; read in length of section
$t1stream = substr($stream, 6, $l1);
$t1stream .= substr($stream, 12+$l1, $l2);
$t1stream .= substr($stream, 18+$l1+$l2, $l3);
- } elsif ($line eq '%!') {
+
+ } elsif ($line eq '%!' && $type eq 'pfa') {
seek($inf, 0, 0);
while ($line = <$inf>) {
- if (!$l1) {
- $head .= $line;
+ if (!$l1) { # $head empty or not complete yet?
+ $head .= $line; # up through and including currentfile eexec
if ($line=~/eexec$/) {
chomp($head);
$head .= "\x0d";
$l1 = length($head);
}
- } elsif (!$l2) {
- if ($line =~ /^0+$/) {
+ } elsif (!$l2) { # $body empty or not complete yet?
+ if ($line =~ /^0+$/) { # at block of 0's, marking end of body
$l2 = length($body);
$tail = $line;
} else {
chomp($line);
- $body .= pack('H*', $line);
+ $body .= pack('H*', $line); # binary form of hex codes
}
- } else {
+ } else { # rest goes into the $tail
$tail .= $line;
}
}
$l3 = length($tail);
+ # head = individual lines (^M terminated) with settings list
+ # body = one long string of bytes (binary)
+ # tail = 8 lines x 64 0's ^M terminated, cleartomark (no ^M)
+ $t1stream = "$head$body$tail";
+
+ } elsif ($line eq '%!' && $type eq 't1') {
+ # .t1
+ my $pos;
+ seek($inf, 0, 0);
+ while (1) { # head
+ read($inf, $line, 200);
+ $head .= $line;
+ $pos = index($head, "currentfile eexec\x0D");
+ if ($pos > 0) {
+ # found end of head, so split there
+ $body = substr($head, $pos+18);
+ $head = substr($head, 0, $pos+18);
+ $l1 = length($head);
+ last;
+ }
+ }
+ while (1) { # body
+ read($inf, $line, 200);
+ $body .= $line;
+ # 1111111111222222222233333333334444444444555555555566666
+ # 1234567890123456789012345678901234567890123456789012345678901234
+ $pos = index($body, "0000000000000000000000000000000000000000000000000000000000000000");
+ if ($pos > 0) {
+ # found end of body, so split there
+ $tail = substr($body, $pos);
+ $body = substr($body, 0, $pos);
+ $l2 = length($body);
+ last;
+ }
+ }
+ while (1) { # remainder into tail
+ read($inf, $line, 200);
+ $tail .= $line;
+ if (length($line) == 0) {
+ # found end of tail
+ $l3 = length($tail);
+ last;
+ }
+ }
+
+ # head = individual lines (^M terminated) with settings list
+ # body = one long string of bytes (binary)
+ # tail = 8 lines x 64 0's ^M terminated, cleartomark (no ^M)
$t1stream = "$head$body$tail";
+
} else {
die "Unsupported font-format in file '$file' at marker='1'.";
}
diff --git a/lib/PDF/Builder/Resource/Font/SynFont.pm b/lib/PDF/Builder/Resource/Font/SynFont.pm
index 47a9712..906a7d9 100644
--- a/lib/PDF/Builder/Resource/Font/SynFont.pm
+++ b/lib/PDF/Builder/Resource/Font/SynFont.pm
@@ -5,8 +5,8 @@ use base 'PDF::Builder::Resource::Font';
use strict;
use warnings;
-our $VERSION = '3.025'; # VERSION
-our $LAST_UPDATE = '3.024'; # manually update whenever code is changed
+our $VERSION = '3.026'; # VERSION
+our $LAST_UPDATE = '3.026'; # manually update whenever code is changed
use Math::Trig; # CAUTION: deg2rad(0) = deg2rad(360) = 0!
use Unicode::UCD 'charinfo';
@@ -49,9 +49,11 @@ This is for compatibility with recent changes to PDF::API2.
=head1 METHODS
-=over
+=head2 new
+
+ $font = PDF::Builder::Resource::Font::SynFont->new($pdf, $fontobj, %opts)
-=item $font = PDF::Builder::Resource::Font::SynFont->new($pdf, $fontobj, %opts)
+=over
Returns a synfont object. C<$fontobj> is a normal font object read in from
a file, and C<$font> is the modified output.