Come creare file .odt con C # .NET?
-
03-07-2019 - |
Domanda
Nota: ho trovato questo " Creazione di un documento Word in C #. NET " , ma non è quello che voglio.
Sai come creare un .odt per creare file da C # .NET?
Esiste un componente o wrapper .NET per una libreria OpenOffice.org per farlo?
Soluzione
Dai un'occhiata ad AODL (vedi http://odftoolkit.org/projects/odftoolkit/ pagine / AODL ).
- .NET 1.1 completamente gestito (quindi funziona su MS.Net e Mono)
- supporto per documenti di testo e fogli elettronici
- crea, leggi, modifica, salva documenti
- ...
EDIT per kame: Nuovo link AODL-Wiki
Altri suggerimenti
Puoi visitare il sito degli standard OASIS per informazioni su lo standard ODT. Da quello che ho visto, stanno usando uno standard basato su XML e hanno un XSD disponibile per lo standard del documento, quindi puoi usarlo insieme al tuo codice per creare un file di documento nel formato corretto.
Potresti essere interessato a OpenOffice, UNO CLI Language Binding .
L'ho trovato ieri quando cercavo un modo per creare fogli di calcolo, sembra che la creazione di file di scrittura sia abbastanza simile: http://www.suite101.com/content / creando-un-openoffice-calc-document-with-c-a124112 , non dimenticate di installare prima Open Office SDK da Oracle.
Sfortunatamente non ho trovato un modo per creare un file senza ancora aprirlo.
Il codice sarebbe simile al seguente:
private XComponentContext oStrap = uno.util.Bootstrap.bootstrap();
XMultiServiceFactory oServMan = (XmultiServiceFactory) oStrap.getServiceManager();
XComponentLoader oDesk = (XComponentLoader) oServMan.createInstance("com.sun.star.frame.Desktop");
string url = @"private:factory/swriter";
PropertyValue[] propVals = new PropertyValue[0];
XComponent oDoc = oDesk.loadComponentFromURL(url, "_blank", 0, propVals);
string docText = "File Content\n\r";
((XTextDocument)oDoc).getText().setString(docText);
string fileName = @"C:\FolderName\FileName.odt";
fileName = "file:///" + fileName.Replace(@"\", "/");
((XStorable)oDoc).storeAsURL(fileName, propVals);
((Xcomponent)oDoc).dispose();
I documenti OpenOffice (odt) sono file ZIP. Puoi decomprimerne uno esistente, modificare il file content.xml in base al codice e quindi utilizzare la classe ZipFile da System.IO.Compression per esempio per ottenere nuovamente un file zip.