2008-10-21 43 views

Respuesta

3

Echa un vistazo a AODL (mira http://odftoolkit.org/projects/odftoolkit/pages/AODL).

  • totalmente gestionados .NET 1.1 (por lo que se ejecuta en MS.Net y Mono)
  • soporte para documentos de texto y hojas de cálculo
  • crear, leer, editar, guardar documentos
  • ...

EDITAR por kame: Nuevo enlace AODL-Wiki

+0

La versión oficial de AODL para .NET ya no está disponible. Pero hay algunos tenedores que todavía puedes usar. Los mejores tenedores que encontré (con correcciones adicionales de los autores) son [aodl-reloaded] (https://code.google.com/p/aodl-reloaded/) y [aodl] (https://bitbucket.org/ chrisc/aod). Pero sé que todavía hay algunos problemas con las versiones actuales de OpenOffice/LibreOffice. – Alex

+3

@bmotmans su enlace está roto –

2

Puede consultar el OASIS Standards site para obtener información sobre el estándar ODT. Por lo que he visto, están usando un estándar basado en XML y tienen un XSD disponible para el estándar de documento, por lo que podría usarlo junto con su propio código para crear un archivo de documento en el formato adecuado.

0

El código se vería así:

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(); 
-1

documentos de OpenOffice (ODT) son archivos ZIP. Puede descomprimir una existente, modificar el archivo content.xml por código y luego usar la clase ZipFile de System.IO.Compression por ejemplo para obtener un archivo zip nuevamente.