Hi all,

i found an “easy way” to manipulate/create ODF. In my case AODL throws 
exception because it don’t understand .ott:(

This unzip a ott, assign data to user-defined fields and zip to an odt


        private void InitDocument(string template, string fileName, 
IList<IModel> headers, ListStore table, IList<IModel> footers)

        {

            const string contentFile = "content.xml";

            var path = Path.GetTempPath() + fileName;

            if (File.Exists(path))

                File.Delete(path);

            var tmpPath = Path.GetDirectoryName(path) + 
Path.DirectorySeparatorChar + Guid.NewGuid();

            var dirInfo = Directory.CreateDirectory(tmpPath);

            ZipFile.ExtractToDirectory(template, dirInfo.FullName);

            var xmlDoc = XDocument.Load(dirInfo.FullName + 
Path.DirectorySeparatorChar + contentFile);

            var elements = xmlDoc.Descendants(XName.Get("user-field-decl", 
"urn:oasis:names:tc:opendocument:xmlns:text:1.0"));

            foreach (var element in elements)

            {

               var attribute = element.Attributes().First(a => a.Name == 
"text:name");

                if (attribute != null)

                    ApplyData(attribute.Value, headers, table, footers);

            }

            xmlDoc.Save(dirInfo.FullName + Path.DirectorySeparatorChar + 
contentFile);

            ZipFile.CreateFromDirectory(dirInfo.FullName, path);

            dirInfo.Delete(true);

            if (Directory.Exists(dirInfo.FullName))

                Directory.Delete(dirInfo.FullName);

        }

 

 

Von: Mono-list [mailto:[email protected]] Im Auftrag von 
Wolfgang Mauer
Gesendet: Mittwoch, 2. November 2016 14:16
An: 'Marco Ridoni' <[email protected]>; [email protected]
Betreff: Re: [Mono-list] C# Office Ubuntu/Windows

 

Ok, but if the user choose „saveas“ ? :)

 

Von: Mono-list [mailto:[email protected]] Im Auftrag von 
Marco Ridoni
Gesendet: Mittwoch, 2. November 2016 13:41
An:  <mailto:[email protected]> [email protected]
Betreff: Re: [Mono-list] C# Office Ubuntu/Windows

 

 

2016-11-02 13:37 GMT+01:00 Wolfgang Mauer <[email protected] 
<mailto:[email protected]> >:

close-listener.


AODL is just a library to generate documents, you can generate it into a 
temporary directory, read it back into a database and delete the 
previously-generated copy.

 

m.

_______________________________________________
Mono-list maillist  -  [email protected]
http://lists.dot.net/mailman/listinfo/mono-list

Reply via email to