Я использовал этот метод, с помощью 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 (не уверен в этом)
Я нахожусь на Mac, поэтому самый простой вариант - распечатать и сохранить в формате PDF. Я полагаю, что в Windows есть несколько вариантов для драйверов печати PDF. Будет ли это работать на вас? Вы можете экспортировать SVG, но вы потеряете любой стиль CSS, который у вас есть, поэтому он часто меньше идеала. –
Спасибо, но мне нужно создать pdf-программу, чтобы люди могли нажать кнопку и загрузить pdf –
Я использую [phantomjs] (http://phantomjs.org/), чтобы сделать это в прошлых проектах. – Mark