Aspose.Modules.AsposeDotNetNukeContentExport.View.ExportContent C# (CSharp) Метод

ExportContent() приватный Метод

private ExportContent ( string exportType ) : void
exportType string
Результат void
        private void ExportContent(string exportType)
        {
            string pageSource = PageSourceHiddenField.Value;
            pageSource = "<html>" + pageSource.Replace("#g#", ">").Replace("#l#", "<") + "</html>";

            pageSource = pageSource.Replace("<div class=" + "\"exportButton\"" + ">", "<div class=" + "\"exportButton\"" + "style=" + "\"display: none\"" + ">");

            // To make the relative image paths work, base URL must be included in head section
            pageSource = pageSource.Replace("</head>", string.Format("<base href='{0}'></base></head>", BaseURL));

            // Check for license and apply if exists
            string licenseFile = Server.MapPath("~/App_Data/Aspose.Words.lic");
            if (File.Exists(licenseFile))
            {
                License license = new License();
                license.SetLicense(licenseFile);
            }

            MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(pageSource));
            Document doc = new Document(stream);
            string fileName = GetOutputFileName("." + exportType);

            if (doc.PageCount > 1)
            {
                Directory.CreateDirectory(Server.MapPath("~/App_Data/" + "Zip"));
                if (exportType.Equals("Jpeg") || exportType.Equals("Png"))
                {
                    fileName = GetOutputFileName(exportType).Replace(exportType, "");
                    // Convert the html , get page count and save PNG's in Images folder
                    for (int i = 0; i < doc.PageCount; i++)
                    {
                        if (exportType.Equals("Jpeg"))
                        {
                            ImageSaveOptions saveOptions = new ImageSaveOptions(SaveFormat.Jpeg);
                            saveOptions.PageIndex = i;
                            doc.Save(Server.MapPath("~/App_Data/Zip/") + fileName + "/" + (i + 1).ToString() + "." + exportType, saveOptions);
                        }
                        else
                        {
                            ImageSaveOptions saveOptions = new ImageSaveOptions(SaveFormat.Png);
                            saveOptions.PageIndex = i;
                            doc.Save(Server.MapPath("~/App_Data/Zip/") + fileName + "/" + (i + 1).ToString() + "." + exportType, saveOptions);
                        }
                    }
                    string filepath = Server.MapPath("~/App_Data/Zip/" + fileName + "/");
                    string downloadDirectory = Server.MapPath("~/App_Data/");
                    ZipFile.CreateFromDirectory(filepath, downloadDirectory + fileName + ".zip", CompressionLevel.Optimal, false);
                    Directory.Delete(Server.MapPath("~/App_Data/Zip/" + fileName), true);
                    System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
                    response.ClearContent();
                    response.Clear();
                    response.ContentType = "App_Data/" + exportType;
                    response.AddHeader("Content-Disposition", "attachment; filename=" + fileName + ".zip;");
                    response.TransmitFile("~/App_Data/" + fileName + ".zip");
                    //File.Delete(Server.MapPath("~/App_Data/" + fileName + ".zip"));
                    response.End();
                    return;
                }
            }
            doc.Save(Response, fileName, ContentDisposition.Attachment, null);
            Response.End();
        }