[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]


75. PDF

Il formato PDF (Portable Document Format) è una derivazione del PostScript, con meno pretese di quel formato. Tuttavia, lentamente, il formato PDF tende a prendere il posto di quello PostScript.

75.1 Strumenti

Teoricamente, lo stesso Ghostscript dovrebbe essere in grado di elaborare i file PDF, sia per convertire questi in PostScript che per fare l'operazione opposta. In pratica, nella maggior parte dei casi, queste operazioni falliscono. Attualmente, sembra siano utilizzabili solo i programmi del pacchetto Xpdf, composti essenzialmente da un visualizzatore in anteprima, accompagnato da un paio di programmi di conversione.

75.1.1 $ xpdf

xpdf [<opzioni>] [<file-pdf> [<n-pagina>]]

`xpdf' è un programma per l'ambiente grafico X, in grado di visualizzare il contenuto dei file in formato PDF. Può essere avviato semplicemente, senza indicare argomenti, e in tal caso sarà possibile caricare un file PDF attraverso il menu che si ottiene premendo il terzo tasto del mouse. Se si indica un file nella riga di comando, questo viene aperto immediatamente; eventualmente può anche essere aggiunto un numero di pagina che rappresenta il punto da cui si vuole iniziare la visualizzazione.

56.jpg

Figura 75.1: Il programma `xpdf'.

La stampa del file PDF può essere ottenuta selezionando il tasto che rappresenta la stampante. Il programma propone il nome di un file PostScript nel quale salvare le pagine desiderate; se si indica una pipeline nella forma `|<comando>', senza lasciare spazi prima e dopo la barra verticale, si inviano queste pagine nello standard input del comando specificato (per esempio `|lpr' per richiamare la stampa).

Alcune opzioni

-ps <file-ps>

Permette di specificare il file predefinito per l'uscita PostScript. In pratica si tratta del file che viene proposto quando si chiede di stampare.

Esempi

xpdf prova.pdf

Carica il file `prova.pdf' e inizia a visualizzare la prima pagina.

xpdf -ps '|lpr'

Avvia `xpdf' senza caricare alcun file PDF, ma specificando che il file PostScript da utilizzare per le stampe è una pipeline diretta al comando `lpr'.

75.1.2 $ pdftops

pdftops [<opzioni>] <file-pdf> [<file-ps>]

`pdftops' converte file dal formato PDF in PostScript. Se viene omessa l'indicazione del nome del file PostScript nella riga di comando, questo viene determinato sostituendo l'estensione `.pdf' con `.ps'.

Di solito esiste anche l'eseguibile `pdf2ps' che in realtà è solo uno script predisposto in modo da avviare opportunamente Ghostscript allo stesso scopo di convertire un file PDF in PostScript. È importante chiarire che non si tratta della stessa cosa, e che spesso, `pdf2ps' non funziona.

Alcune opzioni

-f<n-pagina-iniziale>

Permette di specificare il numero della pagina iniziale del gruppo da convertire.

-l<n-pagina-finale>

Permette di specificare il numero della pagina finale del gruppo da convertire.

Esempi

pdftops prova.pdf prova.ps

Converte il file `prova.pdf' in `prova.ps'.

pdftops -f10 -l20 prova.pdf prova.ps

Estrae dal file `prova.pdf' le pagine da 10 a 20, generando il file `prova.ps' in formato PostScript.

75.2 Filtro di stampa

Allo stato attuale, un filtro in grado di convertire un file PDF allo scopo di inviarlo alla stampa, deve passare necessariamente per la conversione in PostScript. In generale, il programma migliore per questo è `pdftops', del pacchetto Xpdf, come è già stato indicato.

Nella realizzazione di uno script del genere, occorre tenere presente che `pdftops' ha bisogno di accedere al file PDF in modo non sequenziale (e lo stesso varrebbe comunque anche per Ghostscript), per cui questo non può essere fornito attraverso lo standard input. Quello che segue è uno script che cerca di ovviare all'inconveniente:

#!/bin/sh

# Definisce il nome di un file temporaneo.
FILE_PDF=`tempfile`

# Trasferisce lo standard input nel file temporaneo.
cat > $FILE_PDF

# Trasforma il file PDF in PostScript, emettendo il risultato attraverso
# lo standard output.
/usr/bin/pdftops $FILE_PDF -

Volendo intervenire nella configurazione di Magicfilter, si può sostituire la direttiva riferita al formato PDF, che di solito fa uso di Ghostscript come si vede qui,

# PDF
0	%PDF	fpipe	\
    /usr/bin/gs -q -dSAFER -dNOPAUSE -r600 -sDEVICE=ljet4 -sOutputFile=- $FILE 

in modo che utilizzi `pdftops':

# PDF
0	%PDF	fpipe	/usr/bin/pdftops $FILE -

---------------------------

Appunti Linux 2000.04.12 --- Copyright © 1997-2000 Daniele Giacomini --  daniele @ pluto.linux.it


[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]