Javascript jsPDF未正确缩放html2canvas图像

Javascript jsPDF未正确缩放html2canvas图像,javascript,jspdf,Javascript,Jspdf,我有一个函数,它接受一个div,并使用jsPDF将其保存到一个PDF文档中。 我正在苦苦挣扎的是为什么jsPDF不尊重我的选择 我希望PDF文件是横向的,297mm宽(A4横向宽度),然后将PDF的高度设置为缩放大小,并用图像填充PDF 我的职能如下: const input = document.getElementById(id); const inputHeightMm = pxToMm(input.offsetHeight); const inputWidthMm = pxToMm(in

我有一个函数,它接受一个div,并使用jsPDF将其保存到一个PDF文档中。
我正在苦苦挣扎的是为什么jsPDF不尊重我的选择

我希望PDF文件是横向的,297mm宽(A4横向宽度),然后将PDF的高度设置为缩放大小,并用图像填充PDF

我的职能如下:

const input = document.getElementById(id);
const inputHeightMm = pxToMm(input.offsetHeight);
const inputWidthMm = pxToMm(input.offsetWidth);
const a4WidthMm = 297;
const a4HeightMm = 210;
const ratio = inputHeightMm/inputWidthMm;
console.log(a4WidthMm, a4WidthMm * ratio )

html2canvas(input)
    .then((canvas) => {
        const imgData = canvas.toDataURL('image/png');
        const pdf = new jsPDF({
            orientation: 'landscape',
            unit: "mm",
            format: [a4WidthMm, a4WidthMm * ratio ]
        });
        pdf.addImage(imgData, 'PNG', 0, 0, a4WidthMm, a4WidthMm* ratio );
        return pdf.save(`${v}.pdf`);
    });
然而,我得到的是一个PDF文件,其中图像被切断,因为它似乎没有将其缩放到正确的大小。
当检查它输出的PDF时,它还说它只有4.13英寸x1.96英寸,宽104毫米,而不是传递给它的297毫米。你能试试吗

pdf.addImage(imgData, 'PNG', 0, 0, undefined, undefined );
而不是

pdf.addImage(imgData, 'PNG', 0, 0, a4WidthMm, a4WidthMm* ratio );
看看是否产生了同样的结果

文档指出,添加图像(图像数据、格式、x、y、宽度、高度、别名、压缩、旋转)、宽度和高度用于调整生成的图像的大小。 如果未定义图像,图像将以其原始大小和比例放置在PDF中