예제 #1
0
        private void DoUofToOoxTransform(string inputFile, string outputFile, string resourceDir)
        {
            guid = Guid.NewGuid();
            if (!IsUof(inputFile))
            {
                throw new NotAnUofDocumentException(inputFile + " 不是UOF文件");
            }

            LinkedList <IProcessor> .Enumerator enumer = uof2ooxPreProcessors.GetEnumerator();
            string outputPath = Path.GetTempPath().ToString() + guid.ToString();
            string output     = outputPath + Path.DirectorySeparatorChar + "tmpDoc";

            if (!Directory.Exists(outputPath))
            {
                Directory.CreateDirectory(outputPath);
            }
            //  string input = EIPicturePre(inputFile, outputPath);

            ZipReader archive = ZipFactory.OpenArchive(inputFile);

            archive.ExtractUOFDocument(inputFile, outputPath);

            string input = inputFile;

            int i = 0;

            while (enumer.MoveNext())
            {
                i++;
                enumer.Current.OriginalFilename = inputFile;
                enumer.Current.InputFilename    = input;
                enumer.Current.OutputFilename   = output + i + ".xml";
                enumer.Current.transform();
                input = enumer.Current.OutputFilename;
            }

            DoUofToOoxMainTransform(enumer.Current.OutputFilename, outputFile, resourceDir);
            //  Directory.Delete(outputPath, true);
        }