[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico] [volume] [parte]


Capitolo 92.   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.

92.1   Strumenti

Teoricamente, lo stesso Ghostscript dovrebbe essere in grado di elaborare i file PDF, sia per convertire questi in PostScript, sia 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.

92.1.1   $ xpdf

xpdf [opzioni] [file_pdf [n_pagina]]

xpdf (1) è 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; in tal caso sarà possibile caricare un file PDF attraverso il menù 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.

Figura 92.1. Il programma xpdf.

figure/a2-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.

92.1.2   $ pdftops

pdftops [opzioni] file_pdf [file_ps]

pdftops (2) 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

-fn_pagina_iniziale

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

-ln_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.

92.1.3   $ pdftotext

pdftotext [opzioni] file_pdf [file_txt]

pdftotext (3) converte file dal formato PDF in testo puro, con tutte le limitazioni che ciò significa. Se viene omessa l'indicazione del nome del file di testo nella riga di comando, questo viene determinato sostituendo l'estensione .pdf con .txt.

Le opzioni già descritte a proposito di pdftops funzionano anche con questo programma. Naturalmente ne sono disponibili altre, come descritto nella documentazione pdftotext(1).

92.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 di informatica libera 2003.01.01 --- Copyright © 2000-2003 Daniele Giacomini -- daniele @ swlibero.org

1) Xpdf   GNU GPL

2) Xpdf   GNU GPL

3) Xpdf   GNU GPL


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome pdf.html

[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico]