node.js - 如何使用外部样式和字体渲染 ejs 文件?
问题描述
我在尝试编写 pdf 生成器 node.js 应用程序时遇到了麻烦。它使用数据渲染 ejs 模板,然后以 base64 格式发送 pdf 文件作为响应。要将 html 转换为 pdf,请使用 html-pdf-chrome 和 chromium。我的问题如下:
启动应用程序的服务器后,我在浏览器中转到 localhost:3000/path。在渲染它时调用我的函数,这没关系。但是在
ejs.renderFile('path/to/file.ejs',options, cb())
我得到了所有内容,但它没有加载样式和图像。
我需要类似的东西
compileEjsFile->sendHtmlStringToConvert->saveFile->convertToBase64AndSend.
是否有可能从中获得完整的网站(带有渲染样式和图像)ejs.renderFile()
?有什么不同的方法吗?
我知道有一个选项可以在渲染后传递整个 css,但不幸的是必须添加我自己的字体并且不知道如何正确执行。
在file.ejs
通往风格的道路上是这样的
<link href="stylesheets/style.css" rel="stylesheet" type="text/css">
应用程序树如下所示:
- pdf (output pdf directory)
- public
- - stylesheets
- - - style.css
- views
- - file.ejs
- routes
- - documents.js (here is route that handles request)
- tools
- - generator.js (here im invoking `ejs.renderfile`)
解决方案
推荐阅读
- c++ - 唯一指针和双重列表:插入问题
- c# - 为什么在我的 C# 代码中 MD5 会比 SHA256 慢?
- c# - 在 asp.net mvc 中不显示 ajax 调用的图像列表
- amazon-web-services - 我可以使用 AWS Lambda 来满足我的要求吗?
- python-3.x - 部署时找不到 Heroku 命令
- mysql - mysql 加入 3 个表,但“COUNT”重复
- android - 如何将 URI 转换为文件 Android 10
- javascript - 如何在 JavaScript/HTML 中一次又一次地重复数组列表中的项目
- javascript - React - React Router Dom,hashbang 路由解决方案
- python - Python 神经网络 - 检查输入时出错:预期 conv2d_1_input 有 4 个维度,但得到了形状为 (700、128、33) 的数组