标签: node-html-pdf

节点 html-pdf 自动配置失败

我有一个使用 html-pdf 包的简单项目,我想用以下代码制作一个简单的 pdf 文件:

...
    pdf.create(html).toStream(function(err, stream){
            if (err) reject(err) ;
            else  stream.pipe(fs.createWriteStream(path.join(__dirname, '../../../assets/docs/idv_docs/')+data.link+'.pdf'));
          });
...
Run Code Online (Sandbox Code Playgroud)

但我收到此错误消息:

Error: html-pdf: Received the exit code '1'

    cc-server_1  | Auto configuration failed
    cc-server_1  | 139666354437760:error:25066067:DSO support routines:DLFCN_LOAD:could not load the shared library:dso_dlfcn.c:185:filename(libssl_conf.so): libssl_conf.so: cannot open shared object file: No such file or directory
    cc-server_1  | 139666354437760:error:25070067:DSO support routines:DSO_load:could not load the shared library:dso_lib.c:244:
    cc-server_1  | 139666354437760:error:0E07506E:configuration file routines:MODULE_LOAD_DSO:error loading dso:conf_mod.c:285:module=ssl_conf, path=ssl_conf
    cc-server_1  | 139666354437760:error:0E076071:configuration file routines:MODULE_RUN:unknown module name:conf_mod.c:222:module=ssl_conf
    cc-server_1  |
    cc-server_1  | …
Run Code Online (Sandbox Code Playgroud)

node.js html-pdf node-html-pdf

17
推荐指数
3
解决办法
1万
查看次数

html-pdf: 无法加载 PhantomJS 模块。使用 aws ec2 时,必须使用“options.phantomPath”设置 PhantomJS 二进制文件的路径

我有 EC2 实例在 aws 中运行。当我部署到服务器后。一切正常,直到我检查 html-pdf。每次我点击 api 创建 pdf 时,我都会检查日志,结果是:

在此输入图像描述

我已经尝试使用npm uninstall html-pdf卸载 html pdf,然后使用npm install html-pdf再次安装

我已经尝试使用npm link phantomjs-prebuilt但仍然有相同的结果。当我检查当地一切工作正常时,是否有人遇到这样的相同问题并且已经解决?谢谢!

*更新:

我已经尝试全局安装 phantomjs,并使用以下命令设置幻像路径:

"phantomPath":"../../../../../usr/local/lib/node_modules/phantomjs-prebuilt/bin/phantomjs"
Run Code Online (Sandbox Code Playgroud)

我从节点模块获得的路径:

在此输入图像描述

这是我的代码:

createOwn: async function (req, res, next) {
      try {
          const owner = await getOwnership(req.params.id);
          const name = await Date.now();
          ejs.renderFile(path.join(__dirname, './template', "own.template.ejs"), { own: owner, moment: moment, }, (err, data) => {
              if (err) {
                  console.log(err);
                  return res.status(500).json({ status: "error", data: err });
              } else {
                  let options = …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 node.js phantomjs node-html-pdf

8
推荐指数
1
解决办法
1万
查看次数

Ubuntu上的node-html-pdf businesscard示例

我试图在Ubuntu 16.04上使用node-html-pdf(https://github.com/marcbachmann/node-html-pdf)节点模块,并已开始使用给定的businesscard示例.

很遗憾,我无法生成此PDF.

首先,我在本地安装了模块.

然后我将businesscard.html和image.png复制到我的项目中,并尝试执行以下代码而不进行任何更改:

var fs = require('fs');
var pdf = require('html-pdf');
var html = fs.readFileSync('./test/businesscard.html', 'utf8');
var options = { format: 'Letter' };

pdf.create(html, options).toFile('./businesscard.pdf', function(err, res) {
  if (err) return console.log(err);
  console.log(res); // { filename: '/app/businesscard.pdf' }
});
Run Code Online (Sandbox Code Playgroud)

结果是一个带有2个黑页的PDF(ok),带有正确的文本,但格式要大得多,字体不对,我无法在其中获取图像.

看起来像一些基本配置,缺少路径或类似...

有线索吗?

html pdf node.js node-html-pdf

7
推荐指数
1
解决办法
249
查看次数

带有 html-pdf 的 AWS Lambda 上的“错误错误:写入 EPIPE”

我编写了一个 NodeJS 类,它应该从 html 字符串中创建一个 PDF 文件。该类部署在 AWS Lambda 上。它基于 html-pdf ( https://www.npmjs.com/package/html-pdf )。

const {readFileSync} = require('fs');
const pdf = require('html-pdf');

process.env['PATH'] = process.env['PATH'] + ':' + process.env['LAMBDA_TASK_ROOT'];

const options = { format: 'Letter' };

const createPDF = async (fileName, data) => {

    let text = readFileSync('./templates/' + fileName + '.html','utf8');

    data.forEach(element => {
        text = text.replace("{{{" + element[0] + "}}}",element[1]);
    });

    console.log(text);

    return new Promise(function(resolve, reject) {
        pdf.create(text, options).toBuffer(function (err, buffer) {
            if (!err)
                resolve(buffer);
            else
                console.log(buffer)
        }); …
Run Code Online (Sandbox Code Playgroud)

pdf node.js aws-lambda html-pdf node-html-pdf

6
推荐指数
0
解决办法
807
查看次数

与 css flex-box 兼容的 html-pdf 转换器

我正在尝试将 html 模板代码中的 pdf 放在一起。我遇到的问题是我尝试过的 html-pdf 转换器没有正确格式化 css,我猜它们还与 css flex-box 不兼容。

我研究了两种方法:

  1. 在 Node.js 上使用 html-pdf 包

  2. 在python中使用jinja2、pdfkit和wkhtmltopdf

这两种方法都允许我对 html 进行模板化并从 html 动态构建 pdf,但 css 转换不能 100% 工作(css flex-box 失败)。

关于可以处理css flex-box的html到pdf转换器的任何想法?或者,有没有人知道上述方法的任何修复程序,以便他们可以处理 css flex-box?只想从 css flex-box 样式的 html 制作 pdf。

谢谢!

html css pdfkit html-pdf node-html-pdf

5
推荐指数
1
解决办法
720
查看次数

错误:html-pdf:在 lambda nodejs 中收到退出代码“127”

我在我的 lambda 函数中使用“html-pdf”模块。下面是我的代码

            await pdf.create(html, options).toStream(async function (err, stream) {
             if(err) {
               return err;
             }
            let fileName = NAME_OF_FILE;
            let key = KEY;
            let data = await s3Upload(key, stream) // function to upload to s3
        });
Run Code Online (Sandbox Code Playgroud)

代码在本地似乎运行良好。但是在 lambda 中我收到了这个错误

错误:html-pdf:收到退出代码“127”/var/task/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs:加载共享库时出错:libfontconfig.so.1:无法打开共享对象文件:无此文件或目录

有任何想法吗 ?提前致谢!

javascript lambda node.js html-pdf node-html-pdf

1
推荐指数
1
解决办法
913
查看次数

本地使用 html-pdf 与在线使用 html-pdf 时文本大小会发生变化

我实际上使用 Node js 和html-pdf lib 在服务器上生成 pdf,并将其作为 blob 返回给客户端。当我在本地计算机上执行此操作时,一切都很好,但是当我将其上传到服务器并进行测试时。生产时文本大小会增加。

我创建了一个将对象作为参数的函数:

async function generatePDF(object) {
  let htmlContent = `
  <!DOCTYPE html>
<html>
  <head>
  <meta charset="UTF-8">
    <style>
      body,
      html {
        font-family: arial, sans-serif;
        color: rgb(46, 46, 46);
      }
    </style>
  </head>
  <body>
  <br />
  Date: ${object.todayDate}

  <div style="margin-top: 60px">
    <h3 style="border-top: 1px solid black">Dr. ${object.name} ${object.firstname}</h3>
  </div>
</html>
`;
Run Code Online (Sandbox Code Playgroud)

下面是从创建的 HTML 文件生成 PDF 的代码:

    let sideMargin = "1.5cm";
    var options = {
      format: "A5",
      border: {
        top: "1.5cm", // default is 0, …
Run Code Online (Sandbox Code Playgroud)

node.js express node-html-pdf

1
推荐指数
1
解决办法
2711
查看次数