Post on 31-Jul-2020
POLITECNICO DI TORINO Facoltà di Ingegneria
Corso di Diploma in Ingegneria Informatica
Tesi di Diploma
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF
mediante libreria iText Relatore prof. Fulvio Corno
Candidato Cecconetto Ermano
Luglio 2002
Sommario
La tesi si inserisce nell'ambito delle attività di sviluppo e di sperimentazione
legate al sito Appunti.Net. La tesi opera nel contesto dell'automazione dei flussi
produttivi legati al mondo dell'editoria on-line. In tali contesti, il "prodotto" è
rappresentato da un documento in forma elettronica, ed è necessario riprodurre,
mediante un flusso puramente elettronico, tutte le fasi di lavorazione di un
prodotto tradizionalmente cartaceo quale potrebbe essere una rivista, un
documento, un libro. In particolare si esaminerà un flusso produttivo basato sullo
standard PDF (TM Adobe), grazie all'enorme diffusione di tale formato e della
sua naturale candidatura quale rappresentazione naturale degli e-book. Per la
progettazione e l’implementazione delle varie fasi produttive, a partire da un
documento “grezzo” fino al documento “finito”, si è scelto di lavorare con la
libreria di manipolazione iText, che offre, grazie alla sua sufficiente completezza
e versatilità, la funzionalità necessaria per svolgere questa implementazione. Tale
libreria si basa sul linguaggio di programmazione Java.
Il flusso di lavorazione è il più possibile automatizzato, attingendo ai parametri
specifici in alcune fasi di lavorazione da un database contenente le informazioni
specifiche su ciascun documento, mentre per la creazione del documento
intermedio si è preferito lasciare alcuni parametri di codificazione fissi all’interno
della procedura.
La tesi è descritta in 5 capitoli
Il primo capitolo contiene l’introduzione e descrive gli obiettivi e le soluzioni
adottate all’interno del lavoro.
Il secondo capitolo descrive i concetti generali del commercio elettronico ed i
problemi ad esso relativi, nonché le tecnologie riguardanti l’editoria elettronica.
Il terzo capitolo riporta le caratteristiche del formato PDF, del linguaggio Java e
della libreria iText .
Il quarto capitolo contiene la struttura e l’architettura dell’applicazione Java,
nonché i problemi e le soluzioni adottate nello sviluppo del progetto.
Il quinto elabora le conclusioni e i possibili sviluppi.
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 1
INDICE
Capitolo 1 Introduzione _________________________________________ 3
1.1 Obiettivi ________________________________________________ 4
1.2 Risultati ________________________________________________ 5
Capitolo 2 Commercio ed editoria elettronica________________________ 7
2.1 E-Generation ____________________________________________ 7 2.1.1 E-Business ______________________________________________ 7 2.1.2 Definizione e tipi di E-Commerce ____________________________ 8 2.1.3 Obiettivi e vantaggi dell’ E-Commerce _______________________ 10
2.2 Problemi relativi al commercio elettronico___________________ 11 2.2.1 Software e sicurezza______________________________________ 11 2.2.2 Spedizioni ed affidabilità __________________________________ 11
2.3 Editoria Elettronica______________________________________ 12 2.3.1 Cenni storici: tecnologie editoriali ___________________________ 13 2.3.2 Il formato digitale e le nuove tecnologie ______________________ 14 2.3.3 Passaggio da carta a digitale________________________________ 16 2.3.4 Copyright ______________________________________________ 17
2.4 E-Book ________________________________________________ 18 2.4.1 EBX __________________________________________________ 18 2.4.2 E-Book reader devices ____________________________________ 20 2.4.3 Reader Software _________________________________________ 21 2.4.4 Il futuro degli e-Book nella carta riscrivibile? __________________ 22
Capitolo 3 - PDFTM, Java e iText _________________________________ 24
3.1 PDF™ _________________________________________________ 24 3.1.1 Caratteristiche del formato PDF_____________________________ 24 3.1.2 PDF e linguaggio PostScript _______________________________ 28
Figura 1.1 Suddivisioni di un PDF _____________________________ 28 3.1.3 Adobe AcrobatTM Reader __________________________________ 29 3.1.4 Adobe SDK ____________________________________________ 30
Figura 1.2 Acrobat Layer ____________________________________ 31 Figura 1.3 Document Object Interrelationship ____________________ 32 Figura 1.4 File I/O Object Interrelationships _____________________ 33
3.2 Java ___________________________________________________ 33 3.2.1 Introduzione al linguaggio Java _____________________________ 33 3.2.2 Programmare in Java _____________________________________ 35
Figura 1.5 Concetto di Classe _________________________________ 36 Figura 1.6 Definizione di una classe ____________________________ 37 Figura 1.7 Creazione di un oggetto _____________________________ 37
3.3 iText __________________________________________________ 37 Figura 1.8 Logo della libreria iText ____________________________ 37
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 2
3.3.1 Utilizzo di iText _________________________________________ 38
Capitolo 4 Problemi e soluzioni nella realizzazione del progetto ________ 40
4.1 Appunti.net ____________________________________________ 40
4.2 Definizione problemi nella creazione dei documenti ___________ 41 Figura 1.9 Schema creazione documenti_________________________ 41 Figura 1.10 Documento grezzo ________________________________ 42
4.2.1 Creazione Master ________________________________________ 42 Figura 1.11 Schema creazione Master___________________________ 43
4.2.2 Creazione Copertina ______________________________________ 43 4.2.3 Creazione Vendibile ______________________________________ 44
Figura 1.12 Schema creazione Vendibile ________________________ 44 4.2.4 Creazione Omaggio ______________________________________ 44
Figura 1.13 Schema creazione Omaggio_________________________ 45 4.2.5 Creazione Anteprima _____________________________________ 45
Figura 1.14 Schema creazione Anteprima________________________ 45
4.3 Soluzioni adottate: classe AppuntiNet_______________________ 46 4.3.1 Copertina e Copyright ____________________________________ 46
Figura 1.15 Copertina da inserire ______________________________ 47 4.3.2 Metodo Crea Master______________________________________ 47
Figura 1.16 Copertina documento Master________________________ 48 Figura 1.17 Intestazione e piè pagina documento Master ____________ 49
4.3.3 Metodo CreaVendibile ____________________________________ 49 Figura 1.18 Documento Vendibile _____________________________ 50
4.3.4 Metodo CreaAnteprima ___________________________________ 50 Figura 1.19 Documento Anteprima_____________________________ 52
4.3.5 Metodo CreaOmaggio ____________________________________ 52 Figura 1.20 Documento Omaggio ______________________________ 53
Capitolo 5 Conclusioni_________________________________________ 54
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 3
Capitolo 1 Introduzione
Lo sviluppo tecnologico degli ultimi anni ha permesso alle persone di avere a
disposizione una finestra sul mondo, direttamente da casa propria, grazie alla rete
Internet. Inizialmente pensato per permettere la comunicazione e lo scambio di
dati in qualunque luogo mediante una linea telefonica, Internet, grazie alla sua
rapida popolarità e diffusione, si è sviluppato anche su altri supporti sfruttando
connessioni satellitari e canali ad alta velocità, quali le fibre ottiche, oggi in
commercio, permettendo il collegamento di utenti da ogni parte del mondo.
Grazie alla sua natura, programmi e dati sono facilmente distribuibili e si può
sfruttare qualunque risorsa elettronica permettendo lo sviluppo di un commercio
in rete, legale e illegale, di tali risorse. Le aziende si affacciano ora con maggior
impegno, anche se con ancora qualche timore, negli spazi e-businness offerti dalla
rete, aprendo al pubblico propri spazi e negozi virtuali dove offrono i loro servizi
permettendo spesso l’acquisto, da parte dell’utente, di svariati prodotti. Con lo
sviluppo di tale commercio è sorto un problema di tempi di attesa dei prodotti,
ovviamente legato al fatto che l’acquisto avviene immediatamente, ma l’arrivo
della merce ordinata è soggetto ai tempi legati alla spedizione, utilizzando mezzi
terrestri, oltre ad un aumento del costo congiunto appunto a tale spedizione. Se
alla cosa non è possibile ovviare nel caso l’utente acquisti beni prettamente
materiali, come ad esempio un componente hardware per il proprio personal
computer, è sorta la domanda se era possibile trasformare altri oggetti fisici in dati
e introdurli nella rete, rendendo così il commercio più veloce e flessibile. É il caso
dell’acquisto di un CD audio: l’acquisto dell’oggetto fisico da un sito web
comporterebbe tempi di spedizione di alcuni giorni e aumento del costo, dovuto
infatti alle spese di trasporto, mentre la tecnologia oggi permetterebbe la
distribuzione della musica dal negozio all’utente in poco tempo, grazie ai nuovi
metodi di compressione sempre in evoluzione.
In questo contesto si inserisce anche lo sviluppo del commercio elettronico di
libri; per loro natura sono strettamente materiali, ma grazie ai numerosi formati
elettronici di testo presenti nella rete, sviluppano la compravendita in un sistema
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 4
più veloce e pratico, annullando praticamente i costi di spedizione. All’interno di
questo ambito si sviluppa la tesi, sfruttando il linguaggio di programmazione Java;
tale linguaggio è ampiamente usato in Internet per la sua natura universale, non
legato ossia alla piattaforma operativa su cui lavora, che gli permette un utilizzo
maggiore. Implementando con apposite librerie il pacchetto base di Java, è
possibile consentire la manipolazione, in tempo reale, di file contenenti testi
elettronici.
1.1 Obiettivi Nell’ambito dell’utilizzo sempre maggiore della rete da parte dell’utente
universitario e non, spesso come base di ricerca per materiale interente ai propri
studi, si è portati all’ausilio di Internet come fonte per la diffusione e reperibilità
di materiale didattico; si è pensato, quindi, di sviluppare il progetto di raccolta e
distribuzione di appunti universitari. È necessario, da un lato, garantire la facilità
con cui reperire le informazioni riguardanti l’argomento desiderato e le loro
consultazioni, mentre occorre altresì tutelare l’autore degli scritti da eventuali
violazioni dei diritti di copyright. Inoltre, solitamente, il testo digitale che viene
inviato per la pubblicazione on-line dagli autori è allo stato grezzo, ossia non
contiene tutte le informazioni tali da poter essere immesso nella rete al
ricevimento dello stesso; occorrerà, quindi modificarlo, aggiungendo, ad esempio,
l’intestazione o il piè pagina, al fine di renderlo un oggetto completo. Tale
procedura non dovrà essere complicata e lunga, in modo da pesare troppo sul
costo dell’elaborato; per sveltire ulteriormente questa elaborazione del testo da
inviare, si è deciso di privilegiare l’aspetto di automazione del progetto per
alleggerire il lavoro umano nella catena di produzione dei prodotti finali,
garantendo la personalizzabilità dei risultati in base alle richieste, mediante
l’utilizzo di apposite librerie che creano la copia in tempo reale del prodotto. I
passi da compiere in questo procedimento vanno dall’elaborazione della copia
grezza all’impaginazione del documento fino alla protezione dello stesso da
accessi indesiderati. La copia grezza dovrà essere impaginata secondo certe regole
per rendere il prodotto simile ad un libro e facilmente consultabile creando così un
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 5
documento master che rappresenta l’essenza digitale della copia cartacea. Per
sopperire alle esigenze di copyright si elaborerà ulteriormente il documento prima
della spedizione al singolo studente interessato; egli potrà visionare la buona
fattura del prodotto, prima del pagamento, sia in termini di editoria che di
contenuti e valutarne così l’acquisto. La realizzazione di tali passi viene resa
automatica dall’integrazione di ambienti esistenti con applicazioni scritte ad hoc
alleggerendo così le competenze di chi gestirà l’intera struttura.
1.2 Risultati La scelta della soluzione implementata è stata condizionata dalla facilità d’uso e
completezza della libreria su cui operare e dalla sua integrabilità con sistemi
esterni appropriati. Poiché la scelta dell’editoria elettronica fatta si basava su
tecnologia PDF (Portable Document Format), formato che, oltre ad essere
portabile, ha una struttura robusta che si adatta bene alle esigenze della rete, ci si è
trovati di fronte a numerose librerie, create appositamente per la manipolazione e
la creazione in tempo reale di documenti; ci si è quindi orientati verso la scelta di
un prodotto versatile e in continuo aggiornamento, che garantisca una migliore
possibilità di sviluppo futuro; dopo una fase iniziale di analisi di queste librerie, si
è pensato di sviluppare il progetto utilizzando le librerie di iText. La società che
ha ideato queste librerie, fornisce agli sviluppatori la versione gratuita delle stesse,
grazie alla quale si è potuto personalizzare ed ampliare le possibilità offerte dagli
ambienti di sviluppo esistenti, realizzando un prodotto finito e specifico per il
nostro scopo. Le fasi di sviluppo e modifica del documento grezzo comprendono
il passaggio al documento master in cui viene aggiunta una copertina, recante il
titolo e gli autori, nonché il logo e l’indirizzo web del sito informatico; viene
altresì aggiunto il codice identificativo del documento e le informazioni sul
copyright. Su ogni pagina è aggiunta un’intestazione, recante il titolo,
eventualmente tronco, e il sito, oltre ad un piè di pagina, in cui sono riportati il
progressivo di pagina e il nome dell’autore, oltre al codice del documento. Altre
funzioni sono relative alla creazione di documenti ridotti in numero di pagine per
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 6
permettere la visione dell’elaborato a chi è interessato, oppure di copie
distribuibili a scopo pubblicitario.
A livello di sicurezza, si è voluto proteggere il prodotto distribuibile in modo da
evitare la modifica sia accidentale che maliziosa dei contenuti; per questo motivo
si prevede anche la possibilità di proteggere in modo diversificato i vari
documenti.
I dati relativi alla creazione del documento master possono essere o forniti da un
operatore, o reperiti attraverso un database, mentre le altre procedure vengo
eseguite in automatico, recuperando le informazioni necessarie dal database,
contenente autori, titolo, codice del prodotto, ecc.
Ciò al fine di rendere più automatica e veloce possibile la procedura che consente
la creazione e vendita dei documenti in rete, poichè in questo caso il costo
maggiore per l’utente è appunto il tempo di attesa che passa dall’acquisto al
ricevimento del file voluto.
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 7
Capitolo 2 Commercio ed editoria
elettronica
Con l’appellativo “Commercio Elettronico” (e-Commerce) si identifica
comunemente la possibilità di acquistare beni, di diversa natura, attraverso
Internet. Tuttavia l’e-Commerce è un’attività articolata e complessa con obiettivi
precisi. Esso non è quindi propriamente un servizio di Internet o di una qualsiasi
rete telematica, ma nel suo insieme è un’attività umana "tradotta" in un linguaggio
differente da quello "materiale", ma i vantaggi che ne emergono possono essere
enormi e sono intrinsechi nel nuovo sistema. Le possibilità offerte sono talmente
flessibili da aver permesso lo sviluppo che oggi vediamo sulla rete ed hanno anche
trascinato l’economia verso nuove soluzioni.
2.1 E-Generation L’esplosione di questo fenomeno segna simbolicamente una tappa importante
nell’evoluzione della società umana: il raggiungimento di un grado di sviluppo
tecnologico tale da poter accogliere e gestire in un sistema virtuale un sistema
reale. In questa trasposizione, con perfetta analogia, si hanno soggetti, regole,
ordinamenti, servizi, strutture, prodotti e relazioni.
2.1.1 E-Business
L’e-Business esiste concettualmente da qualche anno e racchiude al suo interno
tutte quelle attività come il commercio elettronico che possono essere svolte
mediante infrastrutture informatiche.
L’e-Commerce si amplia verso i servizi finanziari nel virtual banking e può
estendersi verso tutta la catena del valore che contraddistingue la nascita, la
produzione, la distribuzione e vendita di un bene.
Ancora, appartenenti all’e-Business possiamo collocare:
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 8
� l’informazione
� l’intrattenimento
� la didattica
tre settori molto promettenti in quanto veicolano beni immateriali particolarmente
adatti alla virtualizzazione.
2.1.2 Definizione e tipi di E-Commerce
Il commercio elettronico è costituito da operazioni che coinvolgono imprese e
individui, mirate allo scambio di beni materiali o immateriali a cui è assegnato un
valore, attraverso un’infrastruttura informatica o una rete di telecomunicazione.
In generale il commercio elettronico si estrinseca attraverso lo scambio di
informazione che può essere codificata in qualsiasi modo ed inserita in una
procedura di acquisto, che prevede una transazione economica; le parti che
partecipano ad un’operazione di commercio elettronico definiscono la tipologia di
quest’ultimo.
Non vi è un’unica forma di Commercio Elettronico, perché gli ambienti nei quali
si svolge l’attività commerciale e i soggetti coinvolti possono avere natura
diversa, ad esempio si può rivolgere al cliente finale, all’agente, alla filiale
internazionale o al fornitore. È evidente che le esigenze da soddisfare dipendono
in modo significativo dalle dinamiche commerciali e dalla tipologia dei soggetti
che si vuole coinvolgere, e ciò finisce anche per influenzare la scelta degli
strumenti tecnologici che un’azienda adotta per fare commercio on-line.
Questa precisazione ci porta a identificare quattro tipi fondamentali di Commercio
Elettronico:
• Business to Business.
Nella categoria B-to-B (Business to Business) rientrano tutte quelle
transazioni nelle quali i soggetti coinvolti siano due o più aziende.
Tipicamente un’impresa potrebbe utilizzare la rete per inoltrare ordini ai
propri fornitori, acquisire documentazione sui prodotti, ricevere o
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 9
effettuare pagamenti. È il tipo di commercio che esite da più tempo, come
precedentemente citato.
• Business to Consumer.
La categoria B-to-C (Business to Consumer) comprende, invece, i processi
di vendita al dettaglio. I soggetti coinvolti sono l’azienda, che offre i
propri prodotti, ed il consumatore finale; l’esplosione di questa tipologia di
Commercio Elettronico ha coinciso con la capillare diffusione di Internet
negli uffici, nelle case, nelle scuole e se da un lato questo nuovo media ha
permesso ad aziende di tutto il mondo, di entrare in contatto diretto con
consumatori altrimenti difficilmente raggiungibili, dall’altro, per i
consumatori stessi, si è aperta la possibilità di avere accesso ad una offerta
straordinariamente ampia di prodotti, stando comodamente seduti davanti
al proprio computer.
• Consumer to Consumer.
Questa è una forma più recente di Commercio Elettronico, salita alla
ribalta dell’attenzione e della popolarità grazie al forte sviluppo sulla Rete
dei siti di aste on-line. Su questi siti gli utenti della Rete possono
scambiare tra loro prodotti secondo il modello dell’asta.
• Intra-Business.
È questo il caso che coinvolge un’azienda con sedi distribuite sul territorio
o un insieme di aziende appartenenti allo stesso gruppo. In tali situazioni le
esigenze di scambio di beni e servizi all’interno delle unità della struttura
possono essere soddisfatte attraverso la Rete ed essere accompagnate da un
rendiconto economico. Le principali caratteristiche del commercio intra-
aziendale sono molto simili a quelle del B-to-B con la restrizione che di
norma il gruppo di soggetti coinvolti è rigorosamente chiuso, la
classificazione dei prodotti è già data e la transazione economica passa in
secondo piano (può essere eseguita a distanza di tempo, a consuntivo).
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 10
2.1.3 Obiettivi e vantaggi dell’ E-Commerce
L’obiettivo principale dell’e-Commerce è quello di svincolare totalmente il
mercato da fattori temporali e spaziali con le relative conseguenze, ossia il
compratore non è più vincolato ad orari predefiniti e non si deve più preoccupare
di raggiungere fisicamente il luogo dove avviene la vendita: può accedere in
qualsiasi momento da casa propria o dall’ufficio teoricamente a qualsiasi bene.
Il primo risultato è che il problema relativo alla godibilità di un bene in relazione
alla disponibilità sul territorio si risolve, poiché Internet è un mondo senza confini
la cui metrica non ammette la dimensione spaziale.
L’acquirente che compra attraverso Internet può accedere ad insiemi di
informazioni che, a volte, sono difficilmente reperibili nel caso di commercio
tradizionale e può avvalersi di servizi personalizzati, più confacenti alle proprie
aspettative, che si riflettono anche nell’assistenza pre e post-vendita. Inoltre
l’acquirente, data l’ampia offerta, ha la possibilità di monitorare e selezionare i
prezzi più convenienti in assoluto. A questi vantaggi per il compratore,
specularmente, emergono vantaggi anche per il produttore/venditore di beni;
infatti possiamo identificare due benefici: il primo coinvolge la razionalizzazione
dei processi tradizionali, mentre il secondo introduce nuovi elementi di
competizione.
La maggiore conoscenza delle esigenze dei clienti, disponibile dai meccanismi
dell’e-Commerce, fa sì che l’impresa possa personalizzare sempre di più l’offerta
e la padronanza di processi produttivi diventi più agile e flessibile.
Tutto ciò produce un aumento di competitività ed una teorica riduzione dei prezzi
all’utente finale. Infine, ma forse elemento più importante, l’e-Commerce riduce
drasticamente il livello di ingresso nei vari mercati ridimensionando l’aspetto
finanziario a favore di quello di marketing e di prodotto. In altre parole esso
attenua drasticamente il livello di rischio nel raggiungere e operare in nuovi
mercati.
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 11
2.2 Problemi relativi al commercio elettronico
Il flusso di dati che è andato via via aumentando in Rete, anche grazie al
commercio elettronico, ha causato reali problemi sulla gestione di tale attività, sia
in termini di sicurezza per l’utente, che di affidabilità dei sistemi informatici da
parte delle aziende che vi operano. Non si vuole certo scrivere un elogio a tale
sistema di scambi, bensì presentarne obiettivamente vantaggi e svantaggi ed
analizzare le problematiche.
2.2.1 Software e sicurezza
Uno dei problemi più rilevanti relativi a questo riguarda il software da utilizzare e
la sicurezza che esso garantisce. Tenendo conto che sulla rete e sul server del sito
in esame sono presenti informazioni riguardanti i clienti, bisogna garantire
riservatezza ed impossibilità di accessi non desiderati. Si richiede quindi software
di gestione delle transazioni, sistemi operativi ed applicazioni fault tolerant
inattaccabili da pirati informatici. Proprio per la difficile risoluzione di questi
problemi ancora non ci si fida completamente ad utilizzare la carta di credito
come mezzo di pagamento attraverso la rete; ciò è dovuto anche alle intrusioni di
alcuni hacker che tendono a violare siti della Rete, a volte per puro divertimento,
altre come obiettivo distruttivo, dimostrando quanto sia difficile garantire la totale
immunità del sistema. Le soluzioni adottate sono molteplici e spaziano dal
semplice pagamento al corriere, utilizzabile in caso di spedizione fisica di
materiale, all’utilizzo di tessere prepagate che limitano i danni in caso di
carpimento del codice di utilizzo, fino all’uso di transazioni sicure con crittografia
e firma digitale che si appoggiano direttamente alla banca del cliente.
2.2.2 Spedizioni ed affidabilità
Un altro punto critico relativo al suddetto discorso riguarda le spedizioni fisiche di
beni materiali acquistati in rete e la velocità di ricevimento; considerata la
lentezza delle spedizioni terrestri, molte volte si è propensi a consultare la Rete
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 12
per avere nozioni sul prezzo, oppure informazioni tecniche, e verificare la
disponibilità nel proprio territorio dell’oggetto, piuttosto che aspettare la
tempistica delle spedizioni ordinarie; altrimenti, per ottenere il bene in tempi
brevi, occorre aggiungere al costo base, spese ulteriori per mezzi più veloci,
rendendo poco competitivo il prezzo. Questi deterrenti non si presentano invece
nel commercio di beni interamente digitali, come programmi, musica e
documentazione, che possono venire spediti grazie ai servizi Internet.
Un punto chiave per sviluppare questo commercio è garantire affidabilità; a causa
della vastità ed eterogeneità della rete, potrebbero sorgere, come già si ricorda,
negozi virtuali fantasma dediti solo a rubare informazioni personali dei clienti e
numeri validi di carte di credito. Chiaramente il requisito fondamentale di un
negozio virtuale è guadagnarsi e mantenere la fiducia del cliente.
La possibilità di muoversi su mercati globali e quindi di disporre di un gran
numero di prodotti equivalenti tra cui scegliere, magari irreperibili nei negozi a
causa di fattori geografici o economici avversi, è il grande vantaggio del
commercio elettronico; esso però deve avere requisiti di sicurezza ed affidabilità,
superiori ad un esercizio di vecchia concezione, molto difficili da ottenere, a causa
dell’impersonalità del contatto col pubblico.
2.3 Editoria Elettronica Uno sguardo attento si deve volgere allo sviluppo dell’editoria elettronica, poiché
grazie alla sua facile trasformazione dal supporto cartaceo tradizionale, al mezzo
elettronico, ne fa uno dei migliori candidati all’e-Commerce. Mezzi di
informazione tramite stampa e supporti elettronici, coesistono da svariati anni;
dallo studio sull'andamento del mercato non sembra ci siano segnali sostanziali di
riduzione per la stampa, mentre la forbice dei ritmi di crescita dei due settori si sta
allargando sempre più. Il formato elettronico, però, non sembra a breve scadenza
poter intaccare il ruolo primario di quello stampato, a causa di vantaggi intrinseci
quali comodità, portabilità, familiarità. A fronte di questi punti di forza l'editoria
elettronica si propone con altrettante peculiarità interessanti e perlopiù alternative
sull'uso e nei contenuti.
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 13
Grazie all'estrema semplicità di diffusione su Internet e WWW, recentemente
un'altra questione sta assumendo una consistenza che va oltre al semplice
formalismo: la certificazione della qualità e/o l'identificazione della fonte di
informazioni.
Quest'ultimo punto con l'esplosione delle pubblicazioni su WWW sta assumendo
sempre una crescente importanza; infatti essendo ogni utente di Internet un
potenziale editore, l'autorevolezza e l'autentificazione del fornitore di
informazioni pone sempre più problemi di certificazione e di competenza.
Lo scenario dell'editoria on-line su Internet presenta tre possibili contesti di
produzione:
• Editoria tradizionale
Rappresentano la maggior parte dell'editoria elettronica, dove un
precedente prodotto già esistente su supporto cartaceo tradizionale viene
riprodotto in formato digitale.
• Organizzazioni Intermediarie
Sono delle società il cui scopo è quello di realizzare servizi editoriali
elettronici partendo da dati forniti da un editore tradizionale. Lo scopo è
quello di realizzare dei prodotti sofisticati, tramite specifiche competenze
tecniche e organizzative, evitando l'onere all'editore tradizionale.
• Editoria multimediale
Sono i nuovi soggetti che pensano al prodotto esclusivamente in funzione
del supporto utilizzato, sfruttando completamente tutte le nuove capacità.
La vera differenza che separa questo genere di editoria da quella cartacea è
l'ingegnerizzazione dei contenuti e del flusso di produzione.
2.3.1 Cenni storici: tecnologie editoriali
L'era della stampa a livello di processo industriale iniziò con la creazione del
tedesco Johann Gutemberg dell'omonimo torchio. La novità essenziale di questo
sistema consisteva nell'utilizzare caratteri mobili nella costruzione della matrice di
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 14
stampa, anziché essere costituita da un unico modulo. Solo nel 1814 la macchina
per la stampa di Koening apportò una prima sostanziale modifica utilizzando
l'energia termica al posto della fatica umana. Nel 1866 la prima macchina rotativa
(dal nome Walter) entrò in funzione nella tipografia del Times di Londra. La sua
novità consisteva nell'utilizzare una matrice cilindrica per la stampa, in maniera da
realizzare un processo continuo di riproduzione con movimento rotatorio,
enormemente più produttivo del precedente metodo.
Nel 1886 la macchina denominata “linotypè” cambierà la maniera di comporre
tipograficamente le pagine: il procedimento, totalmente manuale, di reperimento
ed inserimento dei singoli caratteri diventa meccanicamente automatico mediante
l'uso di una apposita tastiera.
Il successivo passo è costituito dalla nascita della fotocomposizione intorno al
1950. In tale processo il tipografo agisce ancora su di una apposita tastiera che
però, incide direttamente su una particolare pellicola usando un principio chimico-
fotografico saltando il procedimento meccanico. Con ciò finisce l'età del piombo
fuso e della “lavorazione a caldo” ed inizia l'era della “lavorazione a freddo”, in
cui la composizione viene gestita sempre più tramite l'elaboratore elettronico.
Oggi l'uso di tecnologie informatiche è stato esteso all'intero processo di
produzione del giornale; si è così ottenuto il passaggio del modello produttivo da
quello tipografico a quello redazionale. Questo significa cioè integrare la
produzione in un unico flusso, ovvero non dover scrivere i pezzi giornalistici in
redazione e quindi rivederli a posteriori per motivi di impaginazione in sede
tipografica, ma creare il formato finale di impaginazione ed i relativi testi
direttamente a partire dai giornalisti in redazione, in maniera interattiva ed
autonoma, riducendo costi e tempi.
2.3.2 Il formato digitale e le nuove tecnologie
La fornitura di servizi informativi on line su Internet è iniziata negli Stati Uniti,
con l'editoria telematica in varie forme nelle modalità e nei contenuti.
Un primo livello di diffusione di editoria telematica è costituito tecnicamente dalle
newsletter, ovvero e-mail diffuse periodicamente, a pagamento o meno,
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 15
dall'editore ad una lista di utenti abbonati (mailing list); spesso le mailing list
vengono affiancate da servizi Gopher. In quest’ultimo modo cambia la modalità di
diffusione: non è più l'informazione che viene effettivamente spedita all'utente
registrato su iniziativa dell'editore, ma è l'utente che richiede i dati (in maniera
registrata o meno) nei tempi e nei modi che risultano a lui più congeniali.
Questa modalità di diffusione delle informazioni su Internet tecnicamente può
essere realizzata essenzialmente attraverso tre strumenti principali e cioè in ordine
di creazione cronologica con:
• File Transfer Protocol
• Gopher
• World Wide Web (WWW)
La pubblicazione tramite quest'ultimo sistema permette quindi di avere i vantaggi
dell'architettura WWW quali essenzialmente la multimedialità e la possibilità di
interagire, come ad esempio nelle interrogazioni su di un archivio o, più
generalmente, con qualsiasi altra funzione realizzabile dal fornitore.
Secondo Philip Barker, professore dell'Interactive System Research Group
dell'Università di Tesside in Inghilterra, i principali limiti che può accusare
l'editoria cartacea tradizionale rispetto a quella elettronica sono:
• la difficoltà di riproduzione
• i costi di diffusione
• l'impossibilità di condivisione di singole copie
• la difficoltà di aggiornamento
• l'ingombro fisico
• la fragilità del supporto
• la mancanza di reattività sui contenuti
• l'impossibilità di usare suoni ed animazioni
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 16
• l'incapacità di monitorare direttamente l'attività del lettore e di giudicarne
il livello di comprensione
• l'impossibilità d'autoconfigurarsi rispetto all'utente.
A fronte di questi limiti brillano i vantaggi dell'editoria elettronica che possono
essere elencati essenzialmente in:
• multimedialità
• enorme durata nel tempo
• abbattimento dei costi di diffusione
• tempestività di diffusione per le informazioni on-line
• interattività.
Nell'ultimo importante punto possiamo rintracciare tutte le funzionalità aggiuntive
che può sviluppare l'informatica su una base informativa (ipertesti - ipermedia -
interrogazioni – agenti intelligenti).
2.3.3 Passaggio da carta a digitale
In generale, per convertire il documento da formato cartaceo ad elettronico, si
hanno due modi: o lo si copia manualmente tramite la tastiera del pc, un lavoro
lungo e noioso, oppure più agilmente si trasferisce un’immagine che rappresenta
la sorgente dei dati, tramite uno scanner ottico. Si deve considerare che
quest’ultimo, pur essendo un procedimento più breve del precedente, presenta
degli inconvenienti come il bilanciamento della risoluzione dell’immagine ed il
numero di livelli di grigio con la quantità di memoria utilizzata e la qualità
dell'immagine trasferita, oltre al fatto che se il testo è scritto a mano, il
rilevamento dei caratteri spesso non è completo, e quindi occorre ripassare il
documento per correggere eventuali errori. Se si tiene conto della risoluzione
media desiderata e si considerano sia la lettura del testo a video sia la stampa si
nota che una risoluzione di 300 dpi è sufficiente per leggere bene un documento
da un monitor mentre non lo è se si desidera stamparlo; aumentando la risoluzione
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 17
a 1200 dpi migliora notevolmente la qualità di stampa a scapito di maggiore
occupazione di risorse.
Scansioni di pagine stampate possono essere sottoposte a tre o quattro filtraggi
spaziali durante l’elaborazione, ma soltanto con prove ripetute si possono evitare
fastidiosi pattern di Moirè, ne sono un esempio le bitmap che contengono sia
immagini che testo.
Un'altra considerazione importante riguarda il formato JPEG che, pur fornendo
elevate percentuali di compressione riducendo le componenti ad alta frequenza (i
particolari), non dovrebbe essere utilizzato su bitmap contenenti testo e grafica
poiché si rischia di rendere illeggibili le parole.
Non si vuole comunque approfondire tale argomento in quanto già ampiamente
trattato da vari applicativi commerciali e quindi inutile ai fini dell’elaborato.
2.3.4 Copyright
Il problema aperto per eccellenza rimane la concezione di copyright, in particolare
nel campo dell'informazione on-line, facilmente duplicabile e ridistibuibile. Il
maggiore ostacolo al pieno sviluppo dell'editoria elettronica risiede nella difficoltà
di individuare criteri di tutela della paternità intellettuale di opere circolanti sulla
rete. A differenza di quanto avviene con le pubblicazioni a stampa, nell'ambiente
digitale l'informazione può essere catturata, manipolata e alterata senza che di ciò
resti traccia, se non si pongono limiti.
Il mondo di Internet, riguardo al copyright, è assai incerto, sfumato, ricco di
contraddizioni e finora non si sono registrati precisi interventi legislativi in difesa
di un patrimonio culturale così vasto e importante. Ma se è vero che "copiare"
nell'era digitale è più veloce, più economico e più facile che in passato, è altresì
vero che autori ed editori possono esercitare un ruolo "educativo", comunicando
via rete con i propri interlocutori ed indicando quale è il possibile impiego dei
materiali messi a disposizione: si viene così a stipulare una sorta di contratto
morale che permette di incentivare le prospettive dell'editoria elettronica evitando
un uso scorretto dei documenti.
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 18
2.4 E-Book Sempre maggiormente, nel ramo dell’editoria elettronica, prende campo l’e-Book,
visto come naturale sviluppo di questo commercio, tanto che il 19 aprile 2002 ha
visto la nascita della “International eBook Association”, il cui obiettivo sarà di
supportare la crescita del mercato dell’eBook; infatti la Microsoft Corporation ha
annunciato la nascita della IeBA, una nuova organizzazione con sede in Europa
che supporterà la comunità mondiale dell’eBook, promuovendo le crescenti
opportunità e le grandi potenzialità offerte dal settore del libro elettronico. La
nuova associazione intende proseguire il lavoro pionieristico svolto dalla
International eBook Award Foundation (IeBAF), che cesserà la propria attività
alla fine di aprile. La nuova organizzazione International eBook Association
(IeBA) nasce con l’obiettivo di risolvere le criticità che l’editoria elettronica si
trova ad affrontare e facilitare la diffusione del libro elettronico, promuovendo
inoltre nuovi riconoscimenti internazionali per il settore degli eBook. Molto è
anche dovuto al recente Reader realizzato dalla società promotrice, ma la
Microsoft non è la sola società impegnata in tal senso, tanto che si è sentita la
necessità di un protocollo di regolamentazione, sviluppatasi con la creazione
dell’EBX (Electronic Book Exchange). Tale sviluppo ha permesso anche nuove
nascite commerciali on-line, come ad esempio la EvolutionBook
(www.evolutionbook.com), che dal 1999 opera nel settore degli e-Book, con lo
scopo di far nascere anche in Italia interesse da parte del pubblico verso il libro
elettronico, costruendo un sito interamente dedicato a questo mondo editoriale,
dalla commercializzazione dei semplici testi elettronici, alla descrizione dei
software e hardware in commercio per la lettura di e-Book, divenendo in pochi
anni una delle realtà più dimaniche presenti nel settore. Tratteremo in questo
paragrafo brevemente dello standard EBX e di alcuni tipi di reader.
2.4.1 EBX
Questo standard, è nato principalmente per fornire un supporto sicuro al
commercio elettronico degli e-book. Infatti, incorpora al suo interno delle
estensioni al protocollo HTTP, che permettono di creare connessioni più sicure tra
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 19
due server e, tra un server e un client. Non è assolutamente necessario conoscerlo
per acquistare un e-book, è come dire che per navigare in internet bisogna
conoscere in dettaglio l'HTTP, il TCP/IP ecc..
Il principio su cui si basa è l'uso di una doppia coppia di chiavi, una simmetrica
(ovvero la chiave di crittazione e quella di decrittazione sono identiche) e l'altra
asimmetrica (le due chiavi, una di lettura e l'altra di scrittura, sono diverse e,
avendone una si può risalire alla seconda solo con una serie di calcoli che,
attualmente, impegnerebbero i computer più potenti del mondo per migliaia di
anni). Con la prima viene crittato il contenuto della pubblicazione, la seconda
coppia di chiavi viene usata per le transazioni.
Quest'ultime adottano il seguente metodo, il server (o il client) che deve
acquistare il libro, invia la richiesta al server che è preposto alla vendita per quel
tipo di server richiedente. Spieghiamo, un server di un distributore farà la richiesta
a quello dell'editore. I server delle librerie online, la faranno a quello del
distributore. Infine, i programmi client che potremo installare nei nostri PC,
faranno le richieste ai server delle librerie online. Ogni passaggio è una
transazione commerciale vera e propria. Ovvero, il distributore acquista
dall'editore e vende alla libreria online e così via.
Ogni volta che viene inviata una richiesta, il server (o client) richiedente allega la
propria chiave di scrittura (pubblica , cioè tutti possono usarla per crittare
documenti da inviargli), con la quale verrà crittata la chiave simmetrica per
decrittare il contenuto dell'ebook. Il richiedente, dopo aver ricevuto l'e-book,
decritta la password simmetrica, utilizzando la sua chiave di lettura (privata, ossia
non deve essere mostrata a nessuno, pena la decadenza dei requisiti di sicurezza e
quindi la possibilità di ognuno di decrittare il file senza averlo acquistato). Con la
chiave simmetrica decrittata può decrittare il contenuto dell'ebook e quindi
leggerlo.
L'iter può sembrare complesso, ma rileggendo i passi precedenti, con la dovuta
calma si riesce a capire in maniera sufficientemente rapida. Un'ultima nota,
riguarda il voucher (ricevuta) che viene utilizzato per stabilire, tra le altre cose, i
diritti posseduti su un e-book ("cedibile", "prestabile", "stampabile") e lo status
attuale ("posseduto", "prestato" o "preso in prestito"). Per esempio, se il mio e-
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 20
book è "prestabile" e lo presto ad un mio amico per 10 gg., io avrò, nel mio e-
book reader, una copia dell'e-book ed un voucher con status "prestato". Lui avrà,
nel suo e-book reader un'altra copia dell'e-book ed un voucher con status "preso in
prestito". Entrambi avremo nel voucher un timeout di 10 gg., durante i quali, la
copia presa in prestito sarà utilizzabile e la mia no. Allo scadere del tempo accadrà
il viceversa. E chi possedeva la copia in prestito non potrà più leggerla a meno
che, non venga fatto un nuovo prestito. Per effettuarlo, ogni volta si deve
compiere un transazione in EBX (svolta in automatico dai software che che
supportano questo standard e, in pochi secondi). Se la copia viene ceduta, invece,
verrà cancellata dal nostro ebook reader e trasferita nell'e-book del destinatario
insieme al voucher. L'ultimo diritto è quello di stampare. Nel voucher, quando è
presente il permesso "stampabile", c'è scritto il numero di copie che si possono
stampare e, se sono copie dell'intero libro, di singoli capitoli, paragrafi o pagine.
2.4.2 E-Book reader devices
Distinguiamo principalmente tre tipi di reader hardware, ossia strumenti fisici che
permettono la lettura di e-book in modo maneggievole e portatile:
• Lettori dedicati : rappresentano gli eBook reader devices per eccellenza
dato che sono stati concepiti per rispondere alle esigenze di lettori di testi
in formato elettronico;
• Palm e PocketPC : tali eBook reader devices in realtà sono dei dispositivi
la cui natura è quella di essere a metà tra un organizer e un computer
portatile. Sono dotati molto spesso di (versioni appositamente rivisitate)
sistemi operativi. Il loro prezzo è più elevato rispetto a quello dei
LETTORI DEDICATI.
• Tablet PC : rientrano in questa categoria tutti gli eBook reader devices
specificamente progettati per avere un'esperienza completa e multimediale
nella navigazione in Internet. Nati nel momento in cui si pensava potessero
conquistare il mercato i SET TOP BOX (cioè dei dispositivi
esclusivamente pensati per la navigazione su Internet completamente
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 21
indipendenti dal PC, ma con un potenza a volte paragonabile ai NoteBook)
sono stati riconvertiti alla funzione di eBook reader (non dedicati) per
sfruttare il settore dell'editoria elettronica. Le caratteristiche tecnologiche
presenti sui questi dispositivi giustificano un prezzo piuttosto elevato
rispetto alle altre due famiglie di lettori eBook.
2.4.3 Reader Software
Sono software nati per i diversi dispositivi di lettura hardware (pc, notebook,
pocket pc, etc.). Tra i più famosi citiamo:
- Microsoft Reader
Il Microsoft Reader risulta essere uno dei lettori software eBook più intuitivi
attualmente presenti sul mercato. Nelle sue varie evoluzioni oggi è giunto alla
versione 2.0 e può essere considerato probabilmente il software più diffuso.
Utilizza la tecnologia ClearType grazie alla quale le parole sullo schermo vengono
visualizzate quasi con la stessa nitidezza delle parole in una pagina stampata; la
stessa migliora fino al 300% la risoluzione su schermi LCD per fornire un tipo di
visualizzazione molto definita. Il layout è semplice e ordinato, i margini ampi, la
spaziatura, l'interlinea e la crenatura appropriate. Il Microsoft Reader presenta
vantaggi in termini di portabilità, memorizzazione e altre funzionalità digitali,
quale la capacità di trovare una parola o una frase specifica ogni volta che appare
nel testo, nonché un modo semplice per cercare definizioni con rapidità. In
Microsoft Reader 2.0 per PC e computer portatili per Windows e Pocket PC con
sistema operativo Windows, è possibile memorizzare tanti libri quanti ne può
contenere il dispositivo in uso. Microsoft Reader consente inoltre di eseguire le
stesse operazioni che si compiono quando si legge un libro stampato, ad esempio
aggiungere segnalibri e note ai margini. È quindi possibile visualizzare
nuovamente in un'unica posizione tutte le note ai margini, quali segnalibri, disegni
ed evidenziazioni. La versione corrente di Microsoft Reader supporta funzionalità
per testo, immagini e audio. Viene fornito anche il supporto per HTML e
collegamenti HTML. Ulteriori formati, quali flussi video, verranno supportati
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 22
nelle versioni successive. Non esistono attualmente progetti di sviluppo di
versioni di Microsoft Reader per altre piattaforme (Macintosh, Palm o Linux).
- Acrobat eBook Reader
L'Acrobat eBook Reader deriva dal precedente lettore Glassbook Reader. Giunto
ormai alla versione 2.2 questo lettore si presta ad essere molto versatile ed
intuitivo. Grazie alla combinazione di visualizzazioni per la lettura vivide ed
eleganti e di un'interfaccia altamente funzionale, Acrobat eBook Reader fa
assaporare tutto ciò che i libri elettronici hanno da offrire. E' dotato della
tecnologia CoolType per una migliore leggibilità dei "font" e consente il
cosiddetto "riflusso del testo" (caratteristica che permette a seconda della
grandezza della pagina e del fattore di zoom adottato, di mandare il testo a capo
automaticamente). Questo software di lettura consente di visualizzare i libri
elettronici completi di immagini, grafica e i sofisticati font con la stessa tecnica e
le stesse modalità utilizzate per i libri stampati. Non poteva che essere così visto
che, oltre a ricevere l'eredità dal lettore software della Glassbook, emula i migliori
pregi del noto programma di lettura dei documenti in formato .pdf : Acrobat
Reader. La versione corrente di Acrobat eBook Reader supporta funzionalità per
testo, immagini e audio. Ulteriori formati, quali flussi video, verranno supportati
nelle versioni successive. L'Acrobat eBook Reader può essere installato su tutti i
dispositivi hardware attualmente in commercio: PC, portatili (notebook), palmari,
pocket pc.
2.4.4 Il futuro degli e-Book nella carta riscrivibile?
Lo Xerox Palo Alto Research Center è un centro in cui l'editoria elettronica, fra le
altre cose in progetto, farà passi da gigante. L'ultima delle invenzioni di questo
vulcanico laboratorio è un tipo di carta elettronica riusabile: il Gyricon.
Questo nuovo tipo di carta sarà, per molti aspetti, simile alla carta che usiamo tutti
i giorni. Avrà uno spessore ed un peso non distinguibili da un foglio di carta ed
anche il suo costo dovrebbe essere di poco superiore. Una differenza, però, c'è:
questa nuova carta elettronica sarà riscrivibile migliaia di volte. Il suo impiego
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 23
ideale è per display per portatili a basso consumo, cartelloni pubblicitari
riscrivibili e naturalmente display per eBook!
Passando all'aspetto puramente tecnico, possiamo descriverla come una carta
elettronica riusabile (electronic reusable paper) che sfrutta una nuova tecnologia
di visualizzazione chiamata Gyricon, appunto. Un foglio Gyricon è uno strato
sottile di plastica trasparente, nel quale sono dispersi milioni di piccoli grani.
Questi grani, ognuno contenuto in una cavità riempita d'olio, sono liberi di rotare
all'interno della stessa cavità. Sono bicromatici, ovvero sono sfere colorate per
metà con un colore chiaro e per l'altra metà con uno scuro che faccia contrasto
(per esempio, bianco e nero, oppure rosso e bianco). Inoltre, hanno cariche
opposte sulle diverse facciate, in modo da costituire un dipolo. Se un voltaggio è
applicato sul foglio Gyricon, essi si dispongono presentando una delle loro facce,
a seconda di quale carica è stata trasmessa. Ovviamente, può essere esercitato un
voltaggio differente per ogni zona allo scopo di disegnare dei motivi. In questo
modo si possono creare testi ed immagini che persistono fino a quando un nuovo
voltaggio verrà applicato. Verrà immesso il Gyricon Printer; questo processo di
creazione di immagini può essere fatto manualmente con delle stilo caricate
elettronicamente, oppure tramite dispositivi elettronici che possono stampare su
fogli Gyricon usando testine cariche elettronicamente. Alcuni di questi dispositivi,
che sono stati recentemente progettati, hanno una dimensione che dovrebbe
consentirgli di stare all'interno di borse o portafogli! Un'altra applicazione è quella
di sfruttare le matrici elettroniche usate per gli LCD allo scopo di produrre display
a basso consumo e senza bisogno di retroilluminazione. Una partnership con la
3M ha permesso di avviare una produzione dell'electronic reusable paper, in
quantità tale da essere adatta ad un uso commerciale.
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 24
Capitolo 3 - PDFT M, Java e iText
In questa parte tratteremo, in modo generico, del formato elettronico PDF, poiché
è a larga maggioranza ritenuto il più adatto ad essere modificato sotto certe
condizioni, protetto da accessi maliziosi e utilizzabile con applicativi disponibili
gratuitamente per il pubblico; una breve trattazione sul linguaggio Java introdurrà
poi una panoramica sulla libreria iText, citando gli ideatori di questo progetto e
quali sono le possibili realizzazioni che permette di eseguire mediante le sue
librerie.
3.1 PDF™ Il Portable Document Format è stato progettato per l’interscambio di documenti in
modo che il ricevente veda esattamente il documento come è stato creato
indipendentemente da diverse elaborazioni fatte su di esso. La principale
differenza con gli altri formati è che il PDF è concepito come un formato di
descrizione delle pagine; ne risulta che ogni pagina contiene le informazioni utili
alla visualizzazione e può essere isolata dalle altre. Il PDF viene generato dal
PostScript ma non ne contiene la complessità per cui una pagina generata da
diversi programmi sarà sempre la stessa. Esso è progettato con buone
caratteristiche di sicurezza e crittografia e la sua diffusione in rete ha fatto nascere
numerosi software freeware che permettano la lettura di tale tipo di documenti.
3.1.1 Caratteristiche del formato PDF
Per valutare le potenzialità del PDF si devono prendere in considerazione diversi
aspetti legati sia alle caratteristiche di alto livello, visibili agli utenti finali, sia a
quelle di basso livello, più strettamente riguardanti gli aspetti implementativi del
formato stesso e dei file che lo utilizzano. Si possono quindi distinguere:
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 25
� Adobe Imaging Model
È la rappresentazione grafica e testuale utilizzata, che coincide con quella
usata dal linguaggio PostScript. Ne risulta una divisione in pagine nelle
quali vengono inseriti elementi di varia natura, che possono essere
caratteri, regioni definite tramite combinazioni di linee e curve, o
immagini in formato digitale. Ogni immagine può essere mascherata in
modo da renderne visibile soltanto una parte. Inizialmente una pagina
viene descritta completamente vuota, successivamente vengono aggiunti
dei marker che delimitano sezioni di pagina; ogni marker può essere
sovrapposto ad altri limitandone la visibilità; sono simili a quelli utilizzati
nel Postscript ma non essendo il PDF un linguaggio di programmazione
viene esclusa la possibilità di utilizzare procedure, variabili e strutture di
controllo. Viene migliorata l’efficienza a scapito della flessibilità
definendo un set di operazioni ad alto livello implementate direttamente in
codice macchina e non in Postscript rendendo più veloce la
visualizzazione e la stampa delle pagine.
� Portabilità
Un PDF è un file binario in cui viene utilizzato l’intero set di caratteri a 8
bit. Sfortunatamente alcune applicazioni usano un set di caratteri
stampabili a 7 bit, come per esempio alcuni programmi di posta, e non
garantiscono la corretta interpretazione di certi caratteri come i fine linea.
Per garantire l’integrità dei file PDF li si deve trattare come i file binari;
per fare ciò si inseriscono caratteri con codice ASCII maggiore di 127
come header iniziale.
� Compressione
Per ridurre le dimensioni del file, il formato PDF supporta molti standard
di compressione:
� JPEG per immagini a colori o scala di grigio
� CCITT Gruppo 3 e 4, LZW (Lempel-Ziv-Welch) e
compressione Run Lenght per immagini monocromatiche
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 26
� LZW e compressione lineare di testo e immagini indicizzate.
Usando la compressione JPEG si ottiene un fattore di compressione
maggiore di 10. L’effettiva compressione delle immagini monocromatiche
dipende dal filtro utilizzato e dalle proprietà dell’immagine, normalmente
si hanno rapporti che vanno da 2:1 a 8:1. Le compressioni lineari e LZW
del testo raggiungono approssimativamente un rapporto di 2:1.Tutti questi
metodi di compressione producono dati binari che possono essere
codificati in ASCII base 85 per mantenerne la portabilità.
� Font Independence
L’utilizzo dei font è un punto fondamentale nello scambio di documenti.
Generalmente chi riceve il file dovrebbe avere gli stessi font utilizzati nel
documento originale; diversamente i font verranno sostituiti con altri di
default, producendo effetti indesiderati a causa delle diverse proporzioni,
come il superamento di un margine o la sovrapposizione di caratteri.
Si possono includere i font nel documento provocando un aumento
considerevole delle dimensioni, ad esempio un documento di due pagine
che utilizza quattro font cresce da 10K a 250K. Un’altra possibilità
consiste nel convertire ogni pagina del documento in un immagine a
risoluzione fissa, negando però la possibilità di interagire con i contenuti.
Il PDF dispone di una soluzione che rende i documenti indipendenti dai
font utilizzati per crearli. Per ogni font utilizzato nel documento, viene
creato un font descriptor che contiene il nome del font, le dimensioni ed
eventuali informazioni sullo stile. Queste informazioni utili nel caso in cui
un font non sia presente sul pc con cui si legge il documento, aggiungendo
tipicamente solo 1-2K alla dimensione del documento e utilizzabile per i
font di tipo Adobe Type 1 e True Type.
Altri font grafici, quali lo ZapfDingbats, sono già integrati nell’ambiente
Abode, poichè includere informazioni aggiuntive simili alle precedenti
sarebbe comunque insufficiente.
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 27
� Accesso casuale
Applicativi che estraggono e visualizzano una determinata pagina da un
linguaggio Postscript devono analizzare il file in esame dall’inizio, finché
non viene trovato l’elemento desiderato. In media, il tempo necessario per
visualizzare una pagina non dipende solo dalla sua complessità ma anche
dal loro numero totale all’interno del documento. È un problema per la
visualizzazione interattiva di documenti, dove è importante il tempo di
accesso alla pagina. Ogni file PDF contiene una tabella di riferimenti
incrociati, che viene utilizzata per accedere a pagine ed altri oggetti
importanti nel file; essa viene memorizzata alla fine di quest’ultimo,
permettendo alle applicazioni che generano PDF in un solo passo di
scriverla e a quelle che li leggono di trovarla in modo semplice.
� Aggiornamento Incrementale
Certe applicazioni che permettono agli utenti di modificare documenti
PDF contenenti svariate centinaia di pagine non dovrebbero far attendere
la riscrittura dell’intero file ogni qual volta vengano salvate le modifiche.
Il PDF permette sia la modifica sia l’aggiunta in un file, lasciando intatti i
dati originali. L’aggiunta incrementale contiene solo l’oggetto che è stato
modificato o aggiunto e include una versione aggiornata della tabella dei
riferimenti incrociati. Tale sistema permette di ottenere salvataggi con
tempi proporzionali ai dati modificati invece che alle dimensioni del file;
inoltre, vista la ridondanza dei dati, è possibile ripristinare l’originale.
� Estendibilità
Il formato PDF è stato progettato per essere estendibile. Sicuramente gli
sviluppatori vorranno aggiungere caratteristiche che non sono ancora state
implementate; per questo motivo è stato progettato in modo tale da poter
essere esteso conservando la compatibilità con interpreti antecedenti le
modifiche.
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 28
3.1.2 PDF e linguaggio PostScript
Nella sezione precedente sono state accennate le differenze fra il PDF e il
linguaggio Postscript; ci si propone ora di elencarle:
• Un PDF può contenere oggetti come collegamenti ipertestuali, utili per la
visualizzazione interattiva.
• Per semplificare il processo di descrizione delle pagine il PDF non
fornisce costrutti di programmazione
• Il PDF rafforza il concetto di struttura di file e permette alle applicazioni di
accedere in modo casuale a parti del documento.
• Il PDF contiene informazioni riguardanti le caratteristiche dei font per
assicurare fedeltà di visualizzazione.
Per questi motivi, un file PDF non può essere inviato direttamente ad una
stampante per l’elaborazione. Un PDF può essere suddiviso in quattro parti
distinte:
Figura 1.1 Suddivisioni di un PDF
• Oggetti: comprende, tranne alcune eccezioni, i tipi base usati nel
linguaggio Postscript, come le strutture di dati e gli oggetti di base che
essenzialmente danno forma ad un testo.
• Struttura del file: determina come un oggetto è memorizzato in un file
PDF, il tipo di accesso consentito e le modalità di aggiornamento. Questa
struttura è indipendente dalla semantica di un oggetto; si possono
distinguere quattro sezioni: header, body, cross-reference table (tabella dei
riferimenti incrociati) e trailer.
Oggetti
Struttura del File
Struttura del Documento
Descrittore di Pagina
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 29
• Struttura del documento: specifica le modalità di utilizzo dei tipi base
per rappresentare i componenti di un documento PDF come le pagine, le
annotazioni, i collegamenti ipertestuali, i font, ecc...
• Descrittore di pagina: pur facendo parte di un oggetto pagina, rimane
separato dagli altri e con essi ha una limitata interazione. Questo
semplifica la conversione in linguaggio Postscript, può essere considerato
come una sequenza di oggetti grafici collocati al suo interno, inoltre si
possono sovrapporre e coprire uno con l’altro.
3.1.3 Adobe AcrobatTM Reader
Il principale applicativo utilizzato per la lettura di file PDF viene fornito dalla
Adobe in versione freeware, che ne permette una rapida diffusione sia in ambito
aziendale che privato; tale caratteristica ne ha permesso la distribuzione in mercati
già occupati da interpreti di altri formati elettronici (DOC, PS, ecc…).
Fondamentalmente è un’interfaccia di visualizzazione dei file PDF che permette:
• la visualizzazione in varie modalità dei documenti: a pagine singole,
multiple, con vari fattori di zoom, con barre di navigazione, documenti
multipli e cronologia di azioni;
• la stampa dell’intero documento o di sue parti;
• la ricerca di parole;
• la selezione e la cattura di testo ed immagini;
• la visualizzazione di miniature (thumbnail) delle pagine, se presenti nel
PDF;
• la gestione di segnalibri (bookmark);
• la gestione di collegamenti ipertestuali nello stesso ed in altri documenti;
• opzioni di visualizzazione all’interno di un browser: si intende la
possibilità di integrarsi all’interno dell’ambiente di un browser
estendendone le possibilità;
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 30
• la gestione di impostazioni di protezione: all’atto della creazione di un
documento si possono specificare diverse impostazioni riguardanti la
visualizzazione, la modifica e la stampa dei documenti; attraverso di esse
si abilitano o si inibiscono alcune delle operazioni descritte
precedentemente.
3.1.4 Adobe SDK
Adobe fornisce un insieme di librerie, documentazioni, esempi e template che
permettono la progettazione e lo sviluppo di plug-in e prodotti perfettamente
integrati con l’ambiente Acrobat. È stato sviluppato un insieme di oggetti che
consentono la creazione, la modifica e la sostituzione di parti del documento o
della sua struttura; ad alto livello questi ultimi possono essere suddivisi in layer:
• Acrobat Viewer (AV) Layer: i suoi metodi permettono ai plug-in di
manipolare i componenti dell’ambiente stesso, come per esempio i menu e
le relative voci.
• Portable Document (PD) Layer: fornisce accesso agli oggetti che
compongono il documento PDF, come per esempio le pagine e le
annotazioni; lo si può ulteriormente suddividere in:
o PDFEdit: raggruppa il contenuto delle pagine in oggetti di
cui è possibile modificare parametri e attributi; permette ai
plug-in di leggere, scrivere, modificare e creare contenuti e
pagine che possono a loro volta inglobare font ed immagini.
o PDSEdit: riguarda le caratteristiche e le informazioni sulla
struttura del documento, che viene costruita,
indipendentemente dalla sua rappresentazione fisica, tramite
puntatori.
• Acrobat Support (AS) Layer: fornisce funzioni platform-indipendent che
riguardano ad esempio la manipolazione dei file o l’allocazione di
memoria.
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 31
• Cos Layer: garantisce l’accesso ai blocchi di basso livello utilizzati per
manipolare i dati, come i dizionari e stringhe.
Figura 1.2 Acrobat Layer
Le prime due lettere del nome di un oggetto o di un metodo indicano
l’appartenenza ad un determinato layer; è ora possibile dare una panoramica più
dettagliata di tali oggetti e delle loro relazioni. Gli oggetti principali che vengono
utilizzati sono:
• CosDoc: è la rappresentazione di un documento PDF a basso livello; non
si può creare direttamente ma deve essere ottenuto come risultato di una
funzione.
• ASFile e ASFileSys: incapsula l’accesso ai file e fornisce un’interfaccia
comune al viewer, alle applicazioni ed ai plug-in verso il file system su
diverse piattaforme. Un ASFile è una rappresentazione opaca di un file
aperto, contenente un ASPathName ed un ASFileSys, che rappresentano
rispettivamente il percorso del file specifico del sistema ed un insieme di
funzioni per accedere ai diversi file system.
• PDDoc: è una rappresentazione logica di un documento PDF aperto; esiste
una corrispondenza diretta fra PDDoc e ASFile. Un’applicazione può
creare o aprire un documento utilizzando un ASFileSys e un ASPathName
che solitamente si riferiscono a file su disco. Ogni documento contiene un
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 32
albero di pagine, può contenere un albero di bookmark ed articoli, ed
infomazioni e strutture di sicurezza.
• AVDoc: rappresenta un documento visualizzato in una finestra, ne esiste
uno solo; a differenza di un PDDoc, è sempre associato ad una finestra.
• AVWindow: fornisce metodi per creare e gestire finestre;
• AVPageView: riguarda l’area del viewer che visualizza il contenuto di
una pagina; ogni AVDoc possiede un AVPageView e viceversa, contiene
riferimenti a oggetti di tipo PDDoc e PDPage riferiti al documento attivo.
Si utilizza per visaulizzare una determinata pagina, scegliere il fattore di
scala, evidenziare una o più parole e così via. Esistono casi particolari in
cui, nella visualizzazione in continuo delle pagine1, esso non sia riferito ad
una specifica pagina; per fissare il riferimento di solito di usa il metodo
AVPageViewSetPageNum.
Figura 1.3 Document Object Interrelationship
• CosObj: e ‘un oggetto generale in un file PDF e può essere di qualunque
tipo appartenente al Cos layer.
1 La visualizzazione può essere: a pagina singola, in continuo o a pagine affiancate.
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 33
• PDFileSpec: viene usato per specificare un file come oggetto di
un’azione; può essere creato da un ASPathName o da un CosObj ed è di
due tipi:
o un pathname platform-independent;
o una struttura dati contenente uno o più modi per localizzare il
file su piattaforme differenti.
Figura 1.4 File I/O Object Interrelationships
3.2 Java Si è pensato di voler dare una breve nozione storica e pratica del linguaggio Java,
per completare la funzione descrittiva del progetto, inerente a questo elaborato.
3.2.1 Introduzione al linguaggio Java
Java appena è uscito è stato accolto con molto entusiasmo dalla comunità
mondiale dei progettisti di software e dei provider di servizi Internet, perché Java
permetteva agli utenti di Internet di utilizzare applicazioni sicure e indipendenti
dalla piattaforma, che si possono trovare in qualsiasi punto della rete.
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 34
Java è quindi nato come linguaggio per la rete, per affiancare l'Hyper Text
Markup Language (HTML), che non è un linguaggio di programmazione vero e
proprio, e dare maggiore sicurezza in rete alle transazioni in rete, possibilità che
l'HTML non permette. Il linguaggio di programmazione Java è stato creato verso
la metà degli anni novanta, è il più recente tra i suoi cugini, e per questo è ancora
in fase evolutiva, tanto che ogni anno circa ne viene rilasciata una nuova versione.
Da linguaggio nato solo per la rete è divenuto un vero e proprio linguaggio di
programmazione, paragonabile, dal punto di vista delle funzionalità, al più
blasonato C++. Java e la maggior parte degli altri linguaggi possono essere
paragonati solo dal punto di vista delle funzionalità, perché sono
fondamentalmente molto diversi, infatti Java compila i sorgenti dei suoi
programmi in un codice detto Bytecode, diverso dal linguaggio della macchina su
cui è compilato, mentre linguaggi come il C++ compilano i sorgenti dei
programmi in un codice che è il codice della macchina su cui è eseguito. Quindi
per eseguire un programma Java occorre uno strumento chiamato Java Virtual
Machine(JVM), la quale interpreta il bytecode generato dal compilatore Java e lo
esegue sulla macchina su cui è installato. Grazie alla JVM, Java è indipendente
dalla piattaforma, infatti il programma compilato Java è legato alla JVM e non al
sistema operativo, sarà quindi possibile eseguire lo stesso programma Java,
compilato una sola volta su una qualche macchina con un compilatore Java
versione X, su una piattaforma Windows e su una piattaforma Linux. Per fare
questo però c'è bisogno che sia Windows che Linux abbiano installato una Java
Virtual Machine che supporti la versione X di Java. Le due JVM installate sulle
due piattaforme diverse sono praticamente un programma compilato una volta per
Windows ed una volta per Linux, come avveniva con i programmi scritti in
linguaggi come il C/C++. Una Java Virtual Machine è implementata anche nei
vari Browser (come Netscape e Explorer) per poter eseguire i programmi Java
incontrati nella rete, i cosiddetti Applet. Questo però, unito al fatto che Java
ancora si evolve, causa degli ovvi problemi di incompatibilità: capita sempre che
il più moderno Browser supporti una versione precedente di Java rispetto
all'ultima versione rilasciata dalla Sun Microsystem, inoltre bisogna tener presente
che non tutti gli utenti di Internet navigano usando l'ultima versione di Netscape o
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 35
di Explorer. Un altro problema da affrontare è la scelta del compilatore Java da
utilizzare, infatti esistono vari ambienti integrati per editare, compilare, debuggare
ed eseguire programmi Java, come quelli della Borland, della Microsoft, della
Symantec. Tutti questi ambienti offrono dei tools di sviluppo eccellenti, come
editori grafici di finestre, debugger molto interessanti. Per la realizzazione di
questa tesi, si è scelto di lavorare sul JBuilder 5, della Borland, per due motivi: la
prima è la fresca realizzazione di questa versione, che permetteva l’uso della JDK
più recente, la seconda è che, nonostante si trattasse della versione rilasciata in uso
gratuito, permetteva un utilizzo molto completo.
3.2.2 Programmare in Java
La principale differenza tra Java e gli altri linguaggi di programmazione ad
oggetti è che mentre con questi ultimi è possibile ‘anche’ programmare ad oggetti
con Java si deve assolutamente programmare ad oggetti. Tale programmazione
avviene nello stesso modo degli altri linguaggi, differenza sostanziale è che sia i
dati, che le funzioni manipolanti questi, sono racchiusi in strutture dette classi. Le
classi sono dei prototipi di oggetti, ovvero sono delle strutture astratte (ma non
troppo) che possono essere instanziate e quindi creare un oggetto (ma anche più di
uno). La classe definisce tutte le proprietà degli oggetti appartenenti a quella
classe, detti attributi, e le funzioni che vengono usate per agire su di essi, detti
metodi. Per accedere agli attributi e ai metodi di un oggetto si utilizza la notazione
puntata: oggetto.attributo oppure oppure oggetto.metodo(). Una figura, tratta dagli
appunti ‘JDBC TM - Java Database Connectivity’ dell’Ing. Fabrizio LAMBERTI,
del Dipartimento di Automatica ed Informatica, del Politecnico di Torino, servirà
meglio a esemplificare il concetto di classe
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 36
Figura 1.5 Concetto di Classe
Ad esempio è possibile definire una classe delle persone, come segue:
Inizio classe persone
Attributo annodinascita
Metodo calcolaetà (annoattuale)
Fine classe persone
La classe delle persone così definita ha un attributo, che è annodinascita, che sarà
sicuramente un numero intero ed un metodo che, in base all' anno attuale passato
come parametro, calcola l'età della persona. Per meglio comprendere la creazione
di una classe e di un oggetto, inseriamo qui di seguito due figure, sempre tratte
dagli appunti dell’Ing. Fabrizio LAMBERTI
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 37
Figura 1.6 Definizione di una classe
Figura 1.7 Creazione di un oggetto
Per ogni eventuale approfondimento sull’argomento, poiché non è questo il
soggetto dell’elaborato, si rimanda ai numerosi testi e manuali presenti sul
mercato editoriale.
3.3 iText iText è una libreria gratuita che permette di generare file PDF in tempo reale,
ossia senza l’uso di file temporanei.
Figura 1.8 Logo della libreria iText
Le classi generate mediante iText si utilizzano quando si ha necessità di creare file
PDF in cui occorre inserire testo, immagini e tabelle, senza utilizzare un lettore di
tale formato, ossia senza lavorare personalmente sul file da modificare, ma
facendo agire il programma Java; tale libreria è usata in combinazione alle
tecnologie basate su Java e realizzate mediante l’uso di questo linguaggio di
programmazione; richiede la Java Development Kit (JDK) 1.2 della Sun
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 38
Microsystems Incorporated ed è di libero utilizzo mediante le multilicenze MPL e
LGPL.
Creata nel 1999 da Bruno Lowagie, ingegnere di Gent, nel Belgio, la libreria è
stata migliorata ed ampliata nel suo complesso anche grazie all’apporto dato
successivamente dall’ing. Paulo Soares, attuale coresponsabile del progetto, ed è
in continua evoluzione, tanto che a tutt’oggi si registra l’uscita della versione
0.93; la libreria è disponibile nel sito dell’ing. Lowagie, all’indirizzo web:
http://www.lowagie.com/iText/ , in cui è possibile trovare anche un tutorial,
curato dall’ing. Soares, molto ben fatto, che con esaurienti esempi spiega
l’utilizzo della loro libreria.
3.3.1 Utilizzo di iText
Passiamo ora in breve rassegna, cosa è possibile realizzare e manipolare con
iText. Come si è detto realizza copie al volo di qualunque file PDF, mediante un
programma sviluppato in linguaggio Java, ma non solo; infatti è possibile creare
nuovi documenti, mediante appositi comandi, ed unirli ad esistenti. In definitiva
con iText possiamo:
� Creare un nuovo file PDF: generarlo dal nulla, impostando il nome da
dare al file, potendo gestire al completo il documento, come i parametri di
dimensione di pagina, i margini, inserendo immagini, intestazioni, piè
pagina, ecc.
� Aprire un file esistente e modificarne il contenuto: o meglio
modificandone l’impaginatura, aggiungendo intestazione e piè pagina,
inserendo pezzi di testo o immagini, su pagine specifiche e su tutto il
documento.
� Unire più file fra loro: scegliendo indifferentemente se unirli
sequenzialmente, ossia uno dopo l’altro, oppure se inserire un documento
in un altro, dopo un numero di pagine prestabilite dall’utente, senza limiti
né sul numero di file uniti, né sul numero di pagine da unire; ciò a livello
di programma, ma come ben sappiamo a livello pratico si deve tener conto
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 39
del tempo di realizzazione del documento finale, per rendere
l’applicazione veloce e funzionale.
� Proteggere a vari livelli il documento: con due livelli di criptatura del
documento, una a 40bit e l’altra a 128bit, la libreria permette diversi livelli
di accesso al documento da parte dell’utente:
o AllowPrinting: permette la stampa del documento;
o AllowModifyContents: consente la modifica dei contenuti
del file;
o AllowCopy: autorizza il copia-incolla;
o AllowModifyAnnotations: concede la modifica delle note;
o AllowFillIn: consente la compilazione di eventuali parti del
documento, ad esempio un form;
o AllowScreenReaders: permette la sola visualizzazione del
file;
o AllowAssembly: autorizza l’inclusione di oggetti nel
documento, come immagini o grafici;
o AllowDegradedPrinting: concede la stampa degradata, in
modo da non renderla perfetta;
Tutti questi metodi di criptatura possono essere inseriti nel documento con o senza
password, inoltre si può decidere se dare una password proprietario ed una utente,
consentendo quindi una modifica successiva da parte del creatore del file.
Per realizzare dei file PDF mediante iText, si devono seguire passi piuttosto
semplici, che possono essere divisi in tre fasi:
� Creazione del documento vuoto, che conterrà il file: in
questa fase è possibile fissare i margini, le dimensioni della
pagina, la sua rotazione e il nome del file PDF risultante;
� Apertura documento ed elaborazione: in questo passo si ha
la vera e propria modifica del PDF, si possono importare
pagine, aggiungere del testo, sia come frasi, se si tratta di
un file vuoto, che come box di testo da posizionare sulla
pagina, aggiungere l’intestazione e il piè pagina, immagini,
ecc;
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 40
� Chiusura del documento: normalmente questa fase è fatta in
automatico dal programma Java, ma è consigliabile sempre
chiudere il documento, una volta terminate le modifiche,
all’interno del programma, poiché si ha la sicurezza che le
risorse impegnate dal programma, verranno rilasciate e il
documento sarà utilizzabile.
Capitolo 4 Problemi e soluzioni
nella realizzazione del progetto
Si intende ora descrivere quali sono stati i problemi incontrati nella realizzazione
del progetto, derivanti dalla manipolazione al volo di file PDF, e le soluzioni
adottate nel creare il programma utilizzante la libreria iText, che sarà utilizzato nel
sito di appunti universitari Appunti.net.
4.1 Appunti.net Ci pare giusto spiegare, brevemente, l’idea che sta alla base della creazione del
sito che andrà ad utilizzare la classe creata alla fine di questo progetto.
Realizzato in collaborazione con la Trim, Appunti.net (www.appunti.net) è il
nuovo sito dedicato a studenti e docenti di tutte le facoltà italiane, proponendosi
come punto di riferimento per lo scambio e la compravendita di appunti
universitari. Qui si possono trovare appunti, dispense, temi d'esame svolti, esercizi
e altro materiale didattico fornito direttamente dai docenti oppure da studenti.
Attualmente il sito dispone già di un’interfaccia che gestisce la manipolazione dei
file grezzi, ma si vuole realizzare un processo simile con altre soluzioni
informatiche, vagliando le più pratiche per la gestione degli appunti.
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 41
4.2 Definizione problemi nella creazione dei documenti
Come si è ampliamente descritto nei precedenti paragrafi, i problemi principali
erano due:
� Formattazione di un testo;
� Protezione del documento da eventuali usi impropri.
I problemi sono connessi fra loro, poiché si tratta di trasformare un documento
definito ‘grezzo’ (ossia proveniente dall’autore) in un documento vendibile,
esteticamente accettabile e protetto, pronto per essere venduto on-line; inoltre si
voleva avere la possibilità di rendere la procedura automatica, ossia che i
parametri fossero recepiti direttamente da un database, se non per alcuni dati,
immessi con un limitato intervento periodico di un operatore.
Documento Grezzo
Vendibile
Anteprima
Omaggio
Master
Creazione Documenti
Figura 1.9 Schema creazione documenti
Per meglio comprendere cosa intendiamo nei paragrafi successivi, indicheremo
brevemente le definizioni adottate nel testo per rifinire i documenti:
� Documento ‘grezzo’: è il file proveniente dall’autore;
� Documento ‘master’: è la copia formattata del grezzo;
� Documento ‘vendibile’: è il file che viene venduto all’utente;
� Documento ‘omaggio’: è la copia concessa in visione gratuita, spesso
donata ai docenti;
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 42
� Documento ‘anteprima’: è una versione ridotta, concessa all’utente per
valutare l’eventuale acquisto del prodotto.
Vediamo come si presenta un file grezzo, con l’inserzione della seguente
immagine, che mostra il file usato come test nella realizzazione del progetto:
Figura 1.10 Documento grezzo
Come possiamo vedere dalla figura il documento grezzo non presenta ne
copertina, ne altra formattazione, quali header o footer; il compito del progetto
sarà, appunto, inserirli. Definiti i termini usati, possiamo procedere alla
specificazione delle varie fasi di creazione dei documenti.
4.2.1 Creazione Master
La copia master consiste in una modifica sostanziale del file grezzo, poiché questo
giunge solitamente senza titolo, intestazione, numero di pagina, ecc.
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 43
Documento Grezzo
Autore
Master
Titolo Copertina
Creazione Master
Codice
Figura 1.11 Schema creazione Master
Al master viene quindi aggiunta una copertina, normalmente di due pagine,
dopodiché si passa all’inserimento delle pagine del documento grezzo e alla loro
modifica; in sostanza si aggiunge:
• Intestazione, recante il titolo dell’appunto, eventualmente troncato se è
troppo lungo, e l’indirizzo web del sito di AppuntiNet;
• Piè pagina, indicante l’autore, con l’iniziale del nome puntata, il codice
dell’appunto e il numero di pagina.
Questa copia master viene lasciata libera da protezioni e crittografia, per poter
consentire le successive modifiche e creazioni dei files destinati agli utenti.
4.2.2 Creazione Copertina
Nella creazione del documento ‘master’ viene inserita una copertina; questa viene
creata in parte in tempo reale, in parte unendo al documento grezzo un file PDF
esistente, in cui abbiamo due pagine:
la prima, in cui troviamo il logo di AppuntiNet e alcune scritte standard;
l’altra contiene tutte le informazioni riguardanti il copyright.
Ciò viene fatto per permettere una maggiore flessibilità al sistema di creazione del
master, in quanto se fossero necessarie delle modifiche al logo o alle norme sul
copyright, è sufficiente sostituire, o modificare, la pagina in oggetto e far passare
la nuova copertina nella creazione dei nuovi master, senza ulteriori accorgimenti.
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 44
4.2.3 Creazione Vendibile
E’ la creazione del file, diremo, finale, ossia quello che l’utente riceve al termine
della procedura di acquisto; esso è una riproduzione del master, a cui viene
aggiunto, nella parte dell’intestazione, sotto l’indirizzo web, il codice del cliente,
per rendere personale la copia e scoraggiare eventuali usi impropri; inoltre si
dovrà proteggere la manipolazione mediante crittografia, lasciando all’utente la
sola possibilità di stampare il documento.
Documento Master
Documento Vendibile
Codice cliente
Protezione documento
Figura 1.12 Schema creazione Vendibile
4.2.4 Creazione Omaggio
La copia Omaggio viene concessa in visione gratuita ai docenti, spesso a scopo
divulgativo e pubblicitario del documento originale; è in pratica una copia master
a cui viene aggiunta una scritta verticale, posta a lato, su ogni pagina del
documento; tipicamente viene aggiunta la scritta.’Campione gratuito, vietata la
vendita’ ma la frase può cambiare, è quindi necessario poter impostare anche una
frase diversa da questa.
Anche questo documento deve esser protetto da manipolazioni, tipicamente si
protegge mediante crittografia e si concede la sola possibilità all’utente di poter
stampare il contenuto.
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 45
Documento Master
Documento Omaggio
Scritta opportuna
Protezione documento
Figura 1.13 Schema creazione Omaggio
4.2.5 Creazione Anteprima
La copia Anteprima rappresenta un sottoinsieme delle pagine del master, concesse
all’utente per visionare e valutare l’acquisto del testo elettronico, che ha preso in
esame. Normalmente si effettuerà un’estrazione casuale di pagine dal documento,
entro comunque un massimo di pagine; e su tutte le pagine estratte viene aggiunta
una scritta, posta di traverso, recante la dicitura:’Appunti.Net’ in dimensione
sufficientemente grande da riempire la pagina. Per rendere maneggevole questa
creazione, si permette di definire sia la percentuale che il numero massimo di
pagine estraibili, oltre che la possibilità di cambiare la dicitura. E’ logico che, a
maggior ragione, anche questo documento dovrà esser protetto da eventuali
manipolazioni e all’utente sarà permessa la sola visione del testo.
Documento Master
Documento Anteprima
Scritta opportuna
Protezione documento
Max Pagine Percentuale Pagine
Figura 1.14 Schema creazione Anteprima
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 46
4.3 Soluzioni adottate: classe AppuntiNet Dopo una breve trattazione dei documenti che bisognava ottenere, passiamo alla
specifica descrizione del programma Java e dei metodi che hanno permesso di
realizzare i documenti presi in esame precedentemente.
La classe principale, che contiene tutti i metodi successivamente descritti, è stata
chiamata AppuntiNet; questa contiene una breve descrizione del file, indica il
nome dell’autore della classe e le note di copyright inerenti all’uso della libreria
iText, dopodiché importa le librerie necessarie al funzionamento dei metodi in
essa contenuti; nel suo complesso, è costituita da 415 righe di codice, per meglio
comprendere il suo funzionamento, riporteremo per ogni metodo, oltre ad
un’immagine esemplificativa, due righe di codice: una recante i nomi dei
parametri e l’altra simulante una reale situazione che è stata usata in fase di test
del programma, un file chiamato AP00218, recante titolo:‘Esercizi di Chimica
Generale’ il cui autore è il prof Paolo Volpe.
4.3.1 Copertina e Copyright
Una parte del passaggio da documento grezzo a documento master consiste
nell’inserimento di una copertina con certe informazioni posizionate in modo
differente nella pagina e dell’aggiunta di una sezione di copyright. Le esigenze di
mercato richiedono che essa possa cambiare a seconda di parametri variabili nel
tempo oppure adattarsi a documenti particolari; per esempio una variazione del
logo dell’azienda in questione oppure un riposizionamento dei campi all’interno
della pagina; tali problemi hanno fatto sorgere l’opportunità di avere a parte
questo documento, poiché la sola inserzione delle note di copyright avrebbe creato
problemi su eventuali modifiche sulla prima pagina, contenente il logo del sito,
costituendo un documento tipicamente di due pagine, in modo da poterlo
modificare off-line e successivamente inserirlo nei documenti. La figura di seguito
inserita servirà a comprendere meglio come è costituita la copertina.
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 47
Figura 1.15 Copertina da inserire
4.3.2 Metodo Crea Master
Questo metodo è quello che crea, appunto, la copia master, ossia formatta il file grezzo ricevuto dall’autore; CreaMaster(String NomeFileGrezzo, String NomeFileCopertina, String NomeFileMaster, String CodiceAppunto, String TitoloAppunto, String[] Autori)
CreaMaster("AP00218.pdf","Copertina.pdf","AP00218master.pdf","AP00218","Te
sto di Esercizi di Chimica Generale",A);
in cui A è l’arrey contenente il nome e il cognome degli autori;
I parametri in ingresso, dunque, sono:
- NomeFileGrezzo, è il nome del PDF da formattare;
- NomeFileCopertina, è il nome del file che contiene le
pagine di copertina;
- NomeFileMaster, è il nome da dare al PDF master;
- CodiceAppunto, è il codice dell’appunto;
- TitoloAppunto, è il titolo dell’appunto;
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 48
- Autori, contiene il nome e il cognome dell’autore;
Una volta assunti questi parametri, il metodo passa ad una prima verifica per
vedere se sono stati immessi tutti; se questa verifica va a buon fine, prosegue,
altrimenti ferma il processo e visualizza un messaggio di errore.
Successivamente fa una verifica sul titolo dell’appunto, per poi poterlo immettere
nell’intestazione delle pagine; se è inferiore ad un parametro fissato, tipicamente
34 caratteri, viene lasciato intero, diversamente viene troncato; nel caso preso ad
esempio il titolo è stato troncato poiché era lungo in totale 37 caratteri.
Passa quindi in esame il nome dell’autore, creandone una copia, la cui iniziale è
puntata, da includere nel piè pagina; a questo punto inizia la creazione vera e
propria del documento master, infatti crea un documento con il NomeFileMaster,
lo apre, vi inserisce la copertina, contenute del NomeFileCopertina, ponendo il
titolo dell’appunto per intero e l’autore nella prima pagina di copertina.
Figura 1.16 Copertina documento Master
Di seguito inizializza un contentbyte, che servirà per posizionare i box di testo che creano l’intestazione e il piè pagina, oltre ad istanziare due Font diversi da
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 49
utilizzare per header e footer. Apre il documento grezzo, legge il numero totale di pagine in esso contenute e inizia ad inserire le pagine con un ciclo di while che tiene conto se ha raggiunto la totalità del documento o no. Ad ogni inserzione di pagina, vengono aggiunti 4 box di testo, inerenti al titolo tronco dell’appunto e alla scritta ‘www.appunti.net’ per quanto riguarda l’header, mentre aggiunge la scritta ‘©2002’ , l’autore dell’appunto, con l’iniziale del nome puntata, e il numero di pagina corrente per il piè pagina.
Figura 1.17 Intestazione e piè pagina documento Master
Terminati entrambi gli inserimenti, quello della copertina e il documento grezzo,
segue una scritta che conferma l’avvenuto inserimento; ultimato lo svolgimento
viene chiuso il documento e si ha la copia master.
4.3.3 Metodo CreaVendibile
Questo metodo crea la copia finale, che l’utente acquista; vediamo come:
CreaVendibile(String NomeFileMaster, String NomeFileVendibile, String CodiceCliente)
CreaVendibile("AP00218master.pdf","218vendita.pdf","cecconetto");
Come si può vedere, assume tre parametri
- NomeFileMaster;
- NomeFileVendibile;
- CodiceCliente.
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 50
Tutti questi parametri vengono analizzati per verificare che siano stati immessi
tutti e tre, passato questo test procede con la creazione del file. Crea un
documento con NomeFileVendibile, ne prepara la criptatura a 40bits, allocando
solo la possibilità di stampa del documento, e lo apre; legge il numero di pagine
che compongono il NomeFileMaster e inizializza un contentbyte per inserire il
CodiceCliente. Assunti questi parametri inizia un ciclo di while per inserire le
pagine del master, dove in ogni pagina viene inserito un box di testo
dell’intestazione, sotto la scritta ‘www.appunti.net’ contenente la scritta ‘Copia
personale di:’ e il CodiceCliente;
Figura 1.18 Documento Vendibile
terminato il ciclo viene visualizzata una scritta che conferma la creazione del
documento e viene chiuso, terminando il processo.
4.3.4 Metodo CreaAnteprima
Questo metodo fornisce la copia in visione al cliente, in modo che possa valutarne
l’acquisto. Vediamo meglio che parametri riceve:
CreaAnteprima (String NomeFileMaster, String NomeFileAnteprima, int pag, int maxpag, String Scritta)
CreaAnteprima("AP00218master.pdf","218anteprima.pdf",50,15,"Copia in
anteprima by Appunti.net")
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 51
Tale metodo, come vediamo, assume in ingresso:
- NomeFileMaster;
- NomeFileAnteprima;
- Scritta;
- Percentuale di pagine (pag);
- Massimo numero di pagine (maxpag).
Il metodo verifica che siano stati immessi e al superamento di questa analisi,
inizia a creare il file. Anzitutto apre il NomeFileMaster e ne legge il numero di
pagine in esso contenute, dopo crea un nuovo documento NomeFileAnteprima e
lo cripta a 40bits, disponendo la sola possibilità di vedere il testo sullo schermo;
apre in documento, instanziando un contentbyte per inserire la scritta, ed inizia a
verificare quante pagine deve inserire; infatti viene calcolata la percentuale di
pagine del NomeFileMaster e confrontato con il massimo di pagine che viene
permesso inserire, se è inferiore, le inserisce tutte, altrimenti assume il massimo
come numero di pagine da inserire. A questo punto viene creato un ciclo che
istanzia un arrey di interi, la cui lunghezza è uguale al numero di pagine da
inserire; questo conterrà dei numeri casuali, generati da un random, entro il totale
delle pagine del documento master; il ciclo, per ogni numero generato, controlla:
-se questo è già stato messo, lo scarta e ne genera un altro;
-altrimenti lo salva e prosegue il ciclo.
Il ciclo termina quando l’arrey è completo; in tal modo si evitano pagine doppie
nella copia di anteprima e numeri che il programma non potrebbe trovare come
pagine. Su ogni pagina viene posizionato un box di testo, posto a 55° di traverso
sulla pagina, contenente la scritta immessa nei parametri d’inizializzazione, il cui
testo viene svuotato e il contorno colorato di rosso.
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 52
Figura 1.19 Documento Anteprima
Terminato questo ciclo, viene visualizzata una scritta di conferma della creazione
e viene chiuso il documento.
4.3.5 Metodo CreaOmaggio
Questo metodo crea la copia da distribuire gratuitamente agli utenti prescelti,
vediamo come:
CreaOmaggio(String NomeFileMaster,String NomeFileOmaggio,String Scritta);
CreaOmaggio("AP00218master.pdf","218omaggio.pdf","Campione gratuito,
vietata la vendita");
Assume in ingresso tre parametri:
- NomeFileMaster;
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 53
- NoleFileOmaggio;
- Scritta opportuna.
Come per i precedenti metodi, viene fatta la verifica su parametri immessi,
considerando che tutti e tre sono assunti come tipo String, passato questo test
inizia la creazione del file; viene aperto il NomeFileMaster, letto il numero di
pagine del documento e creato un nuovo documento con NomeFileOmaggio; tale
file sarà criptato a 40bits, allocando la sola possibilità di stampa del documento,
viene inizializzato un contentbyte per inserire la scritta e inizia un ciclo di while
per l’inserimento delle pagine. Su ogni pagina del documento viene inserita nel
margine sinistro la scritta immessa nei parametri iniziali, opportunamente colorata
e svuotata in modo da visualizzare solo il contorno del testo.
Figura 1.20 Documento Omaggio
Al termine del ciclo, viene visualizzata una scritta di conferma e chiuso il
documento.
Strumenti automatici per editoria elettronica: manipolazione di file in formato PDF™ mediante libreria iTex
Pagina 54
Capitolo 5 Conclusioni
Come si è potuto vedere nel capitolo 3, la continua evoluzione del commercio
elettronico permette di rendere sempre più efficace la vendita di e-book e la
protezione dei diritti di autore; sempre più aziende si affacciano a questo mercato
nuovo e ne apprezzano la facile gestione e la maggiore remunerazione economica;
basti pensare a quanti libri potrebbero essere gestiti e venduti mediante l’utilizzo
di sistemi informatici, opportunamente creati e sviluppati, con l’uso di pochi
operatori e, quindi, con costi contenuti, unito al fatto che il numero di volumi
disponibile e immagazzinabili in una biblioteca elettronica sarebbe quasi
inimmaginabile nella realtà, a meno di non pensare a enormi edifici, con tutte le
difficoltà e i costi che comporterebbero la conservazione e gestione di una simile
biblioteca. E’ facile vedere come tale ambito sia agli esordi, come lo dimostra la
recente nascita della IeBA e del protocollo EBX, ma che prenda campo molto
velocemente; basti pensare agli ultimi sviluppi delle tecnologie, come quelle della
Xerox con il Gyricon, per passare ai più ‘semplici’ lettori per e-Book, oppure ai
prototipi di ‘quotidiani elettronici’, rappresentati da uno schermo elettronico,
completamente pieghevole, e da un cavo usb, da cui potremo scaricare, mediante
la rete, tutti i quotidiani che vorremo, pagando un canone di abbonamento; un
utile aiuto anche per l’ecologia, se pensiamo a quanta carta in meno verrà
utilizzata, un semplice esempio di come la tecnologia, se ben applicata, può
aiutarci per un futuro migliore. È quindi evidente di come questa evoluzione
dell’editoria elettronica necessiterà di appositi strumenti su cui basare la propria
attività, permettendo, anche nel campo della programmazione, una nuova spinta
all’evoluzione informatica.