Example #1
0
        private void ConvertFolder(IReaderContract reader, IWriterContract writer, string inputParam, string outputParam)
        {
            List <byte[]> imageBytes = new List <byte[]>();
            List <string> imageNames = new List <string>();

            if (LogHelper.CanDebug())
            {
                LogHelper.Begin("BookFileConverter.ConvertFolder");
            }
            try
            {
                string msg = CultureManager.Instance.GetLocalization("ByCode", "Convert.Converting", "Converting {0}...");
                Progress(string.Format(msg, inputParam));

                string outputFolder, outputFile;

                // one single output folder or same as input
                if (!string.IsNullOrEmpty(Settings.DestinationPath) && Directory.Exists(Settings.DestinationPath))
                {
                    outputFolder = Settings.DestinationPath;
                }
                else
                {
                    outputFolder = outputParam;
                }

                outputFile = inputParam.Split(new char[] { '\\' }).Last();

                bool result = true;

                //only case we need folder input in memory, else we write directly
                if (Settings.OutputType.Type == DocumentType.XPS)
                {
                    result = reader.Read(inputParam, null, imageBytes, imageNames, Settings, Progress);
                }

                if (result)
                {
                    writer.Write(outputFile, inputParam, outputFolder, imageBytes, imageNames, Settings, Progress);
                }
            }
            catch (Exception err)
            {
                Settings.Result = false;
                LogHelper.Manage("BookFileConverter.ConvertFolder", err);
            }
            finally
            {
                if (imageBytes != null)
                {
                    imageBytes.Clear();
                }
                if (imageNames != null)
                {
                    imageNames.Clear();
                }

                LogHelper.End("BookFileConverter.ConvertFolder");
            }
        }
Example #2
0
        /// <summary>
        /// convert one file to an output folder regarding the settings mode
        /// </summary>
        /// <param name="inputfile"></param>
        /// <param name="outputFolder"></param>
        private void ConvertFile(IReaderContract reader, IWriterContract writer, string inputFile, string outputParam)
        {
            List <byte[]> imageBytes = new List <byte[]>();
            List <string> imageNames = new List <string>();

            try
            {
                string msg = CultureManager.Instance.GetLocalization("ByCode", "Convert.Converting", "Converting {0}...");
                Progress(string.Format(msg, inputFile));

                string outputFolder, tmpFolderForReader = null;

                // one single output folder or same as input
                if (!string.IsNullOrEmpty(Settings.DestinationPath) && Directory.Exists(Settings.DestinationPath))
                {
                    outputFolder = Settings.DestinationPath;
                }
                else
                {
                    outputFolder = outputParam;
                }

                // particular case to win time
                if (Settings.InputType.Type == DocumentType.ZIPBased || Settings.InputType.Type == DocumentType.RARBased)
                {
                    if (Settings.OutputType.Type == DocumentType.ImageFile)                     //direct in ouput
                    {
                        tmpFolderForReader = outputFolder;
                    }

                    if (Settings.OutputType.Type == DocumentType.ZIPBased)                     //use temp folder for compress
                    {
                        tmpFolderForReader = Path.Combine(DirectoryHelper.TempPath, Path.GetFileNameWithoutExtension(inputFile));
                    }
                }

                if (reader.Read(inputFile, tmpFolderForReader, imageBytes, imageNames, Settings, Progress))
                {
                    writer.Write(Path.GetFileNameWithoutExtension(inputFile), null, outputFolder, imageBytes, imageNames, Settings, Progress);
                }
            }
            catch (Exception error)
            {
                LogHelper.Manage("BookFileConverter:ConvertFile", error);
                Settings.Result = false;
            }
            finally
            {
                if (imageBytes != null)
                {
                    imageBytes.Clear();
                }
                if (imageNames != null)
                {
                    imageNames.Clear();
                }
            }
        }