在尝试了很多解决这个错误的方法后,我在这里发布了这个问题。我已经写了一个方法,将html转换为pdf,并返回pdf字节作为输出。
import (
"bytes"
"github.com/SebastiaanKlippert/go-wkhtmltopdf"
)
func HtmlToPdf(htmlData *string) ([]byte, error) {
pdfg, err := wkhtmltopdf.NewPDFGenerator()
if err != nil {
return nil, err
}
pdfg.AddPage(wkhtmltopdf.NewPageReader(bytes.NewReader([]byte(*htmlData))))
//nolint: gomnd
pdfg.Dpi.Set(600)
jb, err := pdfg.ToJSON()
if err != nil {
return nil, err
}
pdfgFromJSON, err := wkhtmltopdf.NewPDFGeneratorFromJSON(bytes.NewReader(jb))
if err != nil {
return nil, err
}
err = pdfgFromJSON.Create()
if err != nil {
return nil, err
}
pdfBytes := pdfgFromJSON.Bytes()
return pdfBytes, nil }
调用此方法将返回错误wkhtmltopdf not found我已尝试以下解决方案
- wkhtmltopdf/usr/local/bin/wkhtmltopdf,然后设置WKHTMLTOPDF路径:/usr/local/bin/wkhtmltopdf位于我的代码的环境部分
1.在HtmlToPdf方法的顶部使用setPath,如
设置路径("/usr/本地/bin/文件夹")
在这种情况下,错误将更改为fork/exec/usr/local/bin/wkhtmltopdf:无此文件或目录
1.在将wkhtml文件移动到/usr/local/go/bin/并使用路径/usr/local/go/bin/wkhtmltopdf后也尝试了
1.使用命令行将任何url转换为pdf也可以正常工作。
Note : Hitting wkhtmltopdf --version in terminal gives wkhtmltopdf 0.12.6 (with patched qt) and package is installed using go get github.com/SebastiaanKlippert/go-wkhtmltopdf
还有其他办法吗?
1条答案
按热度按时间xdnvmnnf1#
你好在我的情况下你应该安装wkhtmltopdf,但如果你使用MacOS,所以只需安装在终端上
brew安装wkhtmltopdf
并确保路径目录一样你安装wkhtmltopdf