Ejemplo n.º 1
0
        public static AbstractConverter Instance(ConversionDirection transformDirection)
        {
            switch (transformDirection)
            {
            case ConversionDirection.DocxToOdt:
            case ConversionDirection.OdtToDocx:
                if (wordInstance == null)
                {
                    wordInstance = new Wordprocessing.Converter();
                }
                return(wordInstance);

            case ConversionDirection.PptxToOdp:
            case ConversionDirection.OdpToPptx:
                if (presentationInstance == null)
                {
                    presentationInstance = new Sonata.OdfConverter.Presentation.Converter();
                }
                return(presentationInstance);

            case ConversionDirection.XlsxToOds:
            case ConversionDirection.OdsToXlsx:
                if (spreadsheetInstance == null)
                {
                    spreadsheetInstance = new CleverAge.OdfConverter.Spreadsheet.Converter();
                }
                return(spreadsheetInstance);

            default:
                throw new ArgumentException("Invalid transform direction type");
            }
        }
Ejemplo n.º 2
0
 public SingleConverter(AbstractConverter converter, ScriptParser scriptToExecute)
 {
     ScriptToExecute      = scriptToExecute;
     this.converter       = converter;
     this.resourceManager = new ChainResourceManager();
     // Add a default resource managers (for common labels)
     this.resourceManager.Add(new System.Resources.ResourceManager("DaisyAddinLib.resources.Labels",
                                                                   Assembly.GetExecutingAssembly()));
 }
        public void RunAsync(AbstractConverter <TradeRecord> converter)
        {
            var taskConverter = Get(converter);

            if (taskConverter != null)
            {
                taskConverter.Task = Task.Run(() =>
                {
                    taskConverter.Converter.Convert();
                });
            }
        }
Ejemplo n.º 4
0
        /*Function to translate all Bunch of documents  selected by the user*/
        public void MultipleBatchDoc(String outputfilepath, ArrayList subList, Hashtable table)
        {
            try {
                error_MasterSub  = "";
                mergeXmlDoc      = new XmlDocument();
                mergeDocLanguage = new ArrayList();
                AbstractConverter converter = ConverterFactory.Instance(transformDirection);
                converter.ExternalResources    = this.xslPath;
                converter.SkipedPostProcessors = this.skipedPostProcessors;
                converter.DirectTransform      = transformDirection == Direction.DocxToXml;

                for (int i = 0; i < subList.Count; i++)
                {
                    string[] splt = subList[i].ToString().Split('|');
                    docName = splt[0];
                    converter.RemoveMessageListeners();
                    converter.AddFeedbackMessageListener(new AbstractConverter.MessageListener(FeedbackMessageInterceptor));
                    converter.Transform(splt[0], null, null, null, true, "");
                }


                for (int i = 0; i < subList.Count; i++)
                {
                    bool validated = false;
                    validated = ValidateFile(subList[i].ToString());
                    if (validated)
                    {
                        String outputFile = Path.GetDirectoryName(outputfilepath) + "\\" + Path.GetFileNameWithoutExtension(subList[i].ToString()) + ".xml";
                        converter.Transform(subList[i].ToString(), outputFile, table, null, true, "");
                        if (i == 0)
                        {
                            ReplaceData(outputFile);
                            mergeXmlDoc.Load(outputFile);

                            if (File.Exists(outputFile))
                            {
                                File.Delete(outputFile);
                            }
                        }
                        else
                        {
                            ReplaceData(outputFile);
                            MergeXml(outputFile, mergeXmlDoc, subList[i].ToString());

                            if (File.Exists(outputFile))
                            {
                                File.Delete(outputFile);
                            }
                        }
                    }
                }

                SetPageNum(mergeXmlDoc);
                SetImage(mergeXmlDoc);
                SetLanguage(mergeXmlDoc);
                RemoveSubDoc(mergeXmlDoc);
                mergeXmlDoc.Save(outputfilepath);
                ReplaceData(outputfilepath, true);
                CopyDTDToDestinationfolder(Path.GetDirectoryName(outputfilepath));
                CopyMATHToDestinationfolder(Path.GetDirectoryName(outputfilepath));
                ValidateOutputFile(outputfilepath);
                ReplaceData(outputfilepath, false);
                if (File.Exists(Path.GetDirectoryName(outputfilepath) + "\\dtbook-2005-3.dtd"))
                {
                    File.Delete(Path.GetDirectoryName(outputfilepath) + "\\dtbook-2005-3.dtd");
                }
                DeleteMath(Path.GetDirectoryName(outputfilepath));
            } catch (Exception e) {
                error_Exception = "Translation failed." + "\n" + "Validation error found while translating the following documents" + "\n" + " \"" + Path.GetFileName(subList[0].ToString()) + "\"" + "\n" + "Validation error:" + "\n" + e.Message + "\n";
            }
        }
Ejemplo n.º 5
0
        private bool convertFile(string input, string output, ConversionOptions options)
        {
            try
            {
                Stopwatch stopwatch = new Stopwatch();
                stopwatch.Start();
                AbstractConverter converter = ConverterFactory.Instance(options.ConversionDirection);
                converter.ExternalResources     = options.XslPath;
                converter.SkippedPostProcessors = options.SkippedPostProcessors;
                converter.DirectTransform       =
                    options.ConversionDirection == ConversionDirection.OdtToDocx ||
                    options.ConversionDirection == ConversionDirection.OdpToPptx ||
                    options.ConversionDirection == ConversionDirection.OdsToXlsx;
                converter.Packaging = options.Packaging;

                if (options.ShowProgress)
                {
                    converter.RemoveMessageListeners();
                    converter.AddProgressMessageListener(new AbstractConverter.MessageListener(progressMessageInterceptor));
                    this._computeSize = true;
                    this._progress    = 0;
                    this._totalSize   = 0;
                    converter.ComputeSize(input);
                    this._computeSize = false;
                }

                converter.Transform(input, output, options);

                if (options.ShowProgress)
                {
                    // clear progress bar
                    Console.CursorLeft = 0;
                    Console.Write("                                                                                ");
                    Console.CursorLeft = 0;
                }
                stopwatch.Stop();
                this._report.LogInfo(input, "Conversion succeeded");
                this._report.LogInfo(input, "Total conversion time: {0}", stopwatch.Elapsed);
                return(true);
            }
            catch (EncryptedDocumentException)
            {
                this._report.LogWarning(input, "Conversion failed - Input file is encrypted");
                return(false);
            }
            catch (NotAnOdfDocumentException e)
            {
                this._report.LogError(input, "Conversion failed - Input file is not a valid ODF file");
                this._report.LogDebug(input, e.Message + "(" + e.StackTrace + ")");
                return(false);
            }
            catch (NotAnOoxDocumentException e)
            {
                this._report.LogError(input, "Conversion failed - Input file is not a valid Office OpenXML file");
                this._report.LogDebug(input, e.Message + "(" + e.StackTrace + ")");
                return(false);
            }
            catch (ZipException e)
            {
                this._report.LogError(input, "Conversion failed - Input file is not a valid file for conversion or might be password protected");
                this._report.LogDebug(input, e.Message);
                return(false);
            }
            //Pradeep Nemadi - Bug 1747083 Start
            //IOException is added to fix this bug
            catch (IOException e)
            {
                this._report.LogError(input, "Conversion failed - " + e.Message);
                this._report.LogDebug(input, e.Message + "(" + e.StackTrace + ")");
                return(false);
            }
            //Pradeep Nemadi - Bug 1747083 end
            catch (Exception e)
            {
                this._report.LogError(input, "Conversion failed - Error during conversion");
                this._report.LogDebug(input, e.Message + "(" + e.StackTrace + ")");
                return(false);
            }
        }
 /// <summary>
 /// Добавление конвертера в коллекцию без его запуска
 /// </summary>
 /// <param name="converter"></param>
 private void Add(AbstractConverter <TradeRecord> converter)
 {
     _tasksConverters.Add(new TaskConverter <TradeRecord> {
         Converter = converter
     });
 }
 void IConverterManager <TradeRecord> .Add(AbstractConverter <TradeRecord> converter)
 {
     throw new NotImplementedException();
 }
 private TaskConverter <TradeRecord> Get(AbstractConverter <TradeRecord> converter)
 {
     return(_tasksConverters.FirstOrDefault(c => c.Converter == converter));
 }
Ejemplo n.º 9
0
 public SingleConverterUI(AbstractConverter converter, ScriptParser scriptToExecute)
     : base(converter, scriptToExecute)
 {
 }
Ejemplo n.º 10
0
 public SingleConverterUI(AbstractConverter converter)
     : base(converter)
 {
 }
Ejemplo n.º 11
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="converter">An implementation of AbstractConverter</param>
 public SingleConverter(AbstractConverter converter)
     : this(converter, null)
 {
 }