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


Capitolo 210.   PDF

Il formato PDF (Portable document format) è una derivazione del PostScript, con meno pretese del suo predecessore, ma con caratteristiche interessanti, quali la possibilità di inserire riferimenti ipertestuali e le anteprime delle pagine. Anche se il formato PDF perde alcune potenzialità di PostScript, le sue caratteristiche lo rendono più adatto alla pubblicazione di documenti, pronti per la stampa, attraverso Internet.

210.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 (si veda la sezione 207.5); eventualmente, in caso di difficoltà, si può fare affidamento sui programmi del pacchetto Xpdf, composti essenzialmente da un visualizzatore in anteprima, accompagnato da un paio di programmi di conversione.

210.1.1   Utilizzo di «xpdf»

Il programma xpdf (1) si usa con l'ambiente grafico X ed è in grado di visualizzare il contenuto dei file in formato PDF. Può essere avviato semplicemente, senza indicare argomenti; in tal caso è 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.

xpdf [opzioni] [file_pdf [n_pagina|+destinazione]]

Figura 210.1. Il programma xpdf durante il funzionamento.

xpdf

La figura 210.1 mostra l'indice aperto sulla sinistra. Si osservi che non tutti i file PDF hanno un indice di questo tipo; a ogni modo, per aprire tale finestra, occorre «afferrare» il pulsantino quadrato che appare nella parte inferiore della linea di separazione e trascinarlo verso destra.

La stampa del file PDF può essere ottenuta selezionando il tasto che rappresenta la stampante. Il programma propone la scelta del programma di stampa o del file PostScript nel quale salvare le pagine desiderate.

Figura 210.2. La mascherina per il controllo della stampa.

xpdf stampa

Tabella 210.3. Alcune opzioni.

Opzione Descrizione
-rv
Inverte i colori delle pagine, escluse le immagini (non funziona con tutti i file PDF).
-fullscreen
Funziona a schermo intero.

Segue la descrizione di alcuni esempi.

Il funzionamento interattivo può essere controllato attraverso il mouse, oppure attraverso la tastiera, come descritto nella tabella successiva. La conoscenza dei comandi da tastiera è indispensabile per poter utilizzare il programma a schermo intero, perché in tal caso mancano i pulsanti grafici di controllo.

Tabella 210.4. Alcuni comandi per l'uso di xpdf.

Comando Alternativa Descrizione
[h] pulsante grafico con il punto interrogativo Visualizza una finestra contenente una guida rapida all'uso del programma (help).
[o] con il tasto destro del mouse si può selezionare la voce da un menù a scomparsa Apre un file (open).
[r] con il tasto destro del mouse si può selezionare la voce da un menù a scomparsa Riapre un file già aperto (reopen).
[f], [Ctrl f] pulsante grafico con il binocolo Cerca una stringa nel documento (find).
[Ctrl g] Cerca la corrispondenza successiva (go).
[Ctrl p] pulsante grafico con la stampante Stampa (print).
[Ctrl n] pulsante grafico con il simbolo > Passa alla pagina successiva (next).
[Ctrl p] pulsante grafico con il simbolo < Passa alla pagina precedente (previous).
[Pagina giù], [barra spaziatrice] Scorre in avanti.
[Pagina su], [Backspace], [Canc] Scorre all'indietro.
tasti freccia Scorre lentamente nella direzione della freccia.
[Home] Scorre all'inizio della pagina attuale.
[End] Scorre alla fine della pagina attuale.
[v] pulsante grafico con il simbolo -> Scorre in avanti nello storico delle pagine già visitate.
[b] pulsante grafico con il simbolo -> Scorre all'indietro nello storico delle pagine già visitate.
[0], [+], [-] pulsante grafico del menù di controllo dell'ingrandimento Controlla l'ingrandimento: [0] riporta alla dimensione normale; i tasti [+] e [-] ingrandiscono e riducono rispettivamente.
[z], [w] pulsante grafico del menù di controllo dell'ingrandimento: fit page e fit width I due comandi servono rispettivamente per adattare l'ingrandimento in modo tale che si veda tutta la pagina, oppure che si veda tutta l'ampiezza della pagina.
[Ctrl-l] Ridisegna l'immagine.
[q] Conclude il funzionamento (quit).

Quando il puntatore grafico del mouse si trova nell'area che mostra la pagina, i tasti del mouse hanno funzioni speciali:

sinistro, trascinamento Il tasto sinistro consente di evidenziare una zona, attraverso il trascinamento, che può essere incollata in un altro programma (funziona solo per il testo).
sinistro, clic Un clic con il tasto sinistro consente di seguire un riferimento ipertestuale.
centrale, trascinamento Il tasto centrale, tenendolo premuto, consente di spostare la pagina nello spazio di visualizzazione della sua finestra.
destro, clic Un clic con il tasto destro mostra un menù a scomparsa, da cui è possibile accedere facilmente alle funzioni più importanti.

210.1.2   Utilizzo di «pdftops»

Il programma 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.

pdftops [opzioni] file_pdf [file_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.

Tabella 210.6. Alcune opzioni.

Opzione Descrizione
-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.

Segue la descrizione di alcuni esempi.

210.1.3   Utilizzo di «pdftotext»

Il programma 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.

pdftotext [opzioni] file_pdf [file_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).

210.1.4   Utilizzo di «pdfimages»

Il programma pdfimages (4) consente di estrarre da un file PDF le immagini contenute:

pdfimages [opzioni] file_pdf [radice_file_immagini]

In pratica, si indica il file da scandire e nell'ultimo argomento si mette la parte iniziale del nome dei file che si vogliono generare. Di solito si ottengono nomi del tipo radice-nnn.estensione:

pdfimages prova.pdf immagine[Invio]

L'esempio mostra la scansione del file prova.pdf, per estrarre le immagini, che vengono salvate in file con nomi che corrispondono al modello immagine-*.

Tabella 210.7. Alcune opzioni.

Opzione Descrizione
-f n_pagina_iniziale
Permette di specificare il numero della pagina iniziale del gruppo da scandire.
-l n_pagina_finale
Permette di specificare il numero della pagina finale del gruppo da scandire.

210.1.5   Utilizzo di «pdffonts»

Il programma pdffonts (5) consente di conoscere quali tipi di carattere sono stati usati in un file PDF:

pdffonts [opzioni] file_pdf

Si potrebbe ottenere un listato simile a quello seguente:

name                                 type         emb sub uni object ID
------------------------------------ ------------ --- --- --- ---------
Times-Roman                          Type 1       no  no  no      84  0
Times-Roman                          Type 1       no  no  no      83  0
Times-BoldItalic                     Type 1       no  no  no      92  0
Times-Roman                          Type 1       no  no  no      88  0
Courier                              Type 1       no  no  no     128  0
Times-Bold                           Type 1       no  no  no     102  0
Times-Bold                           Type 1       no  no  no      99  0
...
GIRFAV+CMMI10                        Type 1C      yes yes no     468  0
WETNRH+CMEX10                        Type 1C      yes yes no     465  0
Courier-BoldOblique                  Type 1       no  no  no     478  0
CSAMPF+CMMI10~1e4                    Type 1C      yes yes no     485  0
Times-Italic                         Type 1       no  no  no     486  0
Symbol                               Type 1       no  no  no     512  0
MGBIUX+CMR10~20e                     Type 1C      yes yes no     527  0
XQDQTR+CMSY10~215                    Type 1C      yes yes no     534  0
Courier-Bold                         Type 1       no  no  no     546  0
Times-Italic                         Type 1       no  no  no     551  0
Symbol                               Type 1       no  no  no     564  0
LFWIIS+TeX-cmex9                     Type 1C      yes yes no     571  0
IGXMIF+ZapfChancery-MediumItalic     Type 1C      yes yes no     582  0
UUMAPZ+CMMI10~2c0                    Type 1C      yes yes no     705  0
Times-Italic                         Type 1       no  no  no     697  0
Times-Italic                         Type 1       no  no  no     696  0
Symbol                               Type 1       no  no  no     712  0
YKQLDT+TeX-cmex9~2b6                 Type 1C      yes yes no     695  0
VNVKKX+CMEX10~2c6                    Type 1C      yes yes no     711  0
JRRRBT+CMSY10~2c3                    Type 1C      yes yes no     708  0
Times-Roman                          Type 1       no  no  no     699  0
MYEVGY+CMR10~2bd                     Type 1C      yes yes no     702  0
Times-Roman                          Type 1       no  no  no     698  0
Symbol                               Type 1       no  no  no     721  0

Tabella 210.9. Alcune opzioni.

Opzione Descrizione
-f n_pagina_iniziale
Permette di specificare il numero della pagina iniziale del gruppo da scandire.
-l n_pagina_finale
Permette di specificare il numero della pagina finale del gruppo da scandire.

210.1.6   Utilizzo di «pdfinfo»

Il programma pdfinfo (6) consente di conoscere le informazioni disponibili su di un PDF:

pdfinfo [opzioni] file_pdf

Si potrebbe ottenere un listato simile a quello seguente:

Title:          Editoria elettronica con Alml
Subject:        Dal foglio di carta alla realizzazione di un documento \
  \secondo Alml, con le note necessarie per scrivere in modo \
  \coerente rispetto all'opera «Appunti di informatica libera» Keywords: Alml, SGML, Linux, GNU/Linux, Unix, software, software libero Author: Daniele Giacomini daniele (ad) swlibero org Creator: LaTeX with hyperref package Producer: dvipdfm 0.13.2c, Copyright © 1998, by Mark A. Wicks CreationDate: Fri Apr 18 14:01:28 2003 Tagged: no Pages: 227 Encrypted: no Page size: 595 x 842 pts (A4) File size: 1643633 bytes Optimized: no PDF version: 1.2

Se con le opzioni si specifica un intervallo di pagine, si ottengono anche le misure delle varie pagine selezionate.

Tabella 210.11. Alcune opzioni.

Opzione Descrizione
-f n_pagina_iniziale
Permette di specificare il numero della pagina iniziale del gruppo da scandire.
-l n_pagina_finale
Permette di specificare il numero della pagina finale del gruppo da scandire.

210.2   Filtro di stampa

Un filtro in grado di convertire un file PDF allo scopo di inviarlo alla stampa, dovrebbe passare per la conversione in PostScript. Il programma migliore per questo dovrebbe essere pdftops, del pacchetto Xpdf, come già 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 

Questa potrebbe essere modificata in modo che utilizzi pdftops:

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

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


1) Xpdf   GNU GPL

2) Xpdf   GNU GPL

3) Xpdf   GNU GPL

4) Xpdf   GNU GPL

5) Xpdf   GNU GPL

6) Xpdf   GNU GPL


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

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

Valid ISO-HTML!

CSS validator!