Beispiel #1
0
        public string Convert(string inputFilePath,
                              string outputFilePath,
                              List <BookMarker> bookMarkers,
                              DynamicBookMarker dynamicData,
                              string signatureKeyPath = null,
                              string posText          = null)
        {
            string inputExt  = GetFileExt(inputFilePath);
            string outputExt = GetFileExt(outputFilePath);

            IFileConverter fileConverter = SatisfiedBy(
                inputExt,
                outputExt);

            if (fileConverter == null)
            {
                throw new InvalidOperationException(string.Format("未找到从{0}转到{1}的文件转换器", inputExt, outputExt));
            }
            fileConverter.Convert(inputFilePath, outputFilePath, bookMarkers, dynamicData);
            FileInfo fi          = new FileInfo(outputFilePath);
            var      resourceKey = fi.Name;
            var      finalPath   = outputFilePath;

            if (signatureKeyPath != null && posText != null)
            {
                string savePath = Path.Combine(fi.DirectoryName, sigPrefix + fi.Name);
                fileConverter.Signature(outputFilePath, savePath, signatureKeyPath, posText);

                fi          = new FileInfo(savePath);
                resourceKey = fi.Name;
                finalPath   = savePath;
            }

            resourceManager.Put(resourceKey, File.Open(resourceKey, FileMode.Open));
            File.Delete(finalPath);
            return(finalPath);
        }