如何为node.js的pdfkit添加页眉和页脚内容

问题描述 投票:2回答:5

我想使用节点js(express)生成pdf。我需要在页面编号的每个页面上添加页眉和页脚。任何帮助,将不胜感激。

谢谢。

node.js pdf express pdfkit
5个回答
4
投票

你可以这样做 :

doc.text('This is a footer', 20, doc.page.height - 50, {
    lineBreak: false
  });

7
投票

在所有页面上添加页脚

doc.addPage()

let bottom = doc.page.margins.bottom;
doc.page.margins.bottom = 0;
doc.text('Page 1', 0.5 * (doc.page.width - 100), doc.page.height - 50,
{
width: 100,
align: 'center',
lineBreak: false,
})

// Reset text writer position

doc.text('', 50, 50)
doc.page.margins.bottom = bottom;

let pageNumber = 1;

doc.on('pageAdded', () => {
    pageNumber++
    let bottom = doc.page.margins.bottom;
    doc.page.margins.bottom = 0;

    doc.text(
        'Pág. ' + pageNumber, 
        0.5 * (doc.page.width - 100),
        doc.page.height - 50,
        {
            width: 100,
            align: 'center',
            lineBreak: false,
        })

    // Reset text writer position
    doc.text('', 50, 50);
    doc.page.margins.bottom = bottom;
})

5
投票

比pdfKit更好我建议你使用pdfMake。我对pdfmake的经历很棒.https://www.npmjs.com/package/pdfmake


1
投票

关于这个库,我建议阅读PDF文档,这是很多必须完成的在线HTML文档。

警告:为了能够在主要内容区域之外书写,您必须在文本的函数参数上设置高度和宽度。

所以看到pdf doc你可以这样做:

const doc = new PDFDocument({bufferPages: true})

//addPage X times

const range = doc.bufferedPageRange();

for( let i = range.start; i <  (range.start + range.count); i++) {

  doc.switchToPage(i);
  doc.text(`Page ${i + 1} of ${range.count}`, 
            200, 
            doc.page.height - 40, 
            { height : 25, width : 100});
}

0
投票

这对我有用

    const doc = new PDFDocument({bufferPages: true})
    const range = doc.bufferedPageRange();

    for (let i = range.start; i <= (doc._pageBufferStart + 
    doc._pageBuffer.length - 1); i++) {

    doc.switchToPage(i);

        doc.font('Times-Roman').fontSize(8).text('Footer', 90, 
    doc.page.height - 40, {
    lineBreak: false
  });

}
© www.soinside.com 2019 - 2024. All rights reserved.