Documentation/ODF documents generation tools/it

Risorse di sviluppo
Portale Sviluppo di TDF: https://wiki.documentfoundation.org/Development

odfpy

 * https://pypi.org/project/odfpy/
 * https://github.com/eea/odfpy
 * https://github.com/eea/odfpy/wiki
 * mantenuti attivamente (anche se con pochi rilasci)
 * ultima versione: 2020-01-18
 * esempi: https://github.com/eea/odfpy/tree/master/examples
 * non è specificatamente reso disponibile per il merge, ma è possibile farlo, è possibile fornire degli esempi

odpdown

 * https://github.com/thorstenb/odpdown
 * non mantenuto attivamente
 * ultima versione: 2015-03-13

odsgenerator

 * https://github.com/jdum/odsgenerator
 * last release: 2021-05-05

ODF Toolkit
Progetto ufficiale di TDF in collaborazione con Apache


 * https://github.com/tdf/odftoolkit
 * https://odftoolkit.org/index.html
 * mantenuto attivamente
 * ultima versione: 2019-10-06

PHPOffice
Progetto di terze parti, mantenuto attivamente. Lo sviluppatore principale (Franck Lefevre) ha contattato la comunità francese di LibreOffice tramite l'account Twitter al fine di porre domande ad un guru del formato ODF. Gli è stato consigliato di contattare Svante Schubert, che lavora alla CIB.


 * https://github.com/PHPOffice/
 * PhpSpreadSheet
 * PhpWord
 * PhpPresentation, PhpProject & PhpVisio
 * mantenuto attivamente
 * ultima versione: 2019-12-02

OpenTBS
Progetto attivo, plugin per TinyButStrong, ma utilizzabile anche senza. Molto semplice da usare, senza installazione, sono necessari solo i file php che contengono le classi. Si basa su modelli definiti dall'utente.
 * https://www.tinybutstrong.com/opentbs.php?doc
 * mantenuto attivamente
 * ultima versione: 2019-06-17

WebODF
Libreria in JavaScript per visualizzare un documento ODF usando HTML e CSS. Inizialmente sviluppata da KO GmbH.


 * https://github.com/webodf/WebODF https://webodf.org/
 * ultima versione: 2015-09-04
 * ultimo aggiornamento: 2019-02-08

Nexedi cloudooo

 * https://github.com/nexedi/cloudooo
 * https://lab.nexedi.com/nexedi/cloudooo
 * mantenuto attivamente (anche se con pochi rilasci)
 * ultima versione: 2020-01-02
 * non ci sono esempi
 * non è specificatamente reso disponibile per il merge, ma è possibile farlo
 * utilizzato da Libriciel per WEBDELIB (generazione delle delibere di alcuni enti pubblici locali)

NDCODFAPI Project

 * https://github.com/NDCODF/ndcodfapi_service
 * mantenuto attivamente
 * ultima versione: 2019-09-05
 * documentazione: https://github.com/NDCODF/ndcodfapi_service/blob/master/Developer_Guide.md
 * La documentazione non è completamente tradotta in inglese (originale taiwanese - n.d.t.).

LibreOffice
È possibile generare dei documenti ODF usando LibreOffice su di un server. Un processo attivo di LibreOffice è in grado di eseguire una macro, la quale può generare uno o più documenti, ad esempio unendone alcuni. Per eseguire una macro su di un Linux senza GUI digitate:

libreoffice --nofirststartwizard --norestore --headless --invisible "macro:///bibliothèque.module.macro(arg1,arg2...)"

Metodo generico, basato sui pacchetti standard di Python
Il formato standard ODF consiste nella creazione di un file compresso (in ZIP), che contiene diversi dati, la maggior parte in formato XML. Non c'è motivo di scartare l'utilizzo di strumenti generici per la gestione dei file XML. Naturalmente, questo presuppone che la persona che scrive lo script conosca cosa sono l'XML, i suoi alberi, le ramificazioni, i nodi, gli attributi, ecc. Un buon metodo di lavoro è quello di partire da un file di modello, che già contiene le parti fisse del documento da generare, con gli stili corretti ed una struttura adeguata, quindi affiancarlo con la creazione di un piccolo script che recuperi altrove i dati ed usi l'albero DOM del modello per generare un documento elaborato. Perciò si può facilmente separare la forma (nel modello) dal contenuto (i dati trattati).

il pacchetto zipfile
Il pacchetto zipfile di Python permette di scompattare i file .odt, .ods, .odg, ecc. e di accedere al loro contenuto, in particolare al file content.xml che definisce il contenuto del documento, la cartella Pictures che contiene le immagini, ecc.

il pacchetto xml.dom.minidom
Con la classe minidom è semplice aprire il file content.xml ed analizzarne il contenuto in forma e con la sintassi di un albero (DOM). Avendo a disposizione questo albero, potete trovare una determinata diramazione, cancellarla o modificarla, oppure copiarla ed agganciarla ad una diramazione precedente o successiva dell'albero.