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 把cookie 字符串解析为cookie 结构

在做爬虫时有时候会遇到需要带已登录的 cookie 请求,这个时候最简单的方法是在浏览器登录后,在开发者面板找到cookie 字符串,然后拷贝粘贴。这就面临一个问题需要把cookie 字符串解析成Go 语言 cookie 结构体。...

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

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