在Go lang中使用wkhtmltopdf将数据传递到页脚

k4aesqcs  于 2023-05-11  发布在  Go
关注(0)|答案(1)|浏览(165)

我正在使用go-wkhtmltopdf包来用go lang生成PDF。我用下面的代码显示在PDF的每一页页脚。我想传递一些动态数据到页脚显示相同的。我找不到任何方法这样做。请帮帮忙

"bytes"
"encoding/base64"
"fmt"
htmlTemplate "html/template"
"path"
"strings"
textTemplate "text/template"
wkhtml "github.com/SebastiaanKlippert/go-wkhtmltopdf"

pdfg, err := wkhtml.NewPDFGenerator()
if err != nil {
    return nil, err
}
page := wkhtml.NewPageReader(strings.NewReader(util.FilterSmartQuotesEtc(html)))
page.FooterHTML.Set("templates/footer.html")
pdfg.AddPage(page)
err = pdfg.Create()

templates/footer.html是我想传递数据的页脚文件。任何帮助真的很感激。

h79rfbju

h79rfbju1#

在不同的注意事项,OP,你应该提供一个minimum reproducible example。尽管如此,这里有一个 * 独立 * 的方法来使用go-wkhtmltopdftemplates/footer.html叠加到页面的页脚上:

import (
    "io/ioutil"
    "strings"
)

func main() {
    footerBytes, err := ioutil.ReadFile("templates/footer.html")
    if err != nil {
        panic(err)
    }
    footerHTML := string(footerBytes)

    pdfg, err := wkhtml.NewPDFGenerator()
    if err != nil {
        panic(err)
    }

    page := wkhtml.NewPageReader(strings.NewReader("<html><body><h1>Hello World</h1></body></html>"))
    page.FooterHTML.Set(footerHTML)

    pdfg.AddPage(page)
    err = pdfg.Create()
    if err != nil {
        panic(err)
    }

    err = pdfg.WriteFile("output.pdf")
    if err != nil {
        panic(err)
    }
}

相关问题