使用jsPDF将页脚添加到pdf

Sum*_*eet 6 html javascript jspdf

我从jsPDF api 生成pdf ,我想在页面编号的每个页面添加页脚.

如何实现这一目标.它可以选择从HTML插件添加页脚,但我写的是没有HTML.

var doc = new jsPDF("portrait","px","a4");
Run Code Online (Sandbox Code Playgroud)

sai*_*inf 9

斯蒂芬柯林斯是最好的答案!它适用于jspdf-autotable插件。

有了这个之后就全部添加到doc中了,这样我们就可以轻松使用总页数了!

为斯蒂芬柯林斯的回答添加一些风格:“总页数”

const addFooters = doc => {
  const pageCount = doc.internal.getNumberOfPages()

  doc.setFont('helvetica', 'italic')
  doc.setFontSize(8)
  for (var i = 1; i <= pageCount; i++) {
    doc.setPage(i)
    doc.text('Page ' + String(i) + ' of ' + String(pageCount), doc.internal.pageSize.width / 2, 287, {
      align: 'center'
    })
  }
}


let doc = new jsPDF()

doc.text(...)
doc.autoTable(...)
addFooters(doc)
doc.save()
Run Code Online (Sandbox Code Playgroud)


Ste*_*ins 7

在运行之前运行此函数 doc.save()

function addFooters() {
    const pageCount = doc.internal.getNumberOfPages();
    for(var i = 1; i <= pageCount; i++) {
        doc.text(String(i), 196, 285);
    }
}
Run Code Online (Sandbox Code Playgroud)


Bas*_*ein 6

你必须自己实现它.你可以这样做:

var doc = new jsPDF();
doc.page=1; // use this as a counter.

function footer(){ 
    doc.text(150,285, 'page ' + doc.page); //print number bottom right
    doc.page ++;
};

// and call footer() after each doc.addPage()
Run Code Online (Sandbox Code Playgroud)


小智 6

我知道这篇文章很旧,但是我将提供另一个解决方案。首先定义您的页面总数。有多种确定方法,因此我不再赘述。

        var doc = new jsPDF('p', 'pt', 'letter');
        doc.page = 1; // use this as a counter.
        var totalPages = 10; // define total amount of pages
        // HEADER
        doc.setFontSize(20);//optional
        doc.setTextColor(40);//optional
        doc.setFontStyle('normal');//optional
        doc.text("Report", 50, 22);// set your margins
        // FOOTER
        var str = "Page " + doc.page  + " of " +  totalPages;
        doc.setFontSize(10);// optional
        doc.text(str, 50, doc.internal.pageSize.height - 10);//key is the interal pageSize function


        // Add Page content
        .....


        //Add new page and increase page count
        doc.addPage();
        doc.page ++;
        //Begin process all over again.
Run Code Online (Sandbox Code Playgroud)

这在循环中效果很好,因为您可以通过使用array.length + 1(因为它从零开始)来设置页数。