예제 #1
0
        /// <summary>
        /// save the content of the chart
        /// </summary>
        /// <param name="packageWriter"></param>
        public void SaveTo(IPackageWriter packageWriter)
        {
            AdddDataTableToChart();
            CreateContentBody();
            ChartExporter export = new ChartExporter();

            export.Export(Document, packageWriter);
        }
예제 #2
0
 private static Yield Create_Helper(Plug dekiApi, XDoc exports, int relto, string reltopath, IPackageWriter packager, Result<ExportManager> result) {
     Result<Exporter> exporterResult;
     if(string.IsNullOrEmpty(reltopath)) {
         yield return exporterResult = Exporter.CreateAsync(dekiApi, exports, relto, new Result<Exporter>());
     } else {
         yield return exporterResult = Exporter.CreateAsync(dekiApi, exports, reltopath, new Result<Exporter>());
     }
     result.Return(new ExportManager(exporterResult.Value, packager));
     yield break;
 }
예제 #3
0
 /// <summary>
 /// Writes the single files.
 /// </summary>
 /// <param name="document">The document.</param>
 /// <param name="packageWriter"></param>
 /// <param name="filename">The filename.</param>
 private static void WriteSingleFiles(XNode document, IPackageWriter packageWriter, string filename)
 {
     //document.Save(filename);
     using (TextWriter textWriter = new StreamWriter(packageWriter.Open(filename), Encoding.UTF8))
     {
         using (XmlWriter xmlWriter = XmlWriter.Create(textWriter, new XmlWriterSettings {
             Indent = false
         }))
         {
             document.WriteTo(xmlWriter);
         }
     }
 }
예제 #4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="OpenDocumentTextExporter"/> class.
        /// </summary>
        public OpenDocumentTextExporter(IPackageWriter packageWriter)
        {
            _packageWriter = packageWriter;
            _exportError   = new List <AODLWarning>();

            _supportedExtensions = new List <DocumentSupportInfo>
            {
                new DocumentSupportInfo(".odt", DocumentTypes.TextDocument),
                new DocumentSupportInfo(".ods", DocumentTypes.SpreadsheetDocument)
            };

            _author      = "Lars Behrmann, [email protected]";
            _infoUrl     = "http://AODL.OpenDocument4all.com";
            _description = "This the standard OpenDocument format exporter of the OpenDocument library AODL.";
        }
예제 #5
0
        /// <summary>
        /// Exports the specified document.
        /// </summary>
        /// <param name="document">The document.</param>
        /// <param name="packageWriter">The packageWriter.</param>
        public void Export(IDocument document, IPackageWriter packageWriter)
        {
            _document = document;
            //PrepareDirectory(dir);

            foreach (EmbedObject eo in document.EmbedObjects)
            {
                if (eo.ObjectType.Equals("chart"))
                {
                    WriteSingleFiles(((Chart)eo).ChartStyles.Styles, packageWriter,
                                     Path.Combine(eo.ObjectName, ChartStyles.FileName));
                    WriteSingleFiles(((Chart)eo).ChartDoc, packageWriter, Path.Combine(eo.ObjectName, "content.xml"));
                    WriteFileEntry(eo.ObjectName);
                }
            }
        }
예제 #6
0
        protected internal virtual void TransformInternal(bool cleanup, string destination, IEnumerable <string> fileToTransformPatterns, IPackageExtractor packageExtractor, IPackageWriter packageWriter, IEnumerable <string> pathToDeletePatterns, string source, IEnumerable <string> transformationNames)
        {
            if (packageExtractor == null)
            {
                throw new ArgumentNullException(nameof(packageExtractor));
            }

            if (packageWriter == null)
            {
                throw new ArgumentNullException(nameof(packageWriter));
            }

            var temporaryDirectoryPath = this.FileSystem.Path.Combine(this.FileSystem.Path.GetTempPath(), Guid.NewGuid().ToString());

            try
            {
                var temporaryOriginalDirectoryPath = this.FileSystem.Path.Combine(temporaryDirectoryPath, "Original");

                packageExtractor.Extract(temporaryOriginalDirectoryPath, source);

                var temporaryTransformDirectoryPath = this.FileSystem.Path.Combine(temporaryDirectoryPath, "Transform");

                this.FileSystem.CopyDirectory(temporaryTransformDirectoryPath, temporaryOriginalDirectoryPath);

                this.Transform(temporaryTransformDirectoryPath, fileToTransformPatterns, transformationNames);

                this.DeleteItems(temporaryTransformDirectoryPath, pathToDeletePatterns);

                packageWriter.Write(destination, temporaryTransformDirectoryPath);
            }
            finally
            {
                if (cleanup && this.FileSystem.Directory.Exists(temporaryDirectoryPath))
                {
                    this.FileSystem.Directory.Delete(temporaryDirectoryPath, true);
                }
            }
        }
예제 #7
0
 //--- Constructors ---
 private ExportManager(Exporter exporter, IPackageWriter packager) {
     MaxRetries = DEFAULT_RETRIES;
     _exporter = exporter;
     _packager = packager;
 }
예제 #8
0
 public static Result<ExportManager> CreateAsync(Plug dekiApi, XDoc exports, string reltopath, IPackageWriter packager, Result<ExportManager> result) {
     return Coroutine.Invoke(Create_Helper, dekiApi, exports, 0, reltopath, packager, result);
 }
예제 #9
0
        private static Yield Create_Helper(Plug dekiApi, XDoc exports, int relto, string reltopath, IPackageWriter packager, Result <ExportManager> result)
        {
            Result <Exporter> exporterResult;

            if (string.IsNullOrEmpty(reltopath))
            {
                yield return(exporterResult = Exporter.CreateAsync(dekiApi, exports, relto, new Result <Exporter>()));
            }
            else
            {
                yield return(exporterResult = Exporter.CreateAsync(dekiApi, exports, reltopath, new Result <Exporter>()));
            }
            result.Return(new ExportManager(exporterResult.Value, packager));
            yield break;
        }
예제 #10
0
 public static Result <ExportManager> CreateAsync(Plug dekiApi, XDoc exports, string reltopath, IPackageWriter packager, Result <ExportManager> result)
 {
     return(Coroutine.Invoke(Create_Helper, dekiApi, exports, 0, reltopath, packager, result));
 }
예제 #11
0
 //--- Constructors ---
 private ExportManager(Exporter exporter, IPackageWriter packager)
 {
     MaxRetries = DEFAULT_RETRIES;
     _exporter  = exporter;
     _packager  = packager;
 }