Да, я столкнулся с той же проблемой. Я также пытался перед печатью и после печати и вызывать функцию, чтобы перерисовать диаграмму, но иногда она ломалась, когда Брауэр уменьшал и уменьшал масштаб.
Я говорю, что это не лучшее решение, но оно работает отлично.
Решение -
Перезаписать метод window.print
в mounted
.
window.print = function () {
setTimeout(function () {
_print();
}, 500);
};
использовать флаг print_mode
для печати.
let self = this;
window.addEventListener('afterprint', function () {
self.print_mode = false;
});
пользовательская ссылка экземпляра диаграммы для получения base64
данных. позвоните getDataURL()
, чтобы получить данные изображения.
chart = echarts.init(chart_dom);
chart_img = chart.getDataURL()
<img v-if="print_mode" class="print-only" :src="chart_img"></img>
, чтобы при печати отображалось изображение и печать, а в обычном режиме отображалась диаграмма.