Я использую html2canvas.js 0.4.1 для преобразования DOM в холст для печати. Когда текст имеет цвет фона на пролете, а span охватывает следующую строку, то версия холста охватывает весь прямоугольник из двух линий обертывания. Он не просто охватывает текст. Кроме того, он скрывает текст в предыдущем интервале.Неверный цвет обложки Html to canvas
Следующая скрипка демонстрирует это довольно хорошо. Пробел «один» полностью покрыт синим фоном на «двух двух» диапазонах.
https://jsfiddle.net/sddah9k2/1/
CSS:
#content {
width:200px;
}
.select {
background-color:#3efcdb
}
HTML:
<div id='content'>
<span >one one one one one one </span>
<span class="select" >two two two two two two </span>
<span >three three three three three </span>
</div>
<div id="img-out"></div>
код:
html2canvas($("#content"), {
onrendered: function(canvas) {
theCanvas = canvas;
document.body.appendChild(canvas);
// Convert and download as image
Canvas2Image.saveAsPNG(canvas);
$("#img-out").append(canvas);
// Clean up
//document.body.removeChild(canvas);
}
});
Моя теория html2canvas не может сказать, что такое прямоугольник от промежутков, или, может быть, он просто не поддерживает несколько прямоугольников в качестве границ.
Есть ли какой-либо эффект CSS, который я могу использовать в тексте HTML, который будет правильно отображаться в html2canvas? Это не должно быть цвет фона, но я должен как-то указать, что диапазон обтекания выделен.
Да, кажется, что фоновый цвет на встроенных элементах не работает. Уже существует [проблема] (https://github.com/niklasvh/html2canvas/issues/548) на странице github проекта. Обратите также внимание на то, что в последней версии были некоторые улучшения: https://jsfiddle.net/sddah9k2/5/ – Kaiido