Экспорт PowerPoint из старших чартов

Есть ли возможность экспортировать графики, сделанные с помощью hightcharts в powerpoint? иначе кто-нибудь может помочь мне найти решение?

Thanx

2 ответа

Просто экспортируйте его в изображение (PNG или JPG) и добавьте это изображение в слайд PowerPoint? Большинство графиков с высокими графиками имеют кнопку загрузки (экспорта) в правом верхнем углу графика.

Я знаю, что это старо, но сейчас я пытаюсь достичь того же. Если вы счастливы использовать png или jpg, то я бы пошел с phantonJS (OpenQA.Selenium.PhantomJS), чтобы извлечь svg, а затем любой механизм конвертации для преобразования в png/jpg.

public IList<string> ExtractSVGs(string htmlFilePath)
    {
        IList<string> SVGs = new List<string>();
        foreach (string chart in getChartIds(htmlFilePath))
        {
            SVGs.Add(ExtractSVG(htmlFilePath, chart));
        }
        return SVGs;
    }

    private IList<string> getChartIds(string htmlFilePath)
    {
        IList<string> chartIds = new List<string>();
        string whatToFind = @"  ""renderTo"": """;
        foreach (string line in (System.IO.File.ReadLines(htmlFilePath)))
        {
            if (line.StartsWith(whatToFind))
                chartIds.Add("chart" + line.Substring(line.IndexOf(whatToFind) + whatToFind.Length, 32));
        }
        return chartIds;
    }

    private string ExtractSVG(string htmlFilePath, string chartId)
    {
        var driverService = PhantomJSDriverService.CreateDefaultService();
        driverService.HideCommandPromptWindow = true;
        driverService.LoadImages = true;
        driverService.ProxyType = "none";
        driverService.LocalToRemoteUrlAccess = true;
        driverService.WebSecurity = false; // may not be necessary

        using (var driver = new PhantomJSDriver(driverService))
        {
            driver.Navigate().GoToUrl(new Uri("file:///" + htmlFilePath));
            string svg = (string)driver.ExecuteScript(String.Format("return {0}.getSVG();", chartId), null);
            driver.Close();
            return svg;
        }
    }

Вы можете изменить JS для экспорта напрямую в png, но для этого потребуется подключение к серверу экспорта (или запуск этого кода также локально).

В дополнение к этому вам может потребоваться изменить то, что найти, в зависимости от того, как вы строите свои HTML-файлы.

Другие вопросы по тегам