Come creare un documento .odt formattato

di il
5 risposte

Come creare un documento .odt formattato

Buongiorno,

con Java riesco a creare un documento .ods tramite la classe
org.jopendocument.dom.spreadsheet.SpreadSheet
ma non riesco a formattare il contenuto delle righe e celle perché devo popolarlo con un DefaultTableModel.

Inoltre non riesco a trovare il modo per creare un documento in formato .odt
nel quale vorrei ovviamente formattare il testo come si fa editando un documento con Libreoffice Write, ovvero impostare vari tipi di font, dimensioni dei caratteri, il bold etc.

Qualche anima pia riesce a darmi una mano?

5 Risposte

  • Re: Come creare un documento .odt formattato

    ZioCrick ha scritto:


    con Java riesco a creare un documento .ods tramite la classe
    org.jopendocument.dom.spreadsheet.SpreadSheet
    ma non riesco a formattare il contenuto delle righe e celle perché devo popolarlo con un DefaultTableModel.
    Sì mi ricordo, ne avevamo già parlato qui dove ti avevo fatto un esempio di "persone" con le righe azzurre/rosa per maschi/femmine.

    Le questioni sono due:

    1) Settare il background è facile (c'è il metodo diretto sul MutableCell !) mentre settare altri attributi non sembra così facile e/o fattibile. Però devo dire che non avevo "indagato" più di tanto all'epoca di quel mio esempio. Guardando il javadoc e soprattutto i sorgenti di jopendocument (se la dipendenza la prendi con Maven, hai i sorgenti "in linea" in un IDE) molto probabilmente si può scoprire qualcos'altro di utile.

    2) Se parti con un *TableModel (qualunque implementazione valida) e lo passi al createEmpty(TableModel t) di SpreadSheet, è chiaro che la libreria non ha alcun "appiglio" per impostare degli attributi, perché il table model espone solo DATI, non certo stili grafici.

    Questo però non significa che non si possa fare (a condizione del 1) sopra, chiaramente). Potresti fare un piccolo strato sw in cui sei tu a scansionare tutti i valori esposti dal table model (ci sono tutte le informazioni per farlo) e poi generare tu le celle nel ods usando, più o meno, quello che ti avevo mostrato io nell'esempio. La cosa da valutare però è: in base a COSA devi applicare gli stili? In generale su tutte le celle? O basandosi sul valore delle celle? O in base ad altri fattori che non sono direttamente collegati al valore di una cella?
    Tutto questo cambia ovviamente il modo di realizzare quello strato sw che dicevo poco fa e che dipende anche da quanto vuoi renderlo elegante e riutilizzabile.

    ZioCrick ha scritto:


    Inoltre non riesco a trovare il modo per creare un documento in formato .odt
    nel quale vorrei ovviamente formattare il testo come si fa editando un documento con Libreoffice Write, ovvero impostare vari tipi di font, dimensioni dei caratteri, il bold etc.
    Se intendi il .odt cioè il documento stile "word" per intenderci, vedo che ci sono degli stralci di codice: https://www.jopendocument.org/doc_fromscratch.htm
    Vedo che si possono inserire heading, paragraph, quindi la possibilità per farlo c'è di certo. Non ho mai fatto personalmente prove su questa parte di jopendocument.
    Se ti serve un esempio, posso provare a metterlo giù nei prossimi giorni.
  • Re: Come creare un documento .odt formattato

    Putroppo cercando di implementare pari pari l'esempio che mi hai linkato, NetBeans mi da errore già nell'editor sulle:
    
    doc.add(heading);
    doc.add(paragraph);
    
    dicendo che c'è una incompatibilità di tipi ovvero che sia l'heading che il paragraph non possono essere convertiti nel ODSingleXMLDocument

    C'è qualcosa che non mi torna.

    Ho fatto anche altre ricerche e ho trovato altri esempi ma ci sono sempre delle parti che non riesco a capire.

    Per esempio ho trovato che usano OdfTextDocument ma non ho capito cosa bisogna importare nel programma o installare per usarlo.

    Continuo a navigare nella nebbia.
  • Re: Come creare un documento .odt formattato

    andbin ha scritto:


    Se ti serve un esempio, posso provare a metterlo giù nei prossimi giorni.
    Aiutoooooo!!!! Un esempio sarebbe veramente utile!

    Oppure se qualcun altro riesce a dirmi come installare il pacchetto odftoolkit.
  • Re: Come creare un documento .odt formattato

    Aggiornamento.

    Ho provato anche con:
    DocumentTemplateFactory documentTemplateFactory = new DocumentTemplateFactory();
    Ma proprio su questa riga, che è la prima mi da un errore strano di cui non riesco a trovare la soluzione.

    Ho provato anche con:
    ODPackage pack = new ODPackage(new File("styles.odt"));
    e mi da errore quando cerco di creare un documento con:
    ODDocument newDoc;
    Poi finalmente sono riuscito a far partire il OdfTextDocument

    Riesco a creare il documento odt con dentro del testo, ma...
    non riesco a capire come mandare a capo i vari paragrafi e come formattarli, ovvero come scegliere il font, la dimensione del font etc.

    Sono quasi disperato!
  • Re: Come creare un documento .odt formattato

    Nessuno riesce proprio a darmi una mano??? 

Devi accedere o registrarti per scrivere nel forum
5 risposte