首页 > 解决方案 > go-wkhtmltopdf 无法显示图像

问题描述

我正在使用github.com/SebastiaanKlippert/go-wkhtmltopdf v1.6.1. 我想用 HTML 文件创建简单的生物数据。我尝试在右上角添加浮动图像(个人资料图片),但图像未显示

这是我的示例 test.html 文件

<!DOCTYPE html>
<html>
<body style="padding: 50px; text-align: justify;">
    <h1 style="text-align: center;">Biodata</h1>
    <br>
    <div style="float: right; margin-bottom: 30px;">
      <img src="../image/profile_pic.jpeg" height="150px">
    </div>
    <div>
    <strong>Name:</strong> John
    </div>
    <br>
    <strong>Birth date:</strong> 2001-01-01
    <br>
    <br>
    <strong>Birth place:</strong> Unknown
    <br>
    <br>
    <Strong>Sex:</Strong> Male/Female
    <br>
    <br>
    <strong>Height:</strong> 200 cm
    <br>
    <br>
    <strong>Hobby:</strong> Sleeping
    <br>
</body>
</html>

这是围棋代码

import (
    "bytes"
    "fmt"
    "html/template"
    "strings"

    gopdf "github.com/SebastiaanKlippert/go-wkhtmltopdf"
)

func init() {
    htmlTmp, err := template.ParseFiles("files/html/test.html")
    if err != nil {
        fmt.Println(err)
        return
    }

    buf := new(bytes.Buffer)
    err = htmlTmp.Execute(buf, nil)
    if err != nil {
        fmt.Println(err)
        return
    }

    pdfGen, err := gopdf.NewPDFGenerator()
    if err != nil {
        fmt.Println(err)
        return
    }

    pageReader := gopdf.NewPageReader(strings.NewReader(buf.String()))
    pageReader.PageOptions.EnableLocalFileAccess.Set(true)
    pdfGen.AddPage(pageReader)
    if err := pdfGen.Create(); err != nil {
        fmt.Println(err)
        return
    }

    if err := pdfGen.WriteFile("files/generated/test.pdf"); err != nil {
        fmt.Println(err)
        return
    }
}

这是我运行代码时的样子:test_from_code

我已经使用了启用本地文件访问的选项,但图像仍然没有显示。相反,应该显示图像的位置有一个块

预期的行为我尝试从终端使用 wkhtmltopdf 来查看差异

wkhtmltopdf --enable-local-file-access files/html/test.html files/generated/test.pdf

这是结果:test_from_terminal

它显示了我希望它们出现的位置

我应该怎么做才能从代码中获得预期的结果?

标签: htmlgowkhtmltopdf

解决方案


可以在github.com/SebastiaanKlippert/go-wkhtmltopdf/issues/28中找到相同的问题。图书馆作者仍在努力,所以暂时我们可以从链接中了解该做什么。


推荐阅读