以前很菜的时候收过这个需求
真心很讨厌PDF,因为要自己算座标和设定一堆东西
後来这个需求就被弃置了,也没继续研究
直到最近坑又被挖出来了
拜各位大神赐教,这礼拜试过很多方法,终於实作出来几种方法,真的非常感谢
然後我要去刻画面了==
网址留作纪念,因为有可能会搜寻到另一个封装起来的同名package,要找资料也方便
手动import "github.com/SebastiaanKlippert/go-wkhtmltopdf"
github上面的quick start是在他的test file里写的
你会不知道要用什麽开头import
用go mod之後package引用只要加上wkhtmltopdf就不用在import前面加上alias
ex:wkhtmltopdf.NewPDFGenerator()
1.利用html template将html档参数化可以injection parameters
2.excute成byte档给wkhtmltopdf去生成页面
注意1:谨慎使用html template,因为可能有injection风险,千万不要信任来路不明的html档,详细请参阅html template
注意2:要是页面太多,package会自动AddPages,不用担心
func GeneratePDF() error {
Student := struct {
Title string
}{
"My Awesome Site 123",
}
htmlTemp, err := template.ParseFiles("./example.html")
if err != nil {
log.Fatal(err)
return err
}
var buf bytes.Buffer
htmlTemp.Execute(&buf, &Student)
pdfg, err := wkhtmltopdf.NewPDFGenerator()
if err != nil {
log.Fatal(err)
}
pdfg.AddPage(wkhtmltopdf.NewPageReader(bytes.NewReader(buf.Bytes())))
pdfg.Dpi.Set(600)
err = pdfg.Create()
if err != nil {
log.Fatal(err)
}
err = pdfg.WriteFile("./simplesample.pdf")
if err != nil {
log.Fatal(err)
}
return nil
}
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"> <!-- 有中文要加这行,不然乱码 -->
<title>{{ .Title }}</title>
</head>
<body>
<h1>{{ .Title }}</h1> <!-- 想测试自动分页的把这行复制一堆就可以 -->
</body>
</html>
JS需要JavaScript 引擎才能执行 JavaScript 是一个直译式语言,而直译语言无法独...
在 JavaScript 这语言里,其实指分成两种型别:原始型别、物件型别 原始型别 原始型别又称纯...
友:你要不要一起参加铁人赛? 我:好啊! (几天後) 我:乾我不小心忘了报名...... ----...
前一天我们学会了对资料进行简单的map处理之後,今天来聊一下排序 不论是进行人工的检视或是後续分析的...
Golang goroutine 我自己理解goroutine 就很类似其他语言的thread[备注...