go-wkhtmltopdf 项目使用教程
1. 项目的目录结构及介绍
go-wkhtmltopdf 项目的目录结构如下:
go-wkhtmltopdf/
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── converter.go
├── go.mod
├── object.go
├── object_registry.go
├── option.go
├── pdf.go
└── examples/
├── basic_usage/
├── converter_callbacks/
├── json_input/
├── web_page_to_pdf/
└── configurable_web_page_to_pdf/
目录结构介绍
CODE_OF_CONDUCT.md
,CONTRIBUTING.md
,LICENSE
,README.md
: 项目的基本文档,包括行为准则、贡献指南、许可证和项目介绍。converter.go
,object.go
,object_registry.go
,option.go
,pdf.go
: 项目的主要代码文件,实现了 PDF 转换的核心功能。go.mod
: Go 模块文件,定义了项目的依赖关系。examples/
: 包含多个示例目录,展示了项目的不同使用场景。
2. 项目的启动文件介绍
项目的启动文件主要是 pdf.go
,其中包含了初始化和销毁库的方法。以下是启动文件的关键部分:
package main
import (
"log"
"os"
pdf "github.com/SebastiaanKlippert/go-wkhtmltopdf"
)
func main() {
// 初始化库
if err := pdf.Init(); err != nil {
log.Fatal(err)
}
defer pdf.Destroy()
// 创建对象
object, err := pdf.NewObject("sample1.html")
if err != nil {
log.Fatal(err)
}
object.Header.ContentCenter = "[title]"
object.Header.DisplaySeparator = true
// 创建对象从 URL
object2, err := pdf.NewObject("https://google.com")
if err != nil {
log.Fatal(err)
}
object2.Footer.ContentLeft = "[date]"
object2.Footer.ContentCenter = "Sample footer information"
object2.Footer.ContentRight = "[page]"
object2.Footer.DisplaySeparator = true
}
启动文件介绍
pdf.Init()
: 初始化库。pdf.Destroy()
: 销毁库,释放资源。pdf.NewObject()
: 创建一个新的 PDF 对象,可以从文件或 URL 创建。
3. 项目的配置文件介绍
项目没有明确的配置文件,但可以通过代码中的选项进行配置。以下是一些常用的配置选项:
object.Header.ContentCenter = "[title]"
object.Header.DisplaySeparator = true
object.Footer.ContentLeft = "[date]"
object.Footer.ContentCenter = "Sample footer information"
object.Footer.ContentRight = "[page]"
object.Footer.DisplaySeparator = true
配置选项介绍
Header.ContentCenter
,Header.DisplaySeparator
: 设置页眉的内容和是否显示分隔符。Footer.ContentLeft
,Footer.ContentCenter
,Footer.ContentRight
,Footer.DisplaySeparator
: 设置页脚的内容和是否显示分隔符。
通过这些选项,可以灵活地配置生成的 PDF 文档的页眉和页脚。