Perl/PostScript::Simple

De Astillas.net
Módulo PostScript::Simple
Versión 0.7
Uso Impresión
Propósito Crea documentos PostScript


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.