<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">package PDF::API2::Win32;

use strict;
no warnings qw[ deprecated recursion uninitialized ];

our $VERSION = '2.033'; # VERSION

package PDF::API2;

use Win32::TieRegistry;

use strict;
no warnings qw[ recursion uninitialized ];

our $wf = {};

$Registry-&gt;Delimiter('/');

my $fontdir = $Registry-&gt;{'HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/Shell Folders'}-&gt;{'Fonts'};

my $subKey = $Registry-&gt;{'HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Fonts/'};

foreach my $k (sort keys %{$subKey}) {
    next unless $subKey-&gt;{$k} =~ /\.[ot]tf$/i;
    my $kk = lc $k;
    $kk =~ s|^/||;
    $kk =~ s|\s+\(truetype\).*$||g;
    $kk =~ s|\s+\(opentype\).*$||g;
    $kk =~ s/[^a-z0-9]+//g;

    $wf-&gt;{$kk} = {};

    $wf-&gt;{$kk}-&gt;{'display'} = $k;
    $wf-&gt;{$kk}-&gt;{'display'} =~ s|^/||;

    if (-e "$fontdir/$subKey-&gt;{$k}") {
        $wf-&gt;{$kk}-&gt;{'ttfile'} = "$fontdir/$subKey-&gt;{$k}";
    }
    else {
        $wf-&gt;{$kk}-&gt;{'ttfile'} = $subKey-&gt;{$k};
    }
}

$subKey = $Registry-&gt;{'HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Type 1 Installer/Type 1 Fonts/'};

foreach my $k (sort keys %$subKey) {
    my $kk = lc $k;
    $kk =~ s|^/||;
    $kk =~ s/[^a-z0-9]+//g;

    $wf-&gt;{$kk} = {};

    $wf-&gt;{$kk}-&gt;{'display'} = $k;
    $wf-&gt;{$kk}-&gt;{'display'} =~ s|^/||;

    my $t;
    ($t, $wf-&gt;{$kk}-&gt;{'pfmfile'}, $wf-&gt;{$kk}-&gt;{'pfbfile'}) = split(/\0/, $subKey-&gt;{$k});

    if (-e "$fontdir/$wf-&gt;{$kk}-&gt;{pfmfile}") {
        $wf-&gt;{$kk}-&gt;{'pfmfile'} = "$fontdir/" . $wf-&gt;{$kk}-&gt;{'pfmfile'};
        $wf-&gt;{$kk}-&gt;{'pfbfile'} = "$fontdir/" . $wf-&gt;{$kk}-&gt;{'pfbfile'};
    }
}

sub enumwinfonts {
    my $self = shift();
    return map { $_ =&gt; $wf-&gt;{$_}-&gt;{'display'} } keys %$wf;
}

sub winfont {
    my $self = shift();
    my $key = lc(shift());
    $key =~ s/[^a-z0-9]+//g;

    return unless defined $wf and defined $wf-&gt;{$key};

    if (defined $wf-&gt;{$key}-&gt;{'ttfile'}) {
        return $self-&gt;ttfont($wf-&gt;{$key}-&gt;{'ttfile'}, @_);
    }
    else {
        return $self-&gt;psfont($wf-&gt;{$key}-&gt;{'pfbfile'}, -pfmfile =&gt; $wf-&gt;{$key}-&gt;{'pfmfile'}, @_);
    }
}

1;
</pre></body></html>