Perl/PostScript::Simple
Módulo | PostScript::Simple |
---|---|
Versión | 0.7 |
Uso | Impresión |
Propósito | Crea documentos PostScript |
Sumario
Referencia rápida
#!/usr/bin/perl
use PostScript::Simple;
my $ps = PostScript::Simple->new( papersize => q(A4) );
$ps->text( 3, 4, q(Hello, world ! ) );
$ps->output("sample.ps");
Extractos de los fuentes
Reproduzco aquí parte de las estructuras internas, mencionadas de pasada en la documentación, porque son útiles cuando se emplean en programas.
Colores
# is there another colour database that can be used instead of defining
# this one here? what about the X-windows one? (apart from MS-Win-probs?) XXXXX
my %pscolours = (# {{{
black => "0 0 0",
brightred => "1 0 0",
brightgreen => "0 1 0",
brightblue => "0 0 1",
red => "0.8 0 0",
green => "0 0.8 0",
blue => "0 0 0.8",
darkred => "0.5 0 0",
darkgreen => "0 0.5 0",
darkblue => "0 0 0.5",
grey10 => "0.1 0.1 0.1",
grey20 => "0.2 0.2 0.2",
grey30 => "0.3 0.3 0.3",
grey40 => "0.4 0.4 0.4",
grey50 => "0.5 0.5 0.5",
grey60 => "0.6 0.6 0.6",
grey70 => "0.7 0.7 0.7",
grey80 => "0.8 0.8 0.8",
grey90 => "0.9 0.9 0.9",
white => "1 1 1",
);# }}}
Tamaños de página
# define page sizes here (a4, letter, etc)
# should be Properly Cased
my %pspaper = (# {{{
A0 => '2384 3370',
A1 => '1684 2384',
A2 => '1191 1684',
A3 => "841.88976 1190.5512",
A4 => "595.27559 841.88976",
A5 => "420.94488 595.27559",
A6 => '297 420',
A7 => '210 297',
A8 => '148 210',
A9 => '105 148',
B0 => '2920 4127',
B1 => '2064 2920',
B2 => '1460 2064',
B3 => '1032 1460',
B4 => '729 1032',
B5 => '516 729',
B6 => '363 516',
B7 => '258 363',
B8 => '181 258',
B9 => '127 181 ',
B10 => '91 127',
Executive => '522 756',
Folio => '595 935',
'Half-Letter' => '612 397',
Letter => "612 792",
'US-Letter' => '612 792',
Legal => '612 1008',
'US-Legal' => '612 1008',
Tabloid => '792 1224',
'SuperB' => '843 1227',
Ledger => '1224 792',
'Comm #10 Envelope' => '297 684',
'Envelope-Monarch' => '280 542',
'Envelope-DL' => '312 624',
'Envelope-C5' => '461 648',
'EuroPostcard' => '298 420',
);# }}
Fuentes tipográficas
No hay que olvidar que se debe añadir el sufijo -iso para emplear las codificadas correctamente en el juego de caracteres Latin1.
# The 13 standard fonts that are available on all PS 1 implementations:
my @fonts = (# {{{
'Courier',
'Courier-Bold',
'Courier-BoldOblique',
'Courier-Oblique',
'Helvetica',
'Helvetica-Bold',
'Helvetica-BoldOblique',
'Helvetica-Oblique',
'Times-Roman',
'Times-Bold',
'Times-BoldItalic',
'Times-Italic',
'Symbol');# }}}
Consideraciones
Dada la antigüedad del módulo -la última versión es del 2006- y su falta de actualizaciones presenta algunas peculiaridades que es necesario tener en cuenta al emplearlo dentro de un programa. En general funciona bien, es rápido y flexible, pero tiene algunos errores un tanto desconcertantes.
Juego de caracteres
El juego de caracteres final es el Latin1. El parámetro reencode tiene como valor predeterminado ISOLatin1Encoding y las fuentes a elegir deben llevar la extensión -iso. En caso contrario los caracteres acentuados no funcionarán. Se puede emplear el módulo Text::Iconv para convertirlos desde UTF8 si es necesario y funciona bien.
Tipografía
El módulo emplea las trece (13) tipografías estándar de PostScript nivel 1 que son:
- Times-Roman
- Helvetica
- Courier
- Symbol (Symbol)
- Times-Italic
- Helvetica-Oblique
- Courier-Oblique
- Times-Bold
- Helvetica-Bold
- Courier-Bold
- Times-BoldItalic
- Helvetica-BoldOblique
- Courier-BoldOblique
Algo más de información en los enlaces de la página de PostScript.
Tamaños de papel
El tamaño de papel está limitado a A3,A4,A5 y Letter en la documentación; realmente existen más posibilidades.