标签: 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 或 PNG,无需 NodeJS 中的无头浏览器实例

长话短说:

  1. NodeJS 中将 HTML 转换为 PDF 或 PNG 而不使用任何无头浏览器实例的任何建议。
  2. 任何人都可以在任何生产环境中使用 puppeteer。我想知道在产品中运行无头浏览器的资源利用率和性能如何。

更长的版本:

在 NodeJS 服务器中,我们需要根据请求参数将 HTML 字符串转换为 PDF 或 PNG。我们正在使用 puppeteer 生成部署在谷歌云功能中的 PDF 和 PNG(屏幕截图)。在我本地的 Docker 中运行此应用程序并将内存使用量限制为 100MB,这似乎有效。但是在云函数中,当我们将云函数设置为250MB内存时,它会抛出内存限制异常。作为临时解决方案,我们将云功能升级到 1 GB。

我们希望在没有任何无头浏览器方法的情况下尝试 puppeteer 的任何替代方案。另一个库 PDF-Kit 看起来不错,但它有 canvas api 类型的输入。我们不能直接提供 html。

对此有任何想法或意见

html pdfkit node.js html-pdf puppeteer

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

AWS Lambda的Unicode字符集问题

我正在使用AWS Lambda生成pdf,其中html-pdf是npm包.一切都完美无瑕,但问题在于Hindi性格.这些角色显得胡言乱语,可以理解,如附图中所示.在此输入图像描述

使用的包

  1. HTML,PDF格式
  2. EJS

我试过的事情:

我在我的本地机器上使用了基于nodejs的相同代码,它按预期工作.但不适用于Lambda(nodejs v6.10/8.10)

amazon-web-services node.js aws-sdk aws-lambda html-pdf

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

如何使用给定的模板生成 PDF,并在 AWS 上部署 Python 或 NodeJS 中的动态数据

在 Python(首选)或 NodeJS 中寻找可以从动态 html 模板生成 pdf 文件的库的推荐,以便在 AWS 中运行。要求是生成发票pdf发送给客户。

遇到过以下 2 个 Node 库:

  • PDF工具包
  • jsPDF

这里我们可能需要处理 X 和 Y 的数字。

更好的方法是我们可以简单地使用 html/css 生成带有占位符的模板,这些占位符可以替换为动态数据(来自数据库查询)。任何建议,将不胜感激。

谢谢!

python node.js wkhtmltopdf python-3.x html-pdf

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

带有 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
查看次数

AWS lambda html-pdf phantomjs 在 NodeJS 12.x 上“错误:写入 EPIPE”

我一直在使用 html-pdf (phantomjs) 在 AWS Lambda 上使用 NodeJS 8.0 创建 PDF,并且工作正常。由于 AWS Lambda 已停止对 NodeJS 8.0 的支持,我们已将 NodeJS 版本更新到最新的 12.x,现在在运行 PDF Lambda 函数时出现以下错误:

{"errorType":"Error","errorMessage":"write EPIPE","code":"EPIPE","errno":"EPIPE","syscall":"write","stack":["Error: write EPIPE"," at afterWriteDispatched (internal/stream_base_commons.js:154:25)"," at writeGeneric (internal/stream_base_commons.js:145:3)"," at Socket._writeGeneric (net.js:784:11)"," at Socket._write (net.js:796:8)"," at doWrite (_stream_writable.js:403:12)"," at writeOrBuffer (_stream_writable.js:387:5)"," at Socket.Writable.write (_stream_writable.js:318:11)"," at PDF.PdfExec [as exec] (/var/task/node_modules/html-pdf/lib/pdf.js:141:15)"," at PDF.PdfToBuffer [as toBuffer] (/var/task/node_modules/html-pdf/lib/pdf.js:44:8)"," at /var/task/index.js:121:38"]}

phantomPath: './phantomjs_lambda/phantomjs'
Run Code Online (Sandbox Code Playgroud)
process.env.FONTCONFIG_PATH='/var/task/fonts'
Run Code Online (Sandbox Code Playgroud)

我尝试在 StackOverflow 中检查类似的问题。我已经正确地指出了 phantomjs 路径,并且还设置了 fontconfig。我们现在陷入困境,因为无法更新 Lambda 函数。任何帮助将不胜感激。

更新:更改了 phantomjs 二进制文件的路径:

phantomPath: './node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs'

更改 phantomjs 二进制文件的路径后,错误已更改为:

{"errorType":"Error","errorMessage":"write …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services node.js phantomjs aws-lambda html-pdf

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

与 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 创建 pdf 时出错

尝试在节点 js 中使用 html-pdf 生成 pdf,但在某些记录后出现以下错误:

TypeError: Cannot read property 'on' of undefined`

events.js:183
      throw er; // Unhandled 'error' event
      ^
Error: spawn /usr/local/lib/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs EAGAIN
Run Code Online (Sandbox Code Playgroud)

代码:

    const filePathName = path.join(__dirname, '../../../views/', "invoice.ejs");
    const htmlString = fs.readFileSync(filePathName).toString();
    let options = { format: 'Letter',"timeout": 600000 };
    const ejsData = ejs.render(htmlString, data);

    return pdf.create(ejsData, options).toFile(path.join(__dirname, '../../../tmp/', data.filename), (err, response) => {
      if (err) return console.log('err',err);
      return response;
    });
Run Code Online (Sandbox Code Playgroud)

ejs node.js phantomjs html-pdf

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

错误: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
查看次数

在heroku 上运行的nodejs 应用程序出错。(html-pdf)

我正在使用库html-pdf渲染 pdf,然后通过电子邮件发送文件。它在本地主机上就像一个魅力

pdf.create(html, {format: 'A4'}).toFile(`./public/invoices/${order.id}.pdf`, (err, res) => {
            if (err) return console.log(err);
        });
Run Code Online (Sandbox Code Playgroud)

目前我在 Heroku 上托管 Nodejs。在 pdf.create() 执行之前它工作正常。出现此错误:

2022-08-25T21:32:13.925568+00:00 app[web.1]: Auto configuration failed
2022-08-25T21:32:13.925570+00:00 app[web.1]: 139861897091008:error:25066067:DSO support routines:DLFCN_LOAD:could not load the shared library:dso_dlfcn.c:185:filename(libproviders.so): libproviders.so: cannot open shared object file: No such file or directory
2022-08-25T21:32:13.925571+00:00 app[web.1]: 139861897091008:error:25070067:DSO support routines:DSO_load:could not load the shared library:dso_lib.c:244:
2022-08-25T21:32:13.925572+00:00 app[web.1]: 139861897091008:error:0E07506E:configuration file routines:MODULE_LOAD_DSO:error loading dso:conf_mod.c:285:module=providers, path=providers
2022-08-25T21:32:13.925573+00:00 app[web.1]: 139861897091008:error:0E076071:configuration file routines:MODULE_RUN:unknown module name:conf_mod.c:222:module=providers
2022-08-25T21:32:13.925574+00:00 app[web.1]: 
2022-08-25T21:32:13.925575+00:00 app[web.1]:     at ChildProcess.respond (/app/node_modules/html-pdf/lib/pdf.js:134:17) …
Run Code Online (Sandbox Code Playgroud)

javascript pdf heroku node.js html-pdf

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