【发布时间】:2019-04-08 05:56:21
【问题描述】:
我正在尝试将 Html2Canvas 与 jsPDF 一起使用以从 html 生成 pdf。归档我关注的this quick tutorial。
我正在尝试渲染一个简单的 Hello World h1,实际上我得到了 pdf 和 Hello World,但是要拉伸,我不知道如何将其更改为正确显示,您可以看到下图:
我已经尝试将 PDF 对象的配置更改为:pdf.internal.scaleFactor = 2.25;
但这似乎并没有改变什么,我也尝试了一些其他的配置更改,但没有成功。
<template>
<div>
<a @click="print">Print</a>
<div id="nodeToRenderAsPDF">
<h1>Hello World</h1>
</div>
</div>
</template>
<script>
import jsPDF from 'jspdf'
import html2canvas from 'html2canvas'
export default {
name: 'HelloWorld',
props: {
msg: String
},
methods: {
print() {
const filename = 'ThisIsYourPDFFilename.pdf';
html2canvas(document.querySelector('#nodeToRenderAsPDF')).then(canvas => {
let pdf = new jsPDF('p', 'mm', 'a4');
pdf.internal.scaleFactor = 2.25;
pdf.addImage(canvas.toDataURL('image/png'), 'PNG', 0, 0, 211, 298);
pdf.save(filename);
});
}
}
}
</script>
我得到的实际结果是 pdf 中的拉伸元素,我期望得到的是一个显示 hello world 的 PDF,其大小与浏览器上显示的 h1 相同。
【问题讨论】:
-
您通过在 addImage 方法中传递宽度和高度 (211, 298) 参数来拉伸图像。您是否尝试省略这些参数?
标签: javascript vue.js jspdf html2canvas