public static void Convert(ConversionPostedData postedData, Common.Config.GlobalConfiguration globalConfiguration, List <string> supportedImageFormats)
        {
            string destinationType  = postedData.GetDestinationType();
            string documentGuid     = postedData.guid;
            string filesDirectory   = globalConfiguration.GetConversionConfiguration().GetResultDirectory();
            string outputFile       = Path.Combine(filesDirectory, Path.GetFileNameWithoutExtension(documentGuid) + "." + postedData.GetDestinationType());
            string destDocumentType = supportedImageFormats.Contains(Path.GetExtension("." + destinationType)) ? "image" : postedData.GetDestDocumentType();
            string fileNameWoExt    = Path.GetFileNameWithoutExtension(postedData.guid);

            using (Converter converter = new Converter(postedData.guid))
            {
                var convertOptions = GetConvertOptions(destDocumentType, destinationType);

                var documentInfo = converter.GetDocumentInfo();

                if (convertOptions is ImageConvertOptions)
                {
                    string outputFileTemplate = Path.Combine(filesDirectory, fileNameWoExt + "-{0}." + destinationType);

                    if ((documentInfo is SpreadsheetDocumentInfo && ((SpreadsheetDocumentInfo)documentInfo).WorksheetsCount == 1) ||
                        documentInfo.PagesCount == 1)
                    {
                        outputFileTemplate = Path.Combine(filesDirectory, fileNameWoExt + "." + destinationType);
                    }

                    SavePageStream getPageStream = page => new FileStream(string.Format(outputFileTemplate, page), FileMode.Create);
                    converter.Convert(getPageStream, convertOptions);
                }
                else
                {
                    converter.Convert(outputFile, convertOptions);
                }
            }
        }
示例#2
0
 public HttpResponseMessage Convert(ConversionPostedData postedData)
 {
     try
     {
         ConversionManager.Convert(postedData, GlobalConfiguration, SupportedImageFormats);
         return(Request.CreateResponse(HttpStatusCode.OK));
     }
     catch (System.Exception ex)
     {
         return(Request.CreateResponse(HttpStatusCode.InternalServerError, Resources.GenerateException(ex)));
     }
 }