Com\’è dura la professione!

OpenDocument: il dettaglio

Contenuti del formato Testo

Gli stili

OpenDocument definisce e supporta questi stili

  • Common styles
    Sono gli stili che si trovano nella barra di formattazione. Common significa che questo e’ ciò che un utente identifica come ‘stile’ in un word processor.
  • Automatic styles
    Proprietà di formattazione assegnate ai vari oggetti, come i paragrafi, generati automaticamente dal programma quando ad esempio si preme il pulsante ‘grassetto’.
  • Master styles
    Contengono non solo lo stile ma anche contenuto grafico aggiuntivo come, ad esempio, lo stile delle pagine master che possono avere sfondi e intestazioni. Il contenuto non modifica comunque il contenuto del documento.

Gli stili rappresentano informazioni di formattazione indipendente dal dispositivo. Al contrario i CSS sono orientati al dispositivo.

<style:style style:name="Caption" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
        <style:paragraph-properties fo:margin-top="0.212cm" fo:margin-bottom="0.212cm" text:number-lines="false" text:line-number="0"/>
        <style:text-properties fo:font-size="12pt" fo:font-style="italic" style:font-size-asian="12pt" style:font-style-asian="italic" style:font-name-complex="Lucidasans1" style:font-size-complex="12pt" style:font-style-complex="italic"/>
  </style:style>

Stili in dettaglio

Gli stili sono di diverso tipo: paragrafo, caratteri, pagina, liste, frame. Tralasciando l’ovvietà del paragrafo, lo stile applicato al testo e’ l’analogo del tag SPAN dei CSS. Uno stile può ereditare da un altro stile e ridefinire solo alcune caratteristiche per semplificare la gestione.

Gli stili ‘comuni’ sono contenuti in un elemento <office:styles>, quelli automatici in <office:automatic-styles>, quelli master in <office:master-styles>.

La dichiarazione di uno stile nel documento avviene in sytles.xml o contents.xml

  • Si inserisce nell’elemento <office:font-face-decls> una dichiarazione di tipo di carattere <style:font-face>. Questa operazione definisce un tipo di carattere.

  • Si crea un elemento <style:style> nell’ elemento <office:automatic-styles> oppure <office:styles>, a seconda del tipo di stile, in cui si fa riferimento al font dichiarato precedentemente

Ci si può riferire allo stile con un elemento <text:style-name>

<office:scripts/>
 <office:font-face-decls>
  <style:font-face style:name="URW Chancery L" svg:font-family="'URW Chancery L'" 
		style:font-pitch="variable"/>
 </office:font-face-decls>
 <office:automatic-styles>
  <style:style style:name="P1" style:family="paragraph" style:parent-style-name="Standard">
   <style:text-properties style:font-name="URW Chancery L" fo:font-weight="bold" 
		style:font-weight-asian="bold" style:font-weight-complex="bold"/>
  </style:style>
 </office:automatic-styles>

Per modificare il formato dei caratteri si inseriscono elementi <style:text-properties> in un elemento <style:style> con attributi derivanti da XSL-FO.

Da XSL-FO abbiamo una serie di proprietà con cui definire i paragrafi ed i caratteri, anche condizioni con cui valutare l’applicabilità dello stile.

Possiamo specificare colore, font dimensione interlinea, spaziature dei caratteri ed ogni cosa che è rappresentata nelle maschere di caratteristiche.

Esempio:

<style:style style:name="lb" style:family="text" style:parent-style-name="Drop_20_Caps">
   <style:text-properties fo:text-transform="uppercase" style:text-line-through-style="solid"
	style:font-name="Trebuchet MS" fo:font-size="13pt" fo:letter-spacing="-0.007cm" style:text-underline-style="solid"
      style:text-underline-width="auto" style:text-underline-color="#000080" style:letter-kerning="true"
      fo:background-color="transparent"/>

Per assegnare uno stile ad un blocco di testo inserito in un paragrafo si utilizza un elemento <text:span>. Se si cambia il formato senza utilizzare uno stile, viene creato uno stile ‘automatico’.

<office:automatic-styles>
        <style:style style:name="T1" style:family="text">
                <style:text-properties style:font-name="Impact" fo:font-style="italic" fo:font-weight="bold"/>
        </style:style>
</office:automatic-styles>
<office:body>
        <office:text>
                <text:p text:style-name="Standard">Prova <text:span text:style-name="T1">prova</text:span> prova</text:p>
  </office:text>

E’ possibile anche definire le posizioni dei tabulatori

<style:style style:name=“P1” style:family=“paragraph” style:parent-style-name=“Standard”>

   <style:paragraph-properties style:shadow="none">
    <style:tab-stops>
     <style:tab-stop style:position="0cm"/>
     <style:tab-stop style:position="1cm" style:type="center"/>
     <style:tab-stop style:position="2cm" style:type="center" style:leader-style="solid" 
		style:leader-text="_"/>
    </style:tab-stops>
   </style:paragraph-properties>
   <style:text-properties style:font-name="URW Chancery L" fo:font-weight="bold" 
		style:font-weight-asian="bold" style:font-weight-complex="bold"/>
  </style:style>

Gli stili contenuti nel file styles.xml sono quelli ‘istituzionali’, cioè quelli cui si può attribuire un nome. Ogni altro stile viene salvato assieme al testo del documento.

Pagine

Gli stili delle pagine sono definiti in styles.xml. Posso definire anche il tipo (destra, sinistra, mirrored che automaticamente riflette i margini quando passo da destra a sinistra).

Attributi

  • Dimensioni (fo:page-width, fo:page-length)
  • Formato dei numeri
  • Orientamento (style:print-orientation)portrait/landscape.
  • Margini (fo:margin-top, fo:margin-bottom, fo:margin-left, fo:margin-right)
  • Bordi e relativi spessori
  • Sfondi
  • Colonne
  • Registri (colonne)
  • Centraggio delle tabelle
  • Spazio delle note
  • Direzione di scrittura (style:writing-mode) lr-tb, rl-tb, tb-rl, tb-lr, lr, rl, tb

Per ogni tipo di pagina si dichiara un elemento <style:page-layout> contenuto in <office:automatic-styles>. Nel testo faccio riferimento agli stili dichiarando uno stile con attributo style:master-page-name e lo assegno al testo <text:p text:style-name=”stile”>. In questo modo inserisco un salto pagina con le caratteristiche descritte nella pagina master

Riassumendo:

  • nello stile:

<style:style style:name=“P1” style:family=“paragraph” style:parent-style-name=“Standard” style:master-page-name=“Envelope”>

   <style:paragraph-properties style:page-number="2"/>
  </style:style>
  • nel testo:
<text:p text:style-name="P1"/>

Il testo

Paradossalmente l’elemento più importante ha la rappresentazione più semplice. I dati in content.xml sono scritti in Unicode codificato UTF-8. Il testo è inserito in paragrafi e contenuto negli elementi <text:p>. Singole parti di testo formattate diversamente sono inserite in elementi <text:span> in modo simile a quanto avviene nei CSS.

Gli spazi bianchi aggiuntivi vengono inseriti in tag

  • spazi <text:s>
  • tab <text:tab>
  • a capo <text:line-break/>

Titoli e Intestazioni

Sono elementi a livello di paragrafo ed hanno un attributo heading da cui si può rilevare il livello: <text:h text-outline-level=”1”>

<text:h text:style-name="Heading_20_1" text:outline-level="1">Uno</text:h>
<text:h text:style-name="Heading_20_2" text:outline-level="2">due</text:h>
<text:h text:style-name="Heading_20_3" text:outline-level="3">tre</text:h>

Le intestazioni di pagina vengono inserite nello stile della pagina, in styles.xml

<style:master-page style:name="Standard" style:page-layout-name="pm1">
   <style:header>
    <text:p text:style-name="Header">Intestazione di pagina</text:p>
   </style:header>
  </style:master-page>

Hyperlinks

Elemento <text:a> in cui possono essere definiti stile, target, destinazione ma anche una tabella di gestori di evento che possono processare il click sul link per collegare il link ad eventi nelle macro. (Il caso tipico sono le presentazioni).

<text:p text:style-name="Standard">Prima
<text:a xlink:type="simple" xlink:href="http://www.prova.com/">
	questo e un link
</text:a>
dopo</text:p>

Segnalibri

Marcano posizioni o range di testo hanno un attributo name

Posizione singola <text:bookmark>

Range <text:bookmark-start><text:bookmark-end>. Possono essere utilizzati per marcare testo da sostituire via programma.

Liste ed elenchi

Le liste sono definite con un costrutto <text:list> che può avere un attributo text:style-name=”nome stile”. Ogni item viene definito da <text:list-item>. Gli stili veri e propri sono contenuti sempre in content.xml in un elemento <text:list-style> .

<text:list text:style-name=“L1”>

        <text:list-item>
                <text:p text:style-name="P2">item 1</text:p>
        </text:list-item>
        <text:list-item>
                <text:p text:style-name="P2">item 2</text:p>
        </text:list-item>
        <text:list-item>
                <text:p text:style-name="P2">item 3</text:p>
        </text:list-item>
   </text:list>="P1"/>

Tabelle

Righe, colonne e celle

Le tabelle sono rappresentate come in html, se una cella copre più colonne si utilizza un attributo (text:number-columns-spanned), se copre più righe si rappresenta come una sottotabella innestata.

Esempi:

Cella 1 cella2

 

<table:table table:name=“TabellaEs1” table:style-name=“TabellaEs1”>

        <table:table-column table:style-name="TabellaEs1.A" table:number-columns-repeated="2"/>
        <table:table-row>
                <table:table-cell table:style-name="TabellaEs1.A1" office:value-type="string">
                        <text:p text:style-name="Table_20_Contents">Cella 1</text:p>
                </table:table-cell>
                <table:table-cell table:style-name="TabellaEs1.B1" office:value-type="string">
                        <text:p text:style-name="Table_20_Contents">cella2</text:p>
                </table:table-cell>
        </table:table-row>
   </table:table>

 

esempio 2

Cella 1.1 Cella 1.2
Cella 2.1

Questo è il sorgente

<table:table table:name="TabellaEs2" table:style-name="TabellaEs2">
        <table:table-column table:style-name="TabellaEs2.A" table:number-columns-repeated="2"/>
        <table:table-row>
                <table:table-cell>
                        <table:table table:is-sub-table="true">
                                <table:table-column table:style-name="TabellaEs2.A"/>
                                <table:table-row>
                                        <table:table-cell table:style-name="TabellaEs2.A1.1.1" office:value-type="string">
                                                <text:p text:style-name="Table_20_Contents">Cella 1.1</text:p>
                                        </table:table-cell>
                                </table:table-row>
                                <table:table-row>
                                        <table:table-cell table:style-name="TabellaEs2.A1.1.2" office:value-type="string">
                                                <text:p text:style-name="Table_20_Contents">Cella 2.1</text:p>
                                        </table:table-cell>
                                </table:table-row>
                        </table:table>
                </table:table-cell>
                <table:table-cell table:style-name="TabellaEs2.B1" office:value-type="string">
                        <text:p text:style-name="Table_20_Contents">Cella 1.2</text:p>
                </table:table-cell>
        </table:table-row>
   </table:table>

 

 

Campi

Contengono valori dinamici, ideali per creare documenti da template. Alcuni sono predefiniti, altri sono gestiti dall’utente. Sono costituiti da un singolo elemento. Per i campi stringa se la rappresentazione differisce dal valore sono salvate entrambe, altrimenti solo la presentazione.

I campi fissi non cambiano il loro valore dopo che è stato attribuito.

Campi predefiniti

Informazioni del documento

Riportano quanto presente nel file meta.xml (autore,data,titolo,ecc.).

In content.xml In meta.xml

Data e tempo

Elemento <text:date> con un attributo text:date-value in formato ISO8601. Con l’attributo fixed la data resta fissa, altrimenti segna ora.

Numerazione

La pagina attuale è contrassegnata da <text:page-number>, il numero totale da <text:page-count>. Si può specificare il testo ‘continua’ da apporre alle pagine successive alla prima. Vi sono altre numerazioni, quali le didascalie di tabelle, immagini, ecc. Servono anche per l’inserimento degli oggetti nell’indice.

Variabili

Variabili semplici

Contengono testo che viene sostituito, possono essere valorizzate attraverso campi di input. SI possono utilizzare per header e footer per contenere il nome della ditta. Possono cambiare il loro contenuto nel corso del documento.

Si dichiarano con <text:variable-decl> e hanno l’attributo text:name. Si valorizzano con l’elemento <text:variable-set> con l’attributo text:formula nel caso di formule oppure valorizzandone il contenuto. L’elemento <text:variable-get> permette di inserire il valore nel testo. Con un elemento <text:variable-input> forzo il programma a chiederne il valore all’utente.

<text:p text:style-name="Standard">
        <text:user-field-get text:name="Cliente">Il cliente</text:user-field-get>
</text:p>

Campi utente

Mantengono il valore per tutto il documento.


Note

Le note sono inserire nel testo nella posizione cui si riferiscono e consistono di un elemento <text:note>. Sono visualizzate come specificato dall’elemento <text:notes-configuration> che si trova nella sezione <office:styles>.

Il primo figlio contiene la citazione, il secondo il corpo della nota. Vi sono due tipi di note: quelle a piè pagina e quelle finali. E’ possibile attribuire una etichetta alle note o lasciare che siano numerate automaticamente.

Immagini

Le immagini vengono inserite come file nella directory Pictures con un nome di file interno. Sono riconosciuti i tipi principali di immagini (JPEG,PNG,GIF).

Sono inserite nel corpo del documento in un elemento <draw:image> in un <draw:frame> con un nome interno . Hanno l’indicazione dell’allineamento con l’attributo text:anchor-type e fanno riferimento al file mediante xlink:href=path del file contenuto nella cartella Pictures . Nella sezione <office:automatic-styles> viene inserito uno stile il cui nome corrisponde all’immagine e definisce la trasformazione (contrasto,gamma ecc )

esempio:

<office:automatic-styles>
        <style:style style:name="fr1" style:family="graphic" style:parent-style-name="Graphics">
                <style:graphic-properties style:horizontal-pos="center" style:horizontal-rel="paragraph" style:mirror="none"
                          fo:clip="rect(0cm 0cm 0cm 0cm)" draw:luminance="0%" draw:contrast="0%" draw:red="0%" draw:green="0%"
                          draw:blue="0%" draw:gamma="100%" draw:color-inversion="false" draw:image-opacity="100%" 
					draw:color-mode="standard"/>
        </style:style>
</office:automatic-styles>
<draw:frame draw:style-name="fr1" draw:name="graphics1" text:anchor-type="paragraph"
                        svg:width="11.289cm" svg:height="8.467cm" draw:z-index="0">
<draw:image xlink:href="Pictures/1000000000000140000000F04BF075D1.jpg" xlink:type="simple"
                        xlink:show="embed" xlink:actuate="onLoad"/>

Riferimenti

Torna alla Pagina Principale

PAGINA 1 << 

Per scaricare una versione completa in PDF utilizzate questo link.

2 commenti »

  1. Una sintesi introduttiva PERFATTTA!!! Mi ha aiutato moltissimo al mio primo approccio XML openDocument

    Commento di sandra — 22 marzo 2007 @ 15:51 | Rispondi

  2. Felice che sia servita a qualcuno.

    Commento di lbell — 29 marzo 2007 @ 18:54 | Rispondi


RSS feed for comments on this post. TrackBack URI

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Blog su WordPress.com.

%d blogger cliccano Mi Piace per questo: