package pdf import ( "encoding/base64" "github.com/SebastiaanKlippert/go-wkhtmltopdf" "strings" ) // html转 Pdf dataType = 1 为网页url dataType = 2为网页内容 outFile为空则不保存 func HtmlToPdfBase64(content string, dataType int, outFile ...string) (string, error) { pdfg, err := wkhtmltopdf.NewPDFGenerator() if err != nil { return "", err } switch dataType { case 1: //网页地址 pdfg.AddPage(wkhtmltopdf.NewPage(content)) case 2: //网页内容 pdfg.AddPage(wkhtmltopdf.NewPageReader(strings.NewReader(content))) } //模式 pdfg.Orientation.Set(wkhtmltopdf.OrientationPortrait) //pdf尺寸默认A4纸 pdfg.PageSize.Set(wkhtmltopdf.PageSizeA4) // Create PDF document in memory if err = pdfg.Create(); err != nil { return "", err } // Write PDF to file if len(outFile) != 0 { if err = pdfg.WriteFile(outFile[0]); err != nil { return "", err } } return base64.StdEncoding.EncodeToString(pdfg.Bytes()), nil }