2016-01-18 14 views
6

Mam aplikację node.js, która uzyskuje dostęp do danych z bazy danych MySQL i chcę dynamicznie generować wykresy z tych danych, aby przesłać je jako obraz (PNG/JPG) przez serwer HTTP do użytkownik. Szukałem już trochę czasu, ale nie mogłem znaleźć biblioteki, aby to zrobić bez podejścia HTML/canvas. Ponieważ chcę, aby serwer wykonywał renderowanie w celu korzystania z wykresu w wiadomościach e-mail lub dynamicznie renderowanych plików PDF, nie jest to opcja tutaj.Generowanie wykresów bez HTML/Browser

Jakie może być podejście tutaj (z biblioteką lub bez niej)?

Edytuj, aby zapewnić dowód własnej pracy: Znalazłem https://plot.ly, co jest pod względem użytkowania i wyniku naprawdę blisko spełnienia moich potrzeb, ale wymaga połączenia z Internetem, ponieważ wywołuje zdalny interfejs API.

+0

Oczywiście wyłączyć temat (przeczytaj [pytaj]). dlaczego ktoś by to przegłosował? – Amit

+0

Edytowałem pytanie, aby było oczywiste, że przekazywanie przez użytkowników jest prawdziwym pytaniem, a nie prośbą o bibliotekę. –

+0

Dlaczego płótno nie jest opcją? Możesz renderować na płótnie i uzyskać dane obrazu, aby wysłać je do klienta lub zapisać na serwerze do późniejszego wykorzystania w plikach pdf lub cokolwiek innego. – pawel

Odpowiedz

2

Istnieje node wrapper dla biblioteki wykresów chartist. Możesz użyć tej biblioteki do wygenerowania SVG i lib svg2png do konwersji do PNG.

2

Cóż, istnieje wiele opcji, użyłbym phantomjs (bezgłowego przeglądarki Webkit) do renderowania wykresów.

Dlaczego ta opcja byłaby dobra? Jednym z powodów jest to, że nie potrzebujesz powielonego kodu dla serwera i kodowania po stronie klienta, możesz po prostu ponownie użyć kodu. Po stronie serwera utwórz plik html z wymaganymi skryptami i danymi i wyrenderuj go.

9

Możesz również spróbować zapytać o to w numerze Software Recs Stack Overflow. Ale jedną z opcji, która wydaje się być zgodna z Twoimi potrzebami, jest ZingChart.

Mają one phantomJS build do renderowania statycznych wersji wykresów. Ponadto licencjonowani użytkownicy mogą uzyskać dostęp do kompilacji Node.js w celu tworzenia wykresów po stronie serwera.

Pełne ujawnienie, pracuję w zespole ZingChart, więc proszę o kontakt, jeśli mogę pomóc w przejrzeniu wszystkich opcji.