Ошибка wkhtmltopdf при встраивании SVG
Кому-нибудь в этом огромном пространстве когда-либо удавалось успешно создать PDF со встроенным SVG на HTML? Я все время получаю ошибку сегментации.
Или, возможно, есть ли другой способ встраивания SVG в файл HTML, а затем экспортировать его в PDF вместо wkhtmltopdf
?
Ответы
Ответ 1
У меня была аналогичная проблема. Похоже, что javascript, встроенный в изображение SVG, может вызвать ошибку сегментации.
Я создавал SVG-графики, используя pygal Python module. Для успешного создания PDF из HTML с помощью графиков SVG мне пришлось сделать несколько вещей:
- Удалить ссылку на javascript. (В случае pygal добавьте ключ js =() в конструктор графа).
-
Укажите размер изображения в теге svg, например
<svg ... width="300" height="200">
(В случае использования pygal используйте keywoard kernel_size)
-
Вставить SVG-изображение в тег img в кодировке base64, например
<img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0...">
Я использовал 11-ю версию wkhtmltopdf.
Ответ 2
Если это исправление не работает для других, вот что сработало для меня с chartist.js и wkhtmltopdf 0.12.2.1 под Ubuntu 64. (Кредит Панокеву)
Добавьте это в свой javascript перед всеми другими JS.
{
Function.prototype.bind = Function.prototype.bind || function (thisp) {
var fn = this;
return function () {
return fn.apply(thisp, arguments);
};
};
Определить стиль ширины для диаграммы div, например - style = "width: 950px;"
Ответ 3
Правильно.. Мне удалось наконец оттянуть его... все необходимое было немного обработано в исходном файле eps. Я открыл файл с помощью иллюстратора и решил "сгладить прозрачность". Может быть, это то, что он сделал, чтобы сгладить множество слоев файла или что-то в этом роде... затем сохраните как svg.. и он отлично отобразится в PDF файле.
Надеюсь, это поможет, если у кого-то будет такая же проблема, как у меня. Спасибо!: D