import (
"common/model"
"fmt"
wkhtml "github.com/SebastiaanKlippert/go-wkhtmltopdf"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/net/ghttp"
"io/ioutil"
"net/http"
"strings"
)
func Pdf(r *ghttp.Request) {
url := "https://www.baidu.com"
res, err := http.Get(url)
if err != nil {
r.Response.WriteJson(&model.Response{Code: 1, Msg: err.Error()})
r.ExitAll()
}
// 读取资源数据 body: []byte
body, err := ioutil.ReadAll(res.Body)
res.Body.Close()
pdfg, err := wkhtml.NewPDFGenerator()
if err != nil {
r.Response.WriteJson(&model.Response{Code: 1, Msg: err.Error()})
r.ExitAll()
}
pdfg.AddPage(wkhtml.NewPageReader(strings.NewReader(string(body))))
err = pdfg.Create()
r.Response.Header().Set("Content-Type", "application/pdf")
r.Response.Write(pdfg.Bytes())
}
安装wkhtmltopdf:brew install wkhtmltopdf
linux安装:
下载文件:https://wkhtmltopdf.org/downloads.html
sudo apt-get install xfonts-encodings xfonts-utils xfonts-base xfonts-75dpi
dpkg -i wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
wkhtmltopdf -V
环境报错:cannot connect to X server
yum install xorg-x11-server-Xvfb
sudo vim /usr/bin/wkhtmltopdf.sh
写入命令:
xvfb-run -a --server-args="-screen 0, 1024x768x24" /usr/bin/wkhtmltopdf -q $*
chmod a+x /usr/bin/wkhtmltopdf.sh
ln -s /usr/bin/wkhtmltopdf.sh /usr/local/bin/wkhtmltopdf
/usr/local/bin/wkhtmltopdf
/usr/bin/wkhtmltopdf
/usr/bin/wkhtmltopd