Примечание: Я нашел это "Creating a Word Doc in C#.NET", но это не то, что я хочу.Как создать файлы .odt с C# .NET?
Знаете ли вы, как создать .odt для создания файла из C# .NET?
Есть ли .NET-компонент или оболочка для библиотеки OpenOffice.org?
Примечание: Я нашел это "Creating a Word Doc in C#.NET", но это не то, что я хочу.Как создать файлы .odt с C# .NET?
Знаете ли вы, как создать .odt для создания файла из C# .NET?
Есть ли .NET-компонент или оболочка для библиотеки OpenOffice.org?
Посмотрите на AODL (см. http://odftoolkit.org/projects/odftoolkit/pages/AODL).
EDIT по Каме: Новая ссылка AODL-Wiki
Информацию о стандарте ODT вы можете найти в OASIS Standards site. Из того, что я видел, они используют стандарт на основе XML и имеют XSD для стандартного документа, поэтому вы можете использовать его вместе со своим собственным кодом для создания файла документа в соответствующем формате.
Возможно, вас заинтересует OpenOffice, UNO CLI Language Binding.
Я нашел это на e вчера, когда вы ищете способ создания Spreadsheet, похоже, что создание файлов сценариев очень похоже: http://www.suite101.com/content/creating-an-openoffice-calc-document-with-c-a124112, не забудьте сначала установить SDK Open Office из Oracle.
К сожалению, я еще не нашел способ создать файл, не открывая его.
код будет выглядеть следующим образом:
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();
OpenOffice документы (а.с.) являются ZIP-файлы. Вы можете разархивировать существующий файл, изменить файл content.xml по коду, а затем использовать класс ZipFile из System.IO.Compression, например, чтобы снова получить zip-файл.
Официальная версия AODL для .NET больше не доступна. Но есть некоторые вилки, которые вы все еще можете использовать. Лучшие вилки, которые я нашел (с дополнительными исправлениями авторов), являются [aodl-reloaded] (https://code.google.com/p/aodl-reloaded/) и [aodl] (https://bitbucket.org/ chrisc/AOD). Но я знаю, что все еще есть проблемы с текущими версиями OpenOffice/LibreOffice. – Alex 2015-01-21 08:09:43