个人做网站有什么条件,软件开发难度大吗,百度推广账号怎么申请,深圳网站建设10强最近收到网友的提问后端怎么把html转成pdf文件#xff0c;于是我就把我以前做的例子发出来给大家参考一下#xff0c;如果对你有帮助的话请点个赞1.首先选择适合自己的系统下载wkhtmltopdf工具mac下载后安装成功会自动添加到环境变量 直接执行 wkhtmltopdf -V 测试是否安装成…最近收到网友的提问后端怎么把html转成pdf文件于是我就把我以前做的例子发出来给大家参考一下如果对你有帮助的话请点个赞1.首先选择适合自己的系统下载wkhtmltopdf工具mac下载后安装成功会自动添加到环境变量 直接执行 wkhtmltopdf -V 测试是否安装成功hfy566-Mac-mini ~ % wkhtmltopdf -Vwkhtmltopdf 0.12.5 (with patched qt)linux环境安装需要下载好添加执行权限并手动加到环境变量下面,如果不想加入到环境变量在代码里写死路径也行2.直接使用下面demo修改下就可以使用了package mainimport (contexterrorsfmtio/ioutilos/execpath/filepath)var (argsError errors.New(no input file or out path)fileTypeError errors.New(the file must be in pdf format))type HtmlToPdf struct {Commond stringin stringout stringargsMap map[string]stringprams []string}func NewPdf() *HtmlToPdf {args : map[string]string{--load-error-handling: ignore,--footer-center: 第[page]页/共[topage]页,--footer-font-size: 8,-B: 31,-T: 32,}return HtmlToPdf{Commond: wkhtmltopdf,argsMap: args,}}func (this *HtmlToPdf) OutFile(input string, outPath string) (string, error) {var pdfPath string// 输入 输出 参数不能为空if input || outPath {return pdfPath, argsError}//判断是否是生成pdf 文件ext : filepath.Ext(outPath)if ext ! .pdf {return pdfPath, fileTypeError}this.in inputthis.out outPath//构建参数this.buildPrams()//执行命令if _, err : this.doExce();err ! nil {return pdfPath, err}return pdfPath, nil}func (this *HtmlToPdf) doExce() ([]byte, error) {ctx, cancel : context.WithCancel(context.Background())defer cancel()cmd : exec.CommandContext(ctx, this.Commond, this.prams...)stdout, err : cmd.StderrPipe()if err ! nil {return nil, err}defer stdout.Close()//运行命令err cmd.Start()if err ! nil {return nil, err}bytes, err : ioutil.ReadAll(stdout)if err ! nil {return nil, err}cmd.Wait()return bytes, err}func (this *HtmlToPdf) buildPrams() {for key, val : range this.argsMap {this.prams append(this.prams, key, val)}//添加 输入 输出 参数this.prams append(this.prams, this.in, this.out)}func main() {pdfOpt: NewPdf()htmlDemoPath : xxxxx/src/demo/test.htmlPdfDemoPath : xxxxx/src/demo/test.pdfstr,err : pdfOpt.OutFile(htmlDemoPath,PdfDemoPath)if err ! nil {fmt.Println(Error ,err)return}fmt.Println(str)}效果:image.png