package PDF::FromHTML::Template::Constants;

use strict;

BEGIN {
    use Exporter ();

    use vars qw(@ISA @EXPORT_OK);

    @ISA = qw(Exporter);

    @EXPORT_OK = qw(
        %PointsPer
        %Verify
    );
}

# This is a list of conversions from various units of measure to points.
# The key will be the first letter of the unit.
our %PointsPer = (
    I => 72.27,    # Inches
    P => 1,        # Points
);
$PointsPer{C} = ($PointsPer{I} / 2.54); # Centimeters

#GGG Add:
#    PDFTemplate properties (to go with %NoSetProperty)

our %Verify = (

#GGG This also needs improvement ... Not all available fonts are listed
    'FACE' => {
        '__DEFAULT__' => 'Times-Bold',
        ( map { $_ => 1 } qw(
            Courier Courier-Bold Courier-Oblique Courier-BoldOblique
            Helvetica Helvetica-Bold Helvetica-Oblique Helvetica-BoldOblique
            Times-Roman Times-Bold Times-Italic Times-BoldItalic
            Symbol ZapfDingbats
        )),
    },

    'ALIGN' => {
        '__DEFAULT__' => 'left',
#GGG Add a full-justify option - this requires a lot of coding prowess
        ( map { $_ => 1 } qw(
            center left right
        )),
    },

    'OPENACTION' => {
        '__DEFAULT__' => 'fitpage',
        ( map { $_ => 1 } qw(
            fitbox fitheight fitpage fitwidth retain
        )),
    },

    'OPENMODE' => {
        '__DEFAULT__' => 'none',
        ( map { $_ => 1 } qw(
            bookmarks fullscreen none thumbnails
        )),
    },

    # Pagesize is specified in points
    'PAGESIZE' => {
        '__DEFAULT__' => 'Letter',
        'Letter' => {
            PAGE_WIDTH  => 8.5 * $PointsPer{I},
            PAGE_HEIGHT => 11 * $PointsPer{I},
        },
        'Legal' => {
            PAGE_WIDTH  => 8.5 * $PointsPer{I},
            PAGE_HEIGHT => 14 * $PointsPer{I},
        },
        'A0' => {
            PAGE_WIDTH  => 2380,
            PAGE_HEIGHT => 3368,
        },
        'A1' => {
            PAGE_WIDTH  => 1684,
            PAGE_HEIGHT => 2380,
        },
        'A2' => {
            PAGE_WIDTH  => 1190,
            PAGE_HEIGHT => 1684,
        },
        'A3' => {
            PAGE_WIDTH  => 842,
            PAGE_HEIGHT => 1190,
        },
        'A4' => {
            PAGE_WIDTH  => 595,
            PAGE_HEIGHT => 842,
        },
    },
);

1;
__END__