func main() {
pdf := gopdf.GoPdf{}
//设置pdf
pdf.Start(gopdf.Config{PageSize: gopdf.Rect{W: 595.28, H: 841.89}})
var err error
//设置字体
err = pdf.AddTTFFont("text", "examples/ttf/text.ttf")
if err != nil {
fmt.Println("addTT", err)
return
}
err = pdf.SetFont("text", "", 14)
//设置头
pdf.AddHeader(func() {
pdf.SetY(5)
pdf.Cell(nil, "header")
})
//设置尾
pdf.AddFooter(func() {
pdf.SetY(825)
pdf.Cell(nil, "footer")
})
pdf.AddPage()
//中
pdf.SetX(40)
pdf.SetY(40)
pdf.Cell(nil, "早上好,文艺范")
//图片
pdf.Image("examples/mask-image/gopher.jpg", 400, 400, nil)
if err != nil {
log.Print(err)
return
}
//画线
pdf.SetLineWidth(2)
pdf.SetLineType("dashed")
pdf.Line(10, 30, 585, 30)
//画椭圆
pdf.SetLineWidth(1)
pdf.Oval(100, 200, 500, 500)
//绘制带圆角的矩形
pdf.SetStrokeColor(255, 0, 0)
pdf.SetLineWidth(2)
pdf.SetFillColor(0, 255, 0)
err = pdf.Rectangle(196.6, 336.8, 398.3, 379.3, "DF", 3, 10)
if err != nil {
return
}
pdf.WritePdf("image.pdf")
}
使用循环让文本自动换行
for len(text) > 0 {
s3, s4 := splitString(text, maxLength)
pdf.SetX(x)
pdf.SetY(y)
pdf.Cell(nil, s3)
y += lineHeight
text = s4
}