2014-02-14 2 views
1

Я прочитал и перечитал страницу this об обработке изображений на стороне сервера. Я не могу понять. Искал примеры, но все и все, что ему кажется, недостаточно. Поэтому я снова прошу вас дать ясный пример этого или указатель в правильном направлении.Highcharts - Как экспортировать графический сервер?

Это то, что у меня есть:

  1. Rails 4.0.2 приложение
  2. Некоторых диаграммы оказываемыхи с некоторым кодом, как this jsfiddle
  3. Phantomjs установленного this gem
  4. Highcharts-convert.js где-то в мой каталог приложений

Теперь, наконец, проблема. Как, черт возьми, я называю phantomjs, чтобы изображение сохранялось на сервере?

Я пытался так:

json_data = "json from jsfiddle" 
out_path = "/tmp/" 
width = 900 

Rails.logger.info %x[phantomjs /opt/projects/project_name/highcharts-convert.js -infile #{json_data} -outfile #{out_path} -width #{width} 2>&1] 

Причина вызова этого кода является то, что я вокруг this project слежения за ними

Кто-нибудь?

EDIT :: Еще одна деталь, когда я выполняю команду ошибка

Sh: phantomjs: команда не найдена

+0

Охвачено. Я закончил использование highchart-image-api. – tostasqb

ответ

3

Ошибка вы получаете довольно ясно: Ваш баш не может найдите исполняемый файл phantomjs. Это связано с тем, что вы установили phantomjs с phantomjs gem, который не помещал исполняемый файл в ваш PATH.

У вас есть несколько вариантов для решения этого:

  • Помещенного phantomjs в вашем PATH. Из документации жемчужины кажется, что она должна быть установлена ​​в $HOME/.phantomjs/VERSION/PLATFORM.
  • Вместо использования команды phantomjs используйте полный путь к исполняемому файлу (который указан выше).
  • Используя API gem, вы можете запускать команды phantomjs. Было бы что-то вроде:

    Phantomjs.run('./path/to/script.js') 
    

    Для получения дополнительной информации ознакомьтесь с examples.

+0

ОК, на один шаг ближе :) 'Phantomjs.run' - это путь, но теперь, как мне передать highcharts-convert.js, а также мою диаграмму json (stringified)? – tostasqb

+0

Команда 'Phantomjs.run' принимает несколько аргументов. Поэтому, я думаю, вам просто нужно указать список параметров, которые вы обычно указываете на 'phantomjs' в качестве аргументов. – Nikos

+0

Как примечание, похоже, из сообщения в блоге, которое вы читали, люди с высоким качеством уже выполнили всю процедуру phantomjs, которую вы пытаетесь сделать, и опубликовали API, который может обрабатывать внешние запросы, которые возвращают соответствующие изображения.Я предполагаю, что вам нужно больше настроек, чем их решение. – Nikos

Смежные вопросы