[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [volume] [parte]


Capitolo 208.   Rielaborazione PostScript

Nel capitolo 207 si accenna alla struttura di un file PostScript, e al fatto che il suo contenuto possa essere riadattato. Per queste rielaborazioni vengono in aiuto diversi programmi, in particolare la raccolta denominata PSUtils (PostScript utilities).

Attraverso la rielaborazione di un file PostScript, si potrebbe ottenere:

Purtroppo, questi programmi di servizio non sono perfetti e funzionano generalmente solo con file che rispettano alcune convenzioni, allo scopo di facilitare l'individuazione delle pagine del documento.

208.1   Sequenza di stampa

Quando si vuole organizzare la stampa di un documento voluminoso, il primo problema è stabilire la gestione della stampa fronte-retro. Dal momento che si dispone normalmente di stampanti che stampano una sola faccia per volta, dopo la prima passata, occorre stabilire come deve essere girata la carta e se deve essere invertita la sequenza dei fogli.

Figura 208.1. Movimento della carta in una stampante laser tipica.

movimento della carta in una stampante

Il programma GV permette di stampare in maniera distinta le pagine dispari da quelle pari, ma per la gestione di sequenze più complesse, occorre fare affidamento sui programmi che sono descritti in queste sezioni.

Il problema più comune è quello di stampare su un solo foglio, fronte e retro, quattro facciate ridotte alla metà della dimensione normale. Si osservi la figura 208.2; rappresenta la sequenza necessaria per la stampa corretta di quattro facciate su un solo foglio, quando si dispone di una stampante normale che stampa su una sola facciata alla volta, tenendo conto quindi che il foglio deve essere reimmesso nella stampante.

Figura 208.2. Sequenza per la stampa di quattro facciate su un foglio normale utilizzando stampanti normali.

sequenza stampa quattro facciate su foglio normale

Se la stampante funziona come mostrato nei primi due modelli che appaiono nella figura 208.1, si può comprendere il meccanismo osservando la sequenza di operazioni mostrata dalla figura 208.3. In pratica, dopo la stampa della prima facciata, occorre prendere il foglio senza ruotarlo e reimmetterlo in ingresso per la stampa.

Figura 208.3. Sequenza pratica per la stampa di quattro facciate su un foglio normale, utilizzando stampanti normali.

sequenza stampa quattro facciate su foglio normale bis

Se la stampa supera le quattro facciate ridotte, ovvero se richiede più di un foglio, occorre suddividere la stampa in modo da stampare prima il fronte e poi il retro. Nel momento in cui si passa a stampare il retro, occorre verificare se si deve invertire la sequenza dei fogli, oppure se si invia la stampa del gruppo di pagine in senso inverso.

Volendo, il problema si può complicare ancora di più, se i fogli che si ottengono devono essere rilegati a gruppetti (segnature), attraverso una cucitura centrale. In pratica, la prima facciata del primo foglio contiene la prima e l'ultima pagina, mentre la seconda facciata contiene la seconda e la penultima pagina, continuando così con i fogli successivi.

Un altro problema da considerare quando si utilizzano stampanti laser, è la temperatura. La stampa richiede il riscaldamento e la fusione dell'inchiostro in polvere, così facendo, sia la stampante che la carta si riscaldano notevolmente durante il funzionamento. Quando si deve reimmettere la carta che è già stata stampata da un lato, è probabile che alcuni fogli tendano ad appiccicarsi, rovinando la sequenza di stampa. In queste situazioni è consigliabile stampare a piccoli blocchi, per dare il tempo alla stampante e alla carta di raffreddarsi un po'.

Le stampanti duplex possono stampare simultaneamente fronte-retro. Per arrivare a questo risultato, l'immagine che viene stampata nel retro del foglio è rovesciata tenendo conto dell'orientamento normale di questo: verticale. Quando si vogliono stampare quattro facciate su un foglio unico, le cose si complicano; in pratica, le due facciate ridotte che vanno collocate nel retro del foglio, devono essere rovesciate. Forse, la figura 208.4 aiuta a comprendere la cosa.

Figura 208.4. Sequenza per la stampa di quattro facciate su un foglio normale utilizzando stampanti duplex.

sequenza stampa quattro facciate su foglio normale duplex

Una sequenza di stampa di questo tipo può essere simulata anche con una stampante normale, nella quale i fogli debbano essere reimmessi per la stampa della parte retrostante. la figura 208.5 mostra in che modo debbano essere reimmessi i fogli in questo caso.

Figura 208.5. Sequenza pratica per la stampa di quattro facciate su un foglio normale simulando una stampante duplex.

sequenza stampa quattro facciate su foglio normale duplex bis

208.1.1   Piega doppia

Si possono stampare su un solo figlio, fronte e retro, otto facciate ridotte; successivamente si può piegare e tagliare il foglio in modo da ottenere un libretto molto piccolo, in proporzione alla dimensione di partenza. In pratica, supponendo di partire da un foglio A4, si vuole arrivare a una dimensione simile al A6, che si ha proprio quando si piega due volte un foglio A4.

Figura 208.6. Un foglio piegato in quattro per rappresentare otto pagine ridotte.

foglio piegato in quattro

La figura 208.6 dovrebbe chiarire in che modo vada piegato il foglio e si intravede la sequenza delle pagine. La figura 208.7 mostra meglio la sequenza delle pagine ridotte, mostrando anche quando queste devono risultare capovolte.

Figura 208.7. Schema per stampare quando si intende piegare il foglio due volte.

schema di un foglio piegato in quattro

Naturalmente, volendo piegare assieme più fogli, la sequenza si complica ulteriormente, pur rimanendo questo il principio di funzionamento.

Le pagine piegate in questo modo, vanno tagliate nella parte alta, dopo la piega. Un libro stampato in questo modo, potrebbe essere rilegato ignorando il problema della pagine attaccate sul lato superiore, lasciando poi al lettore il compito di separarle con un tagliacarte.

208.2   PSUtils

La raccolta di programmi più importante per la rielaborazione dei file PostScript è PSUtils. (1) Nelle sezioni seguenti viene descritto il funzionamento dei suoi componenti più importanti.

Molti di questi programmi hanno in comune le opzioni che vengono elencate brevemente nella tabella 208.8.

Tabella 208.8. Opzioni comuni dei programmi di PSUtils.

Opzione Descrizione
-wlarghezza
Definisce l'ampiezza orizzontale della carta del formato finale. Se il valore viene espresso senza l'indicazione dell'unità di misura, si intende trattarsi di punti tipografici.
-haltezza
Definisce l'ampiezza verticale della carta del formato finale. Se il valore viene espresso senza l'indicazione dell'unità di misura, si intende trattarsi di punti tipografici.
-pformato
In alternativa all'indicazione delle dimensioni del formato finale, si può usare questa opzione per indicare direttamente il nome standard del formato finale. Se le dimensioni non vengono definite, si sottintende trattarsi di a4.
-Wlarghezza
Definisce l'ampiezza orizzontale della carta del formato di origine. Se il valore viene espresso senza l'indicazione dell'unità di misura, si intende trattarsi di punti tipografici.
-Haltezza
Definisce l'ampiezza verticale della carta del formato di origine. Se il valore viene espresso senza l'indicazione dell'unità di misura, si intende trattarsi di punti tipografici.
-Pformato
In alternativa all'indicazione delle dimensioni del formato di origine, si può usare questa opzione per indicare direttamente il nome standard del formato di origine. Se le dimensioni non vengono definite, si sottintende trattarsi di a4.
-q
Durante l'elaborazione, viene emesso attraverso lo standard error l'elenco dei numeri di pagina che vengono elaborati. Se si utilizza questa opzione, se ne sopprime la segnalazione.

È il caso di sottolineare che le dimensioni della carta, quando devono essere fornite, possono essere espresse senza l'indicazione di un'unità di misura, facendo riferimento implicitamente a punti tipografici da 1/72 di pollice, altrimenti si possono indicare le sigle cm o in che si riferiscono rispettivamente a centimetri e pollici. Il formato della carta può essere espresso anche attraverso il suo nome standard; precisamente vengono accettate le parole chiave: a3, a4, a5, b5, letter, legal, tabloid, statement, executive, folio, quarto e 10x14.

208.2.1   Utilizzo di «psresize»

Il programma psresize elabora un file PostScript adattandone le dimensioni, in base a quanto specificato con le opzioni, generando un nuovo file. Se il secondo file non viene indicato attraverso la riga di comando, il risultato viene emesso attraverso lo standard output; se non viene indicato nemmeno il primo, il file da elaborare viene tratto dallo standard input.

psresize [opzioni] [file_originale [file_elaborato]]

Sono disponibili le opzioni comuni elencate nella tabella 208.8.

208.2.2   Utilizzo di «psselect»

Il programma psselect elabora un file PostScript estraendone alcune pagine e generando un nuovo file con queste. Se il secondo file non viene indicato attraverso la riga di comando, il risultato viene emesso attraverso lo standard output; se non viene indicato nemmeno il primo, il file da elaborare viene tratto dallo standard input.

psselect [opzioni] [file_originale [file_elaborato]]

Le pagine vengono selezionate attraverso l'opzione -p che può essere usata congiuntamente a -e (pagine pari) oppure -o (pagine dispari).

I numeri di pagina a cui si fa riferimento, sono relativi alla disposizione effettiva, contando a partire dal numero uno. Infatti, un file PostScript può essere il risultato di un assemblaggio di pagine numerate in vario modo, dove questa numerazione può non corrispondere alla disposizione effettiva delle pagine all'interno del file.

Tabella 208.9. Alcune opzioni.

Opzione Descrizione
-e
Seleziona solo le pagine pari (even).
-o
Seleziona solo le pagine dispari (odd).
-ppagine
Permette di specificare un gruppo di pagine, attraverso un elenco separato da virgole. All'interno dell'elenco si possono specificare anche degli intervalli, separando il numero iniziale da quello finale con un trattino singolo (-). Se un numero di pagina è prefissato dal trattino basso (_), questo si intende riferito alla fine del documento, contando all'indietro.
-r
Con questa opzione, le pagine estratte vengono organizzate in ordine inverso rispetto a quello di origine (reverse).
-q
Durante l'elaborazione, viene emesso attraverso lo standard error l'elenco dei numeri di pagina che vengono elaborati. Se si utilizza questa opzione, se ne sopprime la segnalazione (quiet).

Segue la descrizione di alcuni esempi.

208.2.3   Utilizzo di «psnup»

Il programma psnup elabora un file PostScript generando un file in cui diverse pagine di origine sono assemblate in un'unica pagina finale. In pratica permette di ottenere due o più pagine in un'unica facciata.

psnup [opzioni] [file_originale [file_elaborato]]

Se il secondo file non viene indicato attraverso la riga di comando, il risultato viene emesso attraverso lo standard output; se non viene indicato nemmeno il primo, il file da elaborare viene tratto dallo standard input.

Le pagine riunite assieme da psnup sono inserite in sequenza, così come si trovano nel file originale. Per cambiare l'ordine di stampa in modo da poter ottenere un fronte-retro, occorre preelaborare il file di origine attraverso psbook.

Sono disponibili le opzioni comuni elencate nella tabella 208.8; inoltre:

Opzione Descrizione
-n
Un trattino seguito da un numero indica la quantità di pagine che si vogliono unire in un'unica pagina finale. Per esempio, -2 fa in modo che su una pagina finale siano unite assieme due pagine di quelle originali, ridotte opportunamente.

Segue la descrizione di alcuni esempi.

208.2.4   Utilizzo di «psbook»

Il programma psbook elabora un file PostScript generando un altro file in cui la sequenza delle pagine risulta alterata in modo da poter stampare un libretto. Per esempio, nel caso della stampa di gruppi di quattro pagine, la sequenza generata è 4-1-2-3, in modo da poter stampare un foglio in cui sul fronte (recto) appaiano le pagine 4-1 e sul retro (tergo) le pagine 2-3. Questo permette di piegare il foglio e di leggerlo a modo di libretto. In tal caso si hanno legature (segnature) di un solo foglio.

psbook [opzioni] [file_originale [file_elaborato]]

I gruppi di pagine possono essere di dimensioni maggiori, precisamente si tratta di multipli di quattro; se non viene specificato diversamente con le opzioni, si intende un gruppo di dimensioni sufficienti a contenere tutte le pagine contenute nel file originale.

Se il secondo file non viene indicato attraverso la riga di comando, il risultato viene emesso attraverso lo standard output; se non viene indicato nemmeno il primo, il file da elaborare viene tratto dallo standard input.

Tabella 208.11. Alcune opzioni.

Opzione Descrizione
-q
Durante l'elaborazione, viene emesso attraverso lo standard error l'elenco dei numeri di pagina che vengono elaborati. Se si utilizza questa opzione, se ne sopprime la segnalazione.
-sn
L'opzione -s permette di definire la dimensione del raggruppamento. Se non viene specificato, si intende un gruppo unico per tutte le pagine del file originale. Il valore minimo è quattro e può assumere solo un valore multiplo a quattro.

Segue la descrizione di alcuni esempi.

208.2.5   Utilizzo di «pstops»

Il programma pstops elabora un file PostScript generando un altro file in cui le pagine possono figurare ridotte, ingrandite, ruotate e sovrapposte. Lo scopo di pstops è anche quello di riorganizzare la sequenza di queste pagine, in modo più libero rispetto a psbook.

pstops [opzioni] definizione_pagine [file_originale [file_elaborato]]

Se il secondo file non viene indicato attraverso la riga di comando, il risultato viene emesso attraverso lo standard output; se non viene indicato nemmeno il primo, il file da elaborare viene tratto dallo standard input.

L'argomento più delicato di pstops è quello che serve a definire le pagine: si tratta di un argomento singolo che definisce come sono raggruppate e per ogni raggruppamento definisce le nuove pagine che vengono generate. Per comprendere il senso di ciò occorre scomporre questo argomento in fasi successive. Per prima cosa viene definito come sono fatti i gruppi:

[modulo:]definizione_pagine_del_gruppo

Il modulo è un numero che esprime la quantità di pagine da prendere in considerazione di volta in volta. Il valore minimo è di una sola pagina e si tratta anche di quello predefinito nel caso non sia indicato espressamente. In base a questo raggruppamento, vengono definite delle pagine relative numerate a partire da zero, fino al valore del modulo meno uno. Ogni pagina relativa viene definita con la sintassi seguente:

[-]n_relativo_pagina[L][R][U][@scala][(scostamento_orizzontale,scostamento_verticale)]

In pratica, il numero relativo della pagina serve a specificare a quale pagina del modulo si fa riferimento. Questo numero potrebbe essere fatto precedere dal segno -, ma in tal caso si intende fare riferimento a raggruppamenti che partono dalle pagine finali del documento e scorrono verso quelle iniziali.

Le lettere L, R e U, servono rispettivamente a ottenere una rotazione a destra (di 90 gradi in senso orario), a sinistra (di 90 gradi in senso antiorario) e a rovesciare dall'alto in basso (rispetto al suo orientamento originale). Queste lettere possono essere usate in modo cumulativo e di solito si combinano la L con la U, o la R con la U (combinare la L con la R non serve a nulla). Dopo queste lettere può essere indicata una scala (preceduta dal simbolo @). Il valore che regola la scala è tale per cui il numero uno corrisponde al 100 %, di conseguenza, per indicare delle riduzioni si devono usare valori inferiori all'unità (utilizzando il punto come separatore decimale).

L'ultima parte della definizione della pagina serve a stabilire uno spostamento di questa sulla superficie del foglio finale che si vuole ottenere. I due numeri indicano uno spostamento orizzontale e verticale. L'unità di misura predefinita è il punto tipografico, ma può essere specificata un'unità di misura più conveniente: cm per i centimetri e in per i pollici. I valori sono sempre positivi, ma per sapere l'effetto che questi hanno (per determinare se lo spostamento è verso destra o sinistra, oppure in alto o in basso) occorre provare necessariamente, perché tutto dipende dal tipo di rotazione che si stabilisce. In ogni caso, se si ruotano le pagine è indispensabile spostarle, altrimenti queste risultano collocate fuori dalla superficie finale.

Per mettere assieme più pagine su uno stesso foglio, si usa il simbolo + per unirne le specifiche; per indicare le pagine da collocare su facciate finali successive, si usa una virgola (,) per unire assieme tali indicazioni.

A titolo di esempio, si osservi la definizione seguente con la quale si vogliono stampare due pagine A4, riducendole, su un'unica facciata A4.

2:0L@0.7(21cm,0)+1L@0.7(21cm,14.85cm)

Il numero due iniziale è il modulo di due pagine. Segue la definizione della prima pagina di questo raggruppamento, con il numero zero, che viene ruotata di 90 gradi in senso antiorario (verso sinistra), viene ridotta al 70 % e viene anche spostata in orizzontale di 21 cm. La seconda pagina relativa (con il numero uno) viene collocata nella stessa facciata finale, perché è unita attraverso il simbolo +. La seconda pagina viene ruotata anch'essa di 90 gradi in senso antiorario, è ridotta nello stesso modo e viene spostata orizzontalmente come la prima, ma anche verticalmente di 14,85 cm. Il risultato che si ottiene è una pagina A4 che deve essere rovesciata in senso orario per poter leggere le due pagine ridotte.

4:3L@0.7(21cm,0)+0L@0.7(21cm,14.85cm),1R@0.7(0,29.75cm)+2R@0.7(0,14.85cm)

Questo nuovo esempio, simile al precedente, mostra la generazione di due facciate finali, in pratica un fronte-retro, dove nella prima si inseriscono le riduzioni della prima e della quarta pagina di un raggruppamento di quattro (4-1), mentre nella seconda facciata finale si inseriscono le riduzioni della seconda e della terza pagina del raggruppamento (2-3). Nella prima facciata, le pagine ridotte sono orientate verso sinistra, nella seconda sono orientate verso destra. In pratica, si ottiene una sequenza 4-1+2-3, orientata in modo da essere stampata correttamente con una stampante duplex.

Sono disponibili le opzioni -w, -h, -p e -q, come descritto nella tabella 208.8, a cui si aggiunge in particolare l'opzione -d:

Opzione Descrizione
-d[spessore]
Con questa opzione si ottiene una cornice attorno alle pagine, con lo spessore indicato dall'argomento (in mancanza dell'unità di misura, si intendono punti tipografici). Se lo spessore non viene specificato, si ottiene una linea di un punto.

208.2.6   Esempi particolari

I programmi del pacchetto PSUtils sono potentissimi, ma anche complicati da usare. Alcuni esempi per comprendere come combinarli assieme dovrebbe essere di aiuto.

Molti degli esempi mostrati sono realizzati con comandi piuttosto lunghi. Qui vengono mostrati spezzati su più righe.

Gli esempi successivi sono fatti per ottenere file PostScript adatti alla stampa su una sola facciata alla volta.

Gli esempi che seguono sono fatti per ottenere file PostScript adatti alle stampanti duplex, che però possono essere utilizzati anche con stampanti normali, ruotando opportunamente i fogli prima di reimmetterli nella stampante. Si veda la figura 208.5.

208.3   Problemi di allineamento della stampa

Quando si gestisce un sistema di stampa basato sui filtri, partendo da un formato uniforme PostScript, che poi viene convertito nel modo più adatto alla propria stampante, manca la possibilità di intervenire nella regolazione fine di questa, al contrario di ciò che si può fare di solito con alcuni sistemi operativi proprietari. Il problema più grosso sta nella correzione degli errori di allineamento che potrebbero essere introdotti dalla stampante, spesso a causa dall'incapacità di stampare al di fuori di un certo margine minimo. Il testo seguente è un file PostScript, in formato A4, che serve a stampare quattro linee (una verticale, una orizzontale e due oblique), assieme alle informazioni sulla distanza dai bordi, che permettono di vedere dove si trova il centro della pagina (una copia di questo file dovrebbe essere disponibile anche qui: <allegati/a2/test-allineamento-carta.ps>).

%!PS-Adobe-2.0
%%DocumentPaperSizes: a4
%%EndComments
%%EndProlog

%%Page: 1 1

% Verifica dell'allineamento della stampante per la carta A4.

% Definizione dell'unità «cm».
/cm { 28.34645 mul } bind def

% Definizione dell'utilizzo dell'unità «cm».
1 cm dup scale

% Spessore delle linee (1/50 di cm, pari a 0,2 mm).
1 50 div setlinewidth

% Traccia una linea obliqua ascendente.
0      0    moveto      21    29.7  lineto stroke

% Traccia una linea obliqua discendente.
0     29.7  moveto      21     0    lineto stroke

% Traccia una linea verticale al centro.
10.5  29.7  moveto      10.5   0    lineto stroke

% Traccia una linea orizzontale al centro.
0     14.85 moveto      21    14.85 lineto stroke

% Misurazione del bordo superiore.
10.25  29.60  moveto  10.75  29.60  lineto stroke
10.25  29.50  moveto  10.75  29.50  lineto stroke
10.25  29.40  moveto  10.75  29.40  lineto stroke
10.25  29.30  moveto  10.75  29.30  lineto stroke
10.00  29.20  moveto  11.00  29.20  lineto stroke
10.25  29.10  moveto  10.75  29.10  lineto stroke
10.25  29.00  moveto  10.75  29.00  lineto stroke
10.25  28.90  moveto  10.75  28.90  lineto stroke
10.25  28.80  moveto  10.75  28.80  lineto stroke
10.00  28.70  moveto  11.00  28.70  lineto stroke
10.25  28.60  moveto  10.75  28.60  lineto stroke
10.25  28.50  moveto  10.75  28.50  lineto stroke
10.25  28.40  moveto  10.75  28.40  lineto stroke
10.25  28.30  moveto  10.75  28.30  lineto stroke
10.00  28.20  moveto  11.00  28.20  lineto stroke

/Helvetica findfont 00.30 scalefont setfont
11.20  29.10  moveto (0,5 cm) show
11.20  28.60  moveto (1,0 cm) show
11.20  28.10  moveto (1,5 cm) show

% Misurazione del bordo inferiore.
10.25  00.10  moveto  10.75  00.10  lineto stroke
10.25  00.20  moveto  10.75  00.20  lineto stroke
10.25  00.30  moveto  10.75  00.30  lineto stroke
10.25  00.40  moveto  10.75  00.40  lineto stroke
10.00  00.50  moveto  11.00  00.50  lineto stroke
10.25  00.60  moveto  10.75  00.60  lineto stroke
10.25  00.70  moveto  10.75  00.70  lineto stroke
10.25  00.80  moveto  10.75  00.80  lineto stroke
10.25  00.90  moveto  10.75  00.90  lineto stroke
10.00  01.00  moveto  11.00  01.00  lineto stroke
10.25  01.10  moveto  10.75  01.10  lineto stroke
10.25  01.20  moveto  10.75  01.20  lineto stroke
10.25  01.30  moveto  10.75  01.30  lineto stroke
10.25  01.40  moveto  10.75  01.40  lineto stroke
10.00  01.50  moveto  11.00  01.50  lineto stroke

/Helvetica findfont 00.30 scalefont setfont
11.20  00.30  moveto (0,5 cm) show
11.20  00.80  moveto (1,0 cm) show
11.20  01.30  moveto (1,5 cm) show

% Misurazione del bordo sinistro.
00.10  14.60  moveto  00.10  15.10  lineto stroke
00.20  14.60  moveto  00.20  15.10  lineto stroke
00.30  14.60  moveto  00.30  15.10  lineto stroke
00.40  14.60  moveto  00.40  15.10  lineto stroke
00.50  14.35  moveto  00.50  15.35  lineto stroke
00.60  14.60  moveto  00.60  15.10  lineto stroke
00.70  14.60  moveto  00.70  15.10  lineto stroke
00.80  14.60  moveto  00.80  15.10  lineto stroke
00.90  14.60  moveto  00.90  15.10  lineto stroke
01.00  14.35  moveto  01.00  15.35  lineto stroke
01.10  14.60  moveto  01.10  15.10  lineto stroke
01.20  14.60  moveto  01.20  15.10  lineto stroke
01.30  14.60  moveto  01.30  15.10  lineto stroke
01.40  14.60  moveto  01.40  15.10  lineto stroke
01.50  14.35  moveto  01.50  15.35  lineto stroke

/Helvetica findfont 00.30 scalefont setfont
01.30  15.50  moveto (1,5 cm) show

% Misurazione del bordo destro.
20.90  14.60  moveto  20.90  15.10  lineto stroke
20.80  14.60  moveto  20.80  15.10  lineto stroke
20.70  14.60  moveto  20.70  15.10  lineto stroke
20.60  14.60  moveto  20.60  15.10  lineto stroke
20.50  14.35  moveto  20.50  15.35  lineto stroke
20.40  14.60  moveto  20.40  15.10  lineto stroke
20.30  14.60  moveto  20.30  15.10  lineto stroke
20.20  14.60  moveto  20.20  15.10  lineto stroke
20.10  14.60  moveto  20.10  15.10  lineto stroke
20.00  14.35  moveto  20.00  15.35  lineto stroke
19.90  14.60  moveto  19.90  15.10  lineto stroke
19.80  14.60  moveto  19.80  15.10  lineto stroke
19.70  14.60  moveto  19.70  15.10  lineto stroke
19.60  14.60  moveto  19.60  15.10  lineto stroke
19.50  14.35  moveto  19.50  15.35  lineto stroke

/Helvetica findfont 00.30 scalefont setfont
19.30  15.50  moveto (1,5 cm) show

showpage
%%Trailer
%%EOF

Teoricamente, ciò che si dovrebbe ottenere è quanto appare nella figura 208.16; in pratica, inviando questo file al sistema di stampa, che si presume sia predisposto con un filtro basato su Ghostscript, si potrebbe osservare un risultato simile a quello mostrato nella figura 208.16, in cui si ipotizza uno sfasamento verso destra di 1 cm e in basso di 0,8 cm.

Figura 208.16. Risultato ipotetico della stampa per la verifica dell'allineamento: la stampa risulta più bassa di 0,8 cm e più a destra di 1 cm.

stampa allineamento test

Figura 208.17. Riduzione dell'immagine che viene stampata su un foglio A4.

pagina di prova ridotta

Per misurare lo scostamento della stampa rispetto alla carta, sono disponibili dei riferimenti su ogni bordo; in alternativa si piega il foglio in quattro e si vede dove sta il centro. Nel caso dell'esempio, il centro è più a destra e più in basso, delle misure che sono state indicate. Per risolvere il problema, si può inserire un'elaborazione ulteriore nei filtri di stampa, attraverso l'aiuto di pstops.

Il file per la verifica dell'allineamento, così come è stato proposto, può essere riallineato dai programmi di PSUtils, verificando così il risultato degli spostamenti che vengono introdotti. Se questo non è desiderabile, per evitare che l'immagine sia riallineabile, occorre eliminare i commenti iniziali:

%%DocumentPaperSizes: a4
%%EndComments
%%EndProlog

%%Page: 1 1

In tal caso può essere eliminato anche il commento finale:

%%Trailer

Seguendo i valori dell'esempio, si può utilizzare pstops nel modo seguente, tenendo conto che il file deve essere fornito attraverso lo standard input, mentre il risultato si ottiene dallo standard output:

/usr/bin/pstops -q "1:0@1.0(-0.5cm,1cm)"

Per pstops: uno spostamento a destra è positivo; uno spostamento a sinistra è negativo; uno spostamento in basso è negativo; uno spostamento in alto è positivo. Questo serve a chiarire gli argomenti indicati nell'esempio

Per fare un esempio più realistico, nel caso si utilizzi Magicfilter, considerato che di solito le direttive per i file PostScript sono simili a quella che si vede qui,

0       %!              filter  \
    /usr/bin/gs  -q -dSAFER -dNOPAUSE -r300 -sDEVICE=ljet4 -sOutputFile=- -

è sufficiente aggiungere pstops alla catena:

0       %!              filter                          \
    /usr/bin/pstops -q "1:0@1.0(-0.5cm,1cm)"            \
    | /usr/bin/gs  -q -dSAFER -dNOPAUSE -r300 -sDEVICE=ljet4 -sOutputFile=- -

In alternativa al file PostScript che genera il risultato che si vede nella figura 208.17, potrebbe essere utile un modello quadrettato, che si può ottenere con il codice seguente, una copia del quale dovrebbe essere disponibile anche qui: <allegati/a2/test-carta-quadrettata.ps>.

%!PS-Adobe-2.0
%%DocumentPaperSizes: a4
%%EndComments
%%EndProlog
%%Page: 1 1
%
% Definizione dell'unità «mm».
%
/mm { 2.83464566929 mul } bind def
%
% Definizione dell'utilizzo dell'unità «cm».
%
1 mm dup scale
%
% Spessore delle linee (1/10 di mm, pari a 0,1 mm).
%
1 10 div setlinewidth
%
% Traccia le linee orizzontali.
%
000   000   moveto   210   000  lineto stroke
000   005   moveto   210   005  lineto stroke
000   010   moveto   210   010  lineto stroke
000   015   moveto   210   015  lineto stroke
000   020   moveto   210   020  lineto stroke
000   025   moveto   210   025  lineto stroke
000   030   moveto   210   030  lineto stroke
000   035   moveto   210   035  lineto stroke
000   040   moveto   210   040  lineto stroke
000   045   moveto   210   045  lineto stroke
000   050   moveto   210   050  lineto stroke
000   055   moveto   210   055  lineto stroke
000   060   moveto   210   060  lineto stroke
000   065   moveto   210   065  lineto stroke
000   070   moveto   210   070  lineto stroke
000   075   moveto   210   075  lineto stroke
000   080   moveto   210   080  lineto stroke
000   085   moveto   210   085  lineto stroke
000   090   moveto   210   090  lineto stroke
000   095   moveto   210   095  lineto stroke
000   100   moveto   210   100  lineto stroke
000   105   moveto   210   105  lineto stroke
000   110   moveto   210   110  lineto stroke
000   115   moveto   210   115  lineto stroke
000   120   moveto   210   120  lineto stroke
000   125   moveto   210   125  lineto stroke
000   130   moveto   210   130  lineto stroke
000   135   moveto   210   135  lineto stroke
000   140   moveto   210   140  lineto stroke
000   145   moveto   210   145  lineto stroke
000   150   moveto   210   150  lineto stroke
000   155   moveto   210   155  lineto stroke
000   160   moveto   210   160  lineto stroke
000   165   moveto   210   165  lineto stroke
000   170   moveto   210   170  lineto stroke
000   175   moveto   210   175  lineto stroke
000   180   moveto   210   180  lineto stroke
000   185   moveto   210   185  lineto stroke
000   190   moveto   210   190  lineto stroke
000   195   moveto   210   195  lineto stroke
000   200   moveto   210   200  lineto stroke
000   205   moveto   210   205  lineto stroke
000   210   moveto   210   210  lineto stroke
000   215   moveto   210   215  lineto stroke
000   220   moveto   210   220  lineto stroke
000   225   moveto   210   225  lineto stroke
000   230   moveto   210   230  lineto stroke
000   235   moveto   210   235  lineto stroke
000   240   moveto   210   240  lineto stroke
000   245   moveto   210   245  lineto stroke
000   250   moveto   210   250  lineto stroke
000   255   moveto   210   255  lineto stroke
000   260   moveto   210   260  lineto stroke
000   265   moveto   210   265  lineto stroke
000   270   moveto   210   270  lineto stroke
000   275   moveto   210   275  lineto stroke
000   280   moveto   210   280  lineto stroke
000   285   moveto   210   285  lineto stroke
000   290   moveto   210   290  lineto stroke
000   295   moveto   210   295  lineto stroke
%
% Traccia le linee verticali.
%
000   000   moveto   000   297  lineto stroke
005   000   moveto   005   297  lineto stroke
010   000   moveto   010   297  lineto stroke
015   000   moveto   015   297  lineto stroke
020   000   moveto   020   297  lineto stroke
025   000   moveto   025   297  lineto stroke
020   000   moveto   020   297  lineto stroke
025   000   moveto   025   297  lineto stroke
030   000   moveto   030   297  lineto stroke
035   000   moveto   035   297  lineto stroke
040   000   moveto   040   297  lineto stroke
045   000   moveto   045   297  lineto stroke
050   000   moveto   050   297  lineto stroke
055   000   moveto   055   297  lineto stroke
060   000   moveto   060   297  lineto stroke
065   000   moveto   065   297  lineto stroke
070   000   moveto   070   297  lineto stroke
075   000   moveto   075   297  lineto stroke
080   000   moveto   080   297  lineto stroke
085   000   moveto   085   297  lineto stroke
090   000   moveto   090   297  lineto stroke
095   000   moveto   095   297  lineto stroke
100   000   moveto   100   297  lineto stroke
105   000   moveto   105   297  lineto stroke
110   000   moveto   110   297  lineto stroke
115   000   moveto   115   297  lineto stroke
120   000   moveto   120   297  lineto stroke
125   000   moveto   125   297  lineto stroke
120   000   moveto   120   297  lineto stroke
125   000   moveto   125   297  lineto stroke
130   000   moveto   130   297  lineto stroke
135   000   moveto   135   297  lineto stroke
140   000   moveto   140   297  lineto stroke
145   000   moveto   145   297  lineto stroke
150   000   moveto   150   297  lineto stroke
155   000   moveto   155   297  lineto stroke
160   000   moveto   160   297  lineto stroke
165   000   moveto   165   297  lineto stroke
170   000   moveto   170   297  lineto stroke
175   000   moveto   175   297  lineto stroke
180   000   moveto   180   297  lineto stroke
185   000   moveto   185   297  lineto stroke
190   000   moveto   190   297  lineto stroke
195   000   moveto   195   297  lineto stroke
200   000   moveto   200   297  lineto stroke
205   000   moveto   205   297  lineto stroke
210   000   moveto   210   297  lineto stroke

showpage
%%Trailer
%%EOF

I quadretti che si vogliono ottenere sono esattamente di 5 mm di lato e il risultato che si può avere con una stampante perfetta è praticamente quello che si vede in piccolo nella figura successiva.

Figura 208.24. Foglio quadrettato su carta A4.

foglio quadrettato

208.4   Riferimenti

Appunti di informatica libera 2007.02 --- Copyright © 2000-2007 Daniele Giacomini -- <daniele (ad) swlibero·org>


1) PSUtils   licenza speciale formulata in modo poco preciso


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome rielaborazione_postscript.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico]

Valid ISO-HTML!

CSS validator!