Pergunta

Nota: Eu encontrei este "Criando um documento do Word em C # .NET ", mas não é isso que eu quero.

Você sabe como criar um .odt para criar arquivo a partir de C # .NET?
Existe um componente .NET ou wrapper para uma biblioteca OpenOffice.org para fazer isso?

Foi útil?

Solução

Tenha um olhar em AODL (ver http://odftoolkit.org/projects/odftoolkit/ pages / AODL ).

  • .NET totalmente gerenciado 1.1 (para que ele funcione em MS.Net e Mono)
  • Suporte para documentos de texto e planilhas
  • criar, ler, editar, salvar documentos
  • ...

EDIT por kame: nova ligação AODL-Wiki

Outras dicas

Você pode conferir o OASIS Standards site para obter informações sobre o padrão ODT. Pelo que tenho visto, eles estão usando um baseado em XML padrão e tem um XSD disponível para o padrão do documento, assim que você poderia usar isso em conjunto com o seu próprio código para construir um arquivo de documento no formato adequado.

Você pode estar interessado em OpenOffice, UNO CLI Idioma Encadernação .

Eu encontrei este um ontem ao procurar uma maneira de criar Spreadsheeets, parece que a criação de arquivos escritor é bastante semelhante: http://www.suite101.com/content / criar-an-openoffice-calc-documento-com-c-a124112 , não se esqueça de instalar o Open Office SDK da Oracle pela primeira vez.

Infelizmente eu não encontrei uma maneira de criar um arquivo sem abri-lo ainda.

O código ficaria assim:

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

documentos OpenOffice (ODT) são arquivos zip. Você pode descompactar um já existente, modificar o arquivo content.xml pelo código e, em seguida, usar a classe ZipFile de System.IO.Compression por exemplo, para obter um arquivo zip novamente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top