我试图弄清楚如何在pdf上以300 dpi的速度导出我的画布。
我发现了一些文章,展示了如何计算画布上像素的300dpi(What is the best practice to export canvas with high quality images?)以及使用jsPDF(Convert canvas to PDF)将其转换为pdf
但是,我不太确定如何在10cm x 6cm的画布上设计一些东西并以300dpi的速度输出。使用公式...
10cm * 300dpi / 2.54 = 1181px // width
6cm * 300dpi / 2.54 = 709px // height
我创建了一个宽1181像素,高709像素的画布。
然而,当我使用高度为100px×100px的Fabric.js创建对象时,我在画布上得到了这个。
然而,当我使用jspdf导出它时...我得到了这个......
以下是我的代码......
// create a wrapper around native canvas element (with id="c")
var canvas = new fabric.Canvas('canvas');
canvas.backgroundColor = "white";
// create a rectangle object
var rect = new fabric.Rect({
left: 0,
top: 0,
fill: 'red',
width: 100,
height: 100
});
// "add" rectangle onto canvas
canvas.add(rect);
$('#export-btn').click(function(){
var imgData = canvas.toDataURL("image/jpeg", 1.0);
var pdf = new jsPDF('l', 'mm', [60,100]);
pdf.addImage(imgData, 'JPEG', 0, 0);
var download = document.getElementById('download');
pdf.save("download.pdf");
});
我应该先将canvas.toDataURL()中导出的imgData调整大小,然后再将其传递给jsPDF吗?