我有一个在页面上设置页脚的功能。但我想让代码更灵活,并添加一个 if 语句,当文档为“a4”或“a3”时,我希望它在不同的位置设置页脚。
function footer(){
doc.setFontSize(11);
doc.text(180,280, 'Seite ' + doc.page);
doc.page ++;
}
但是我在页面启动后找不到更改格式的参数:
var doc = new jsPDF('p', 'mm', 'a4');
我试过:
doc.format('a3');
doc.setFormat = 'a3';
doc.setPageFormat('a3');
但都不起作用。
是否有人知道即使在“new jsPDF”启动后也可以在代码中的任何位置更改页面格式的参数?或者这根本行不通?
提前致谢!
您可以在每个新页面上设置格式和方向:
doc.addPage('a3', 'portrait');
方向是“纵向”或“横向”
或者你也可以设置高度和宽度:
doc.addPage(newWidth, newHeight);
在这种情况下,单位将与您的 jsPDF 实例化中的单位相同('mm'):
var doc = new jsPDF('p', 'mm', 'a4');
/* -----------PDF GENERATE--------- */
@ViewChild('reportContent') reportContent: ElementRef;
downloadPdf() {
const doc = new jsPDF('l', 'mm', 'a3');
const specialElementHandlers = {
'#editor': function (element, renderer) {
return true;
}
};
const content = this.reportContent.nativeElement;
doc.fromHTML(content.innerHTML, 15, 10, {
'width': 100,
'elementHandlers': specialElementHandlers
});
doc.save('ReminderReport' + '.pdf');
}
我还注意到,如果你有 1 页(我不完全确定它如何处理超过 1 页。我会谈到......),你可以使用你创建的 jsPDF 对象并运行
setWidth();
或 setHeight();
方法通过 doc.internal.pageSize.setWidth(some number);
和身高一样明智。
当我深入研究这些方法时,我注意到虽然 setWidth 和 setHeight 只接受一个参数,但要更新对象,它需要将 2 个参数分别传递给 setWidth 和 setHeight 中的另一个方法。具体来说,传递给 setWidth 或 setHeight 的数字和要更改的页码。我是 jsPDF 的新手(我只需要它来完成一项基本任务,所以我可能不会深入研究它),所以我不确定它是否像这样工作,但我想你可以设置当前您正在处理的页面(可以通过
doc.internal.pages['some page']
或 doc.page ++;
访问),这可能对某人有用...
并不是说这很深奥,但它可能对某人有用。
先创建带有功能链接的按钮,然后设置功能,请仔细按照步骤操作,谢谢。
注意:
'p'
是布局,表示纵向,所以您可以使用 'l'
横向
步骤#1:创建按钮。
<button onclick="pipeCharttPDF('your_chart_id','PDF_file_name','p')" class="btn btn-sm btn-info">PDF
</button>
Step#2: 声明函数()。
<script type="text/javascript">
function pipeCharttPDF(id, name, layout) {
html2canvas(document.getElementById(id), {
onrendered: function(canvas) {
var img = canvas.toDataURL(); //image data of canvas
var doc = new jsPDF(layout,'mm','a4');
doc.addImage(img, 10, 10);
doc.save(name + '.pdf');
}
});
}
</script>