Breve introduzione al formato RTF |
| A cura di Davide Bianchi |
Ideato dalla Microsoft è un formato "portabile" per la
definizione di documenti comprendenti formattazione di paragrafo, di
carattere e di pagina.
|
| Cosè l'RTF |
L'RTF (Rich Text Format) è una metodo per codificare testo
e grafica studiato per semplificare il trasferimento di informazioni tra
le applicazioni. In sostanza si tratta di una specifica ideata dalla
Microsoft molto simile come contenuti alla specifica PostScript per la
definizione della pagina. L'RTF è un tipo di codifica del testo "tagged", cioè il documento viene codificato come del testo "semplice" e dei "marcatori" o "identificatori" (tag) che indicano quale/i tipo/tipi di "abbellimento" (grassetto, corsivo, tipo di carattere) applicare al "testo semplice". Come concetto è praticamente lo stesso dell'HTML, solo che l'RTF consente di specificare anche delle informazioni di impaginazione molto precise (la dimensione e l'orientamento del foglio per esempio) che in HTML mancano completamente, e di aggiungere all'interno del documento stesso il codice necessario alla tracciatura di grafici e disegni. Il documento RTF può contenere moltissimi "tag", non è detto che tutti i programmi che leggono il documento siano in grado di interpretare correttamente tutti i tag (l'RTF è una specifica tutt'ora in lavorazione, ed è cambiato molto dal 92 ad oggi), in generale un programma interpreta solo i tag che è in grado di riconosciere, se non è in grado di identificare un tag, lo ignora.
|
|||||||||||||||||||||||||||||||
|
Come si presenta l'RTF
|
I tag RTF consentono di specificare le caratteristiche di
una o più lettere (o parole), come nell'HTML. I tag RTF in genere sono
composti dal carattere \ seguito da una o più lettere che
identificano il tag e da uno o più numeri nel caso il tag richieda un
parametro numerico (ad esempio i tag che specificano la dimensione del
carattere richiedono che la dimensione sia indicata in numeri), il tag
deve essere separato dal testo a cui si applica da uno spazio, questo
spazio però non apparirà nel testo stampato, il tag ed il testo a cui
questo deve essere applicato sono rachiusi tra parentesi graffe { }.
Un tag tipico è:
{\b Questo testo è in grasseto.}
I tag possono anche essere "nidificati", ovvero un tag
può essere specificat nel corpo di un altro tag:
{\b Questo testo è in grassetto, {\i e questo è anche in corsivo.}}
| |||||||||||||||||||||||||||||||
| Un documento RTF | Un file RTF deve essere identificato in modo certo, il file
deve iniziare con il tag \rtf, seguito dal numero di versione RTF (di solito
1) e dal set dei caratteri usato (di solito \ansi)
Esempio:
{\rtf1\ansi
Questo è del testo
}
Ok, questo è solamente un esempio, però è valido per
capire il formato.
| |||||||||||||||||||||||||||||||
| Specificare i font da usare | I font (tipi di carattere) che vengono usati nel documento
devono essere specificati all'inizio, questo si fa definendo una
Tabella dei Font definita come segue:
{\fonttable
{\fN \famiglia \fcharsetN \fprqN NomeFont; }
...altre definizioni
}
dove:
esempio:
{\fonttbl
{\f0 \froman \fcharset0 \fprq2 Times New Roman;}
{\f1 \fswiss \fcharset0 \fprq2 Arial;}
{\f2 \fmodern \fcharset0 \fprq2 Courier New;}
}
notare il punto e virgola in fondo ad ogni linea.
Per utilizzare uno dei font definiti in questo modo occorre usare il
tag \fn prima del testo
che si vuole mettere con quel font.
{\f1 Testo in Arial} {\f0 testo in Times}
| |||||||||||||||||||||||||||||||
| Definire la dimensione del font | La dimensione del font si specifica con il tag \fsn, dove 'n' è specificato in 0.5 di punto, cioè \fs24 indica un font di 12 punti tipografici. | |||||||||||||||||||||||||||||||
| Tag di controllo del testo | I tag di controllo del testo sono utilizzati per impostare
le caratteristiche del paragrafo o per specificare l'aspetto che tale
paragrafo deve avere (giustificazione, spazi...)
| |||||||||||||||||||||||||||||||
| Formattazione del testo | In alcuni di questi tag occorre specificare una dimensione
(distanza), tale dimensione deve essere indicata in twips cioè 1/20
di pollice=1.125 millimetri
| |||||||||||||||||||||||||||||||
| Definizione della pagina | In alcuni di questi tag occorre specificare una dimensione
(distanza), tale dimensione deve essere indicata in twips cioè 1/20
di pollice=1.125 millimetri
| |||||||||||||||||||||||||||||||
| Tag speciali |
| |||||||||||||||||||||||||||||||
| Testatine e piedini | In RTF possono essere specifciati testatine e piedini per
tutte le pagine, diversi per le pagine pari e dispari e così via. Ogni
sezione di documento può avere le sue testate e piedini, se per una
sezione non sono specificati, verranno usati quelli della sezione
precedente (se ci sono).
| |||||||||||||||||||||||||||||||
| Tabulatori | Ogni paragrafo può avere il suo set di tabulatori diverso.
I tabulatori si definiscono mediante una serie di tag
Per specificare le tabulazioni si mettono 'n' \tx in fila: \tx100 \tx140 \tx270 \tx300 \tx315...Per utilizzare i tabulatori basta mettere \tab tra un valore e l'altro per eseguire la tabulazione: \tab Primo valore \tab Secondo valore \tab Terzo valore ...Il primo \tab serve a spostare il testo in corrispondenza del primo tabulatore. | |||||||||||||||||||||||||||||||
| Tabelle | Le tabelle in RTF sono particolarmente rognose, per
definire una tabella si utilizzano un sacco di tag specifici. Consideriamo
poi che una tabella in RTF viene definita come 'attributi di paragrafò,
quindi non rappresenta un'entità a sè stante ma è un paragrafo.
Occorre anche notare che certi programmi che sono in grado di leggere l'RTF (Word per esempio), se incontrano una tabella definita in modo erroneo si bloccano segnalando errori nel programma, questo è probabilmente dovuto al modo di gestione interna delle tabelle del programma, quindi fare molta attenzione con la definizione delle tabelle. La tabella deve essere definita utilizzando i tag di definizione della tabella. Una riga di tabella è una sequenza di paragrafi, suddivisi in celle, la riga inizia con \trowd e termina con \row. Ogni paragrafo che è inserito in una riga di tabella deve contenere il tag \intbl la singola cella è terminata dal tag \cell, Tag di definizione della tabella:
Questo è un esempio di tabella scritta in RTF
\trowd \trgaph70\trleft-70\trbrdrt\brdrs\brdrw10
\trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10
\trbrdrr\brdrs\brdrw10
\trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10
\clvertalt\clbrdrt\brdrs\brdrw10
\clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10
\clbrdrr
\brdrs\brdrw10 \cltxlrtb \cellx3300\clvertalt\clbrdrt\brdrs\brdrw10
\clbrdrl\brdrs\brdrw10
\clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10
\cltxlrtb
\cellx6670\clvertalt\clbrdrt\brdrs\brdrw10
\clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10
\clbrdrr
\brdrs\brdrw10 \cltxlrtb \cellx10040\pard
\qj\ri500\nowidctlpar\intbl\adjustright
{\fs24\cgrid0 \cell \cell \cell }\pard \widctlpar\intbl\adjustright
{\fs24\cgrid0 \row }\trowd
\trgaph70\trleft-70\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10
\trbrdrb
\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10
\trbrdrv\brdrs\brdrw10
\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10
\clbrdrb\brdrs\brdrw10
\clbrdrr\brdrs\brdrw10 \cltxlrtb
\cellx3300\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl
\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10
\cltxlrtb
\cellx6670\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10
\clbrdrb\brdrs\brdrw10
\clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx10040\pard
| |||||||||||||||||||||||||||||||
| Ulteriori informazioni e riferimenti | I tag non sono tutti quì ovviamente, ce ne sono molti di
più, solo che non ho sufficiente spazio per riportarli tutti. Il modo
migliore per scoprire un tag rtf è quello di leggere la documentazione che
è reperibile sul sito della Microsoft, oppure di scrivere un documento che
abbia le caratteristiche che stiamo cercando in Word, salvarlo come RTF e
poi andare a 'spulciarè il documento generato in cerca del tag. Il
problema è che Word genera dell'RTF che non è per niente leggibile.
Carlo Bertelli mi segnala questo documento, di Paul Dubois, autore di RTFTools: http://www.snake.net/software/RTF/Documents/ (link in Inglese)
|
|||||||||||||||||||||||||||||||
| Esempio di documento RTF | Fare click qui per vedere un esempio di documento RTF. Fare click qui per vedere lo stesso documento nel vostro viewer predefinito. | |||||||||||||||||||||||||||||||
| Problemi ricorrenti | Vorrei fare questo e quello in RTF ma non trovo i
TAG Il sistema più semplice per risolvere il problema è: usare Word per generare l'RTF contenente il testo con le caratteristiche che si vogliono, poi aprire il file con un editor ASCII ed andare "a caccia" del TAG da utilizzare. Ho fatto l'RTF ma con Word mi appare in un modo mentre con WordPad
in un altro Ho fatto l'RTF, cerco di aprirlo con Word e si inchioda
tutto! |
|
Commenti I commenti sono aggiunti quando e soprattutto se ho il tempo di guardarli e dopo aver eliminato le cagate, spam, tentativi di phishing et similia. Quindi non trattenete il respiro.
|
7 messages post new
denise
By denise - posted 25/03/2008 22:59
- reply SCUSATE MA IO NON CI HO CAPITO MEGLIO....COME FACCIO A TRASFORMARE UN TESTO DI WORD IN FORMATO RTF.....è DIFFICILE!! :'(
togli il gomito dal tasto delle maiuscole. Nelle vecchie versioni di Word esisteva sempicemente il 'salva come' e poi si sceglieva 'rtf', nelle versioni nuove non so.
softlux
By softlux - posted 08/05/2008 11:19
- reply anche nelle nuove...
Max
By Max - posted 09/06/2008 08:37
- reply Ciao, ho un problema...come faccio ad unire più file rtf in un unico documento da codice?
In Java ad esempio? Il metodo che uso ora mi va bene se il modello rtf è lo stesso ma se devo unire due modelli con font diversi quando accodo il secondo mi incasina i font....help me l'unico modo funzionante e' processare il documento, facendo un "merge" del testo e degli stili contenuti, per fare cio' devi scriverti un elaboratore dei testi che sia in grado di leggere i due documenti ed effettuare il merge.
lallag88
By lallag88 - posted 07/09/2008 16:17
- reply scusate la mia ignoranza...
io ho provato a salvare in formato rtf, fino alla versione di windows xp riuscivo a farlo... ma con windows vista non sono capace!!!! il che potrebbe spiegare perche' tanta gente non lo vuole Spista sul computer
filsysadmin
By filsysadmin - posted 22/12/2008 19:15
- reply D. se ti va puoi scrivere una valutazione (magari semi-seria) per SPista V.S. XP.
Non avendo mai usato nessuno dei due?
subject
By fulvia - posted 06/05/2009 22:17
- reply come faccio a salvare in rtf un documento word 2007? Sul mio programma non compare "salva come"
--
> come faccio a salvare in rtf un documento word 2007? Sul mio programma non compare "salva come"
Non ne ho la piu' pallida idea. Usare openoffice magari? --
7 messages post new
|
|
| The Author |
Davide Bianchi,
works as Unix/Linux administrator for a "network security" company of Haarlem. Contacts: mail: davide AT onlyforfun.net , ICQ: 268751033, Jabber: davideyeahsure AT gmail.com Skype: davideyahsure |
|
| Contribute | Do you want to contribute? read how. | |
| Copyright | This site is made by me with blood, sweat and gunpowder, if you want to republish or redistribute any part of it, please drop me (or the author of the article if is not me) a mail. |
This site isn't optimized for vision with any specific browser, nor
it requires special fonts or resolution.
You're free to see it as you wish.
This e-mail is here in order to send spam to an honeypot: davide@walterisookeensufferukker.nl
Updated : 22/01/2007 00:00