2015-10-02 2 views
2

Я использую dc.js для создания диаграмм. Я хочу экспортировать диаграммы в формате pdf. Кажется, что преобразование в SVG, а затем использование Perl-скриптов для преобразования SVG в pdf является единственным способом. Какие-либо предложения?Преобразование диаграммы dc.js в pdf

+0

Я нахожусь на Mac, поэтому самый простой вариант - распечатать и сохранить в формате PDF. Я полагаю, что в Windows есть несколько вариантов для драйверов печати PDF. Будет ли это работать на вас? Вы можете экспортировать SVG, но вы потеряете любой стиль CSS, который у вас есть, поэтому он часто меньше идеала. –

+0

Спасибо, но мне нужно создать pdf-программу, чтобы люди могли нажать кнопку и загрузить pdf –

+0

Я использую [phantomjs] (http://phantomjs.org/), чтобы сделать это в прошлых проектах. – Mark

ответ

0

Я использовал этот метод, с помощью Inkscape (на сервере):

ЯШ:

// --- create your chart before this --- 
postdata = { 
    'url':CryptoJS.MD5(window.location.href).toString(), 
    //used to name the file based on its url (used for caching, containing parameters in my case) 
    'svg':$('#chart').html() 
    //the created svg chart (using jQuery here) 
}; 
$.post('create_pdf.php',postdata); 
//POST the svg to php (using jQuery here) 

create_pdf.php:

//save the svg file as XYZ.svg 
file_put_contents($_POST['url'] . '.svg',$_POST['svg']); 
// run the command: inkscape -z XYZ.svg -A XYZ.pdf 
// for png would do: inkscape -z XYZ.svg -e XYZ.png 
$com = 'inkscape -z ' . $_POST['url'] . '.svg -A ' . $_POST['url'] . '.pdf'; 
exec($com); 

Примечание: Я использую d3.js непосредственно, не dc.js (не уверен в этом)