GolangNote

Golang笔记

Golang 使用 wkhtmltopdf 把HTML转为PDF文件

Permalink

把 HTML 内容转为 PDF 文件,这里用到一个 Golang 库 go-wkhtmltopdf,它是对 wkhtmltopdf 的 Golang 命令行封装,可以方便的调用。

wkhtmltopdf 是开源(LGPLv3)命令行工具,可使用 Qt WebKit 渲染引擎将 HTML 渲染为 PDF格式。 它是以“无头(headless)”方式运行,不需要浏览器或其它显示服务。

wkhtmltopdf 命令行使用

Bash: wkhtmltopdf
1
wkhtmltopdf http://google.com google.pdf

go-wkhtmltopdf 库使用

Go: wkhtmltopdf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// Create new PDF generator
pdfg, err := NewPDFGenerator()
if err != nil {
  log.Fatal(err)
}

// Set global options
pdfg.Dpi.Set(300)
pdfg.Orientation.Set(OrientationLandscape)
pdfg.Grayscale.Set(true)

// Create a new input page from an URL
page := NewPage("https://godoc.org/github.com/SebastiaanKlippert/go-wkhtmltopdf")

// Set options for this page
page.FooterRight.Set("[page]")
page.FooterFontSize.Set(10)
page.Zoom.Set(0.95)

// Add to document
pdfg.AddPage(page)

// Create PDF document in internal buffer
err = pdfg.Create()
if err != nil {
  log.Fatal(err)
}

// Write buffer contents to file on disk
err = pdfg.WriteFile("./simplesample.pdf")
if err != nil {
  log.Fatal(err)
}

fmt.Println("Done")

问题

因为 wkhtmltopdf 使用 Qt WebKit 渲染,有些 css 效果不能实现,js 脚本不能实行。

相关资源

本文网址: https://golangnote.com/topic/277.html 转摘请注明来源

Related articles

Golang 数据库 Bolt 碎片整理

Bolt 是一个优秀、纯 Go 实现、支持 ACID 事务的嵌入式 Key/Value 数据库。但在使用过程中会有很多空间碎片。一般数据库占用的空间是元数据空间的 1.5~4 倍。Bolt 没有内置的压缩功能,需要手动压缩。...

谷歌翻译的 golang 库推荐

Google 的翻译越来越好了,官方的Golang SDK 已经很完美,这里介绍的是几个非官方发布的有特色的库。...

Write a Comment to "Golang 使用 wkhtmltopdf 把HTML转为PDF文件"

Submit Comment Login
Based on Golang + fastHTTP + sdb | go1.22.3 Processed in 0ms