La Formattazione Oggetto (FO), in inglese Formatting Objects, è un linguaggio di markup basato su XML utilizzato per descrivere la formattazione di documenti. È un componente chiave della famiglia di standard XSL. In particolare, FO è strettamente legato a XSL-FO, che è la sua implementazione specifica.
Scopo:
L'obiettivo principale di FO è separare il contenuto di un documento dalla sua presentazione. Questo permette di generare lo stesso contenuto in formati diversi (ad esempio, PDF, stampa, schermo) applicando diversi fogli di stile FO. In questo modo, si mantiene una singola fonte di verità per il contenuto e si delega la formattazione ad un altro livello, facilitando la manutenzione e la riusabilità.
Come funziona:
Un file FO descrive l'aspetto visivo del documento attraverso una serie di oggetti di formattazione. Questi oggetti specificano aspetti come:
Un processore XSL-FO (ad esempio, Apache FOP, Antenna House Formatter) prende in input un file FO e lo trasforma in un formato di output specifico (ad esempio, PDF, PS, SVG).
Esempio semplificato:
Anche se FO è un linguaggio complesso, ecco un esempio molto semplificato per illustrarne il concetto:
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="simpleA4"
page-height="29.7cm" page-width="21cm"
margin-top="2cm" margin-bottom="2cm"
margin-left="2cm" margin-right="2cm"/>
</fo:layout-master-set>
<fo:page-sequence master-reference="simpleA4">
<fo:flow flow-name="xsl-region-body">
<fo:block font-size="12pt">Ciao mondo!</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
Questo codice definisce un layout di pagina A4 con margini di 2cm e inserisce un blocco di testo "Ciao mondo!" con un font di 12 punti.
Vantaggi:
Svantaggi:
In sintesi: FO è un potente strumento per la formattazione di documenti, ma la sua complessità lo rende più adatto a progetti che richiedono un controllo preciso sulla formattazione e la separazione del contenuto dalla presentazione. È spesso usato in combinazione con XSLT per trasformare dati XML in documenti formattati.
Ne Demek sitesindeki bilgiler kullanıcılar vasıtasıyla veya otomatik oluşturulmuştur. Buradaki bilgilerin doğru olduğu garanti edilmez. Düzeltilmesi gereken bilgi olduğunu düşünüyorsanız bizimle iletişime geçiniz. Her türlü görüş, destek ve önerileriniz için iletisim@nedemek.page