目录
介绍
安装 gofpdf
API
代码示例
结果展示
介绍
gofpdf是一个在 Go 语言中用于生成 PDF 文档的库。
安装 gofpdf
首先,你需要安装 gofpdf 库。你可以使用 go get 命令来安装它:
go get github.com/jung-kurt/gofpdfAPI
| 功能 | 函数名 | 参数解释 | 示例 | 
|---|---|---|---|
| 创建PDF对象 | gofpdf.New(orientation, unit, size, fontDir) | - orientation: 页面方向("P"为纵向, "L"为横向)<br>-unit: 单位("pt", "mm", "cm", "in")<br>-size: 纸张大小(如"A4")<br>-fontDir: 字体目录(可选) | pdf := gofpdf.New("P", "mm", "A4", "") | 
| 添加页面 | AddPage() | 无参数 | pdf.AddPage() | 
| 设置字体 | SetFont(family, style, size) | - family: 字体名称<br>-style: 字体样式("", "B", "I", "U")<br>-size: 字体大小 | pdf.SetFont("Arial", "B", 16) | 
| 输出文本 | Cell(width, height, txt, border, ln, align, fill, link, linkStr, x, y, res, automaticWidth, autoPageBreak) | - width: 单元格宽度<br>-height: 单元格高度<br>-txt: 文本内容<br>- 其他参数为可选,用于设置边框、换行、对齐方式等 | pdf.Cell(40, 10, "Hello, World!") | 
| 输出多行文本 | MultiCell(width, cellHeight, txt, border, align, fill, ln, x, y, res, automaticWidth, autoPageBreak) | 类似 Cell,但支持多行文本 | pdf.MultiCell(40, 10, "Multiple lines of text", 0, "C") | 
| 绘制线条 | Line(x1, y1, x2, y2) | - x1,y1: 起点坐标<br>-x2,y2: 终点坐标 | pdf.Line(10, 10, 100, 100) | 
| 绘制矩形 | Rect(x, y, width, height, style) | - x,y: 左上角坐标<br>-width,height: 矩形宽和高<br>-style: 边框样式 | pdf.Rect(50, 50, 100, 50, "D") | 
| 添加图片 | Image(imageFile, x, y, width, height, imageType, link, linkStr) | - imageFile: 图片文件路径<br>-x,y: 图片位置<br>-width,height: 图片尺寸<br>- 其他参数为可选 | pdf.Image("path/to/image.jpg", 10, 10, 30, 0, false, "", 0, "") | 
| 设置文本颜色 | SetTextColor(r, g, b) | - r,g,b: RGB颜色值 | pdf.SetTextColor(255, 0, 0) | 
| 设置绘图颜色 | SetDrawColor(r, g, b) | - r,g,b: RGB颜色值 | pdf.SetDrawColor(0, 0, 255) | 
| 设置填充颜色 | SetFillColor(r, g, b) | - r,g,b: RGB颜色值 | pdf.SetFillColor(255, 255, 0) | 
| 输出文件 | OutputFileAndClose(filename) | - filename: 输出文件名 | err := pdf.OutputFileAndClose("output.pdf") | 
代码示例
注意:图片需要自行准备否则运行不起来!!!
package mainimport ("fmt""github.com/jung-kurt/gofpdf""os"
)func main() {// 创建一个新的PDF文档pdf := gofpdf.New("P", "mm", "A4", "")// 添加第一页pdf.AddPage()// 设置字体和大小pdf.SetFont("Arial", "", 14)// 输出文本pdf.Cell(40, 10, "Hello, World!")// 添加一些空行pdf.Ln(10)// 输出多行文本txt := "This is a multi-line text example.\nEach line is separated by a newline character."pdf.MultiCell(100, 5, txt, "1", "J", false)// 添加一个矩形pdf.SetDrawColor(255, 0, 0)    // 设置线条颜色为红色pdf.Rect(50, 50, 100, 50, "D") // 画一个红色矩形,带边框("D"表示绘制线条)// 添加一个填充矩形pdf.SetFillColor(0, 255, 0)     // 设置填充颜色为绿色pdf.Rect(50, 120, 100, 50, "F") // 画一个绿色矩形,填充("F"表示填充)// 绘制一条线pdf.SetDrawColor(0, 0, 255) // 设置线条颜色为蓝色pdf.Line(10, 200, 200, 200) // 从(10,200)到(200,200)画一条蓝色线// 添加图片(确保图片路径是正确的)pdf.Image("E:\\SystemFiles\\Pictures\\go-logo.png", 160, 220, 30, 0, false, "", 0, "")// 设置文本颜色并输出pdf.SetTextColor(255, 0, 0) // 设置为红色pdf.Cell(40, 10, "Text in red color")// 输出PDF到文件err := pdf.OutputFileAndClose("example.pdf")if err != nil {fmt.Println(err)os.Exit(1)}fmt.Println("PDF file created successfully!")
}
结果展示
