簡短回答:
將您的圖像大小設置爲它的原始大小的1/3。
長答案:
您的網站上的圖像打印質量是72dpi。
當您嘗試打印您的頁面時,所有文本都呈現爲高質量矢量(通常爲〜300dpi,具體取決於您的打印設置)。
因此,如果您需要打印出高質量的圖像,則需要將其縮小到至少原始尺寸的三分之一。
當您使用html2canvas庫生成圖像時,您必須在執行渲染之前將所有CSS尺寸設置爲300%。
所以,可以這樣考慮:
var ReportTitle = 'Hello world!'; // For demonstration
var bigCanvas = $("<div>").appendTo('body'); // This will be the 3x sized canvas we're going to render
var scaledElement = $("#Element").clone()
.css({
'transform': 'scale(3,3)',
'transform-origin': '0 0'
})
.appendTo(bigCanvas);
var oldWidth = scaledElement.width();
var oldHeight = scaledElement.height();
var newWidth = oldWidth * 3;
var newHeight = oldHeight * 3;
bigCanvas.css({
'width': newWidth,
'height': newHeight
})
html2canvas(bigCanvas, {
onrendered: function(canvasq) {
var w=window.open();
w.document.write("<h3 style='text-align:center;'>"+ReportTitle+"</h3>");
w.document.write("<img width='"+oldWidth+"' height='"+oldHeight+"' src='"+canvasq.toDataURL()+"' />");
w.print();
bigCanvas.remove()
}
});
Working JSBin link
我在這裏有同樣的問題。在Safari html2canvas中工作得很好!但在Chrome中獲得的圖像非常低。有任何想法嗎? – RicardoGonzales