【发布时间】:2022-02-02 21:05:25
【问题描述】:
我正在尝试以 pdf 格式导出页面的正文元素,然后打印它,我检查了元素大小(宽度和高度),它们比我要导出的 A4 格式大,这里是代码:
var filename;
var element = document.getElementsByTagName("BODY")[0];
if (Object.keys(Chart.instances).length > 0) {
filename = "Report_chart_" + $("#DDlQqtp option:selected").text().replace(/ /g, "_") + ".pdf";
} else {
filename = "Report_test" + $("#DDlQtp option:selected").text().replace(/ /g, "_") + ".pdf";
}
var options = {
filename: filename,
image: { type: 'jpeg', quality: 1 },
jsPDF: { unit: 'pt', format: 'a4', orientation: 'l' }
};
html2pdf().set(options).from(element).save();
但是宽度正在减少,我看不到正文中表格的最后一列,并且在 2 页之后它开始给出空白页。
现在我可以理解宽度了,因为它肯定比 a4 格式更宽,但为什么还要高度呢?它应该简单地转到另一个页面,而不是尝试导出我的 pdf,给它与我身体相同的高度,一旦超过它就开始给出空白页。
如何将我的元素(宽度和高度)放入 A4 格式?如果我将 body 的值更改为 800x800 px,它可以工作,但我想在不修改 HTML 的情况下实现它。
谢谢
【问题讨论】:
-
试图找到一些答案,但我能找到的最接近的答案是this SO post。那里的建议是关于将
style或width属性添加到您的<table>或<td>的。也许<col>的使用会有所帮助
标签: javascript html2canvas html2pdf