首页 > 解决方案 > EJS View 不在 PDF-HTML 中呈现静态文件

问题描述

我有一些问题要解决,也许有人可以帮帮我。

我有一个 ejs 页面,里面有带有静态路由的图像。我需要使用 html-pdf 节点模块将此 ejs 文件转换为 PDF。那是正确的,但是,没有呈现静态文件。

当我使用确切的文件但直接渲染到浏览器时,从 app.js 调用它,它工作得很好。

这是它工作时的案例​​用法:

app.use("/public", express.static(path.join(__dirname, "../public")))
app.set("views", path.join(__dirname, "views"))
app.set("view engine", "ejs")

app.get("/", function (req, res) {
  res.render("control", body_values)
})

当我调用 ejs 文件转换为 PDF 时:

exports.print = async (URL, title, textFields, options) => {
  const createPDF = (file, options) =>
    new Promise((resolve, reject) => {
      pdf
        .create(ejsData, options)
        .toFile("./temp/" + title + ".pdf", async (err, res) => {
          if (err !== null) {
            reject(err)
          } else {
            resolve(res.filename)
          }
        })
    })
  const file = path.resolve(__dirname, URL)
  const fileString = fs.readFileSync(file).toString()
  const ejsData = ejs.render(fileString, textFields)
  return await createPDF(file, options)
}

上面的代码将创建 PDF 文件并正确传递所有值,但不会在 public 中呈现静态文件

标签: node.js

解决方案


推荐阅读