Il formato RTF
RTF (acronimo di RICH TEXT FORMAT) è un formato per documenti multipiattaforma, sviluppato da Microsoft nel lontano 1987. La maggior parte degli editor di testo e dei word processor disponibili per Microsoft Windows, Mac OS e Linux sono in grado di leggere e scrivere documenti RTF.
RTF permette di mantenere la formattazione dei caratteri, dei paragrafi e tutte le immagini presenti in un documento, impostare informazioni di impaginazione molto precise (la dimensione e l’orientamento del foglio per esempio) senza includere nessuna macro. Inoltre le specifiche possono essere consultate liberamente, e Microsoft ad ogni nuova versione, rilascia l’ opportuna documentazione. Dalla versione 1.0 del 1987 siamo giunti alla 1.9 del Febbraio 2007.
La soluzione: PhpRtf
PhpRtf è una libreria php free in grado di generare file RTF in modo dinamico. Il suo utilizzo è molto semplice, e ciò è dovuto anche al fatto che il codice è ben strutturato.
Di seguito sono elencate alcune delle funzionalità che la libreria mette a disposizione:
- gestione e formattazione delle sezioni di un documento (margini, formato pagina, bordi, ecc..)
- formattazione di header e footer (possiblità di inserire intestazione, contatore pagina automatico, la data in diversi formati, ecc..)
- gestione e formattazione del paragrafo (controllo del background, bordi, allineamento, indentazione, ecc.)
- gestione e formattazione del font (dimensione, colore, grassetto, corsivo, ecc.)
- possibilità di aggiungere al documento immagini di tipo JPG e PNG
- gestione delle tabelle: impostazione dei bordi e delle misure, del background e allineamento delle celle
- possibilità di scrivere in RTF direttamente all’ interno del documento
- possibilità di utilizzare gli html style tags
- supporto UTF-8
Sul sito ufficiale del progetto, www.phprtf.com, è possibile trovare tutta la documentazione e il dettaglio delle funzioni disponibi nella libreria.
Analizziamo il classico esempio: HelloWord !
<?php
require_once("../rtf/Rtf.php");
$rtf = new Rtf();
$sect = &$rtf->addSection();
$sect->writeText('<i>Hello <b>World</b></i>.', new Font(12), new ParFormat('center'));
$rtf->sendRtf('Hello World');
?>
Innanzitutto bisogna includere il sorgente della libreria, Rtf.php, e istanziare l’oggetto Rtf. A questo punto si aggiunge una pagina al documento attraverso il metodo addSection(), e si scrive al suo interno utilizzando writeText. Come è posisibile vedere, per scrivere sul file bisogna definire 2 attributi: il font, attraverso il quale applichiamo una formattazione di stile al carattere, e la formattazione del paragrafo che contiene il testo. In questo caso il paragrafo dispone il testo con allineamento centrato. Per salvare il documento, utilizziamo il metodo sendRtf(‘HelloWord’), che ci permette di scaricare il file col nome HelloWord.rtf