试图让一个页脚使用html2pdf显示出来。非常标准的代码使用了我在Github上找到的代码,所以和其他。
document.getElementById('generate').onclick = function () {
var element = document.getElementById('element-to-print');
var opt = {
margin: 0.5,
filename: '@pdf_filename',
pagebreak: { mode: 'avoid-all' },
image: { type: 'jpeg', quality: 0.98 },
jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' }
};
html2pdf().from(element).set(opt).toPdf().get('pdf').then((pdf) => {
var totalPages = pdf.internal.getNumberOfPages();
for (i = 1; i <= totalPages; i++) {
pdf.setPage(i);
pdf.setFontSize(10);
pdf.setTextColor(150);
pdf.text('PageNum ' + i + ' of ' + totalPages, pdf.internal.pageSize.getWidth() - 115, pdf.internal.pageSize.getHeight() - 10);
}
}).save();
问题是页脚没有出现在PDF文件中。我知道它在文件的某个地方,因为如果我搜索"PageNum",我会得到点击,但没有显示。
如果我取出行jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' }
,页脚将显示很好,但会出现一个奇怪的分页问题,页面(2,3,4++)将没有正确的页边距。
发布于 2022-07-25 03:19:49
作为将来的参考,我想出了我的问题。jsPDF单元被设置为'in‘,但是我的页脚计算假设'px’(getWidth() - 115)。我只是把计算调整到了类似getWidth() -5之类的地方,它起了作用。
https://stackoverflow.com/questions/73102040
复制相似问题