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); }