ViceRaid has asked for the wisdom of the Perl Monks concerning the following question:

Good morning

I'd like to use my nice Poscript Type 1 (windows format) typefaces with GD. If I want to use TrueType, I can compile gd linked with freetype, and then I can rasterise those fonts into an image. However, I can't seem to find much information anywhere on the best way of using Type 1 fonts with Perl's GD. I don't want to have to convert the typefaces from Type1 to TTF format, 'cos they tend to end up looking a bit nasty. Ideally, I'd like a solution that will work happily with *nix Perl, Perl under Cygwin and Activestate Perl on Windows.

I know it must be possible, because PHP and the Imager module can do it ... tips and pointers humbly appreciated.


Replies are listed 'Best First'.
Re: Using Postscript Type 1 Fonts with GD
by ViceRaid (Chaplain) on Feb 05, 2004 at 19:15 UTC

    Nearly two years to do the day, I'm replying to my own node. This vexed me for ages; Type 1 is more widely used in design and print, and many of the best cuts of classic typefaces are only available in this format.

    To use Postscript Type 1 format typefaces with GD, you need to make sure that gd (the c library which GD depends on] is compiled with support for Freetype, an Open Source font renderer. Specifically, it needs to be built linking to version 2 of Freetype, as version 1 only support TrueType. I've seen a few linux distro packages of gd (such as that for Slackware) that are linked to Freetype v1.

    Once that's all set up, you should be able to use a Type 1 font in the normal way using GD::Text:

    my $gd_text = GD::Text->new() or die GD::Text::error(); # using TrueType $gd_text->set_font('funny.ttf', 12) or die $gd_text->error; # using Type 1 - Bodoni Bold Italic $gd_text->set_font('bpbi____.pfb', 12) or die $gd_text->error;