生成与操纵木偶的PDF没有保存

编程入门 行业动态 更新时间:2024-10-10 02:16:02

生成与操纵<a href=https://www.elefans.com/category/jswz/34/1770299.html style=木偶的PDF没有保存"/>

生成与操纵木偶的PDF没有保存

我有node.js编写的应用程序托管在heroku和我的前端应用程序是用Vue.js,它是hostinger。我想知道,如果是有可能产生与操纵木偶的PDF文件,并立即将其发送给客户端前端没有把它保存到磁盘第一?如果是的话,你可以给我如何做它的一些例子吗?

目前,我的职责是这样的:

exports.gerarPDFAvaliacao = async (dadosAvaliacao) => {
    try {
        const compile = async (fileName, data) => {

            const filePath = path.join(process.cwd(), 'src/templates/client/operation/', `${fileName}.hbs`);
            const html = await fs.readFile(filePath, 'utf-8');
            return await hbspile(html)(data);
        }

        const browser = await puppeteer.launch();
        const page = await browser.newPage();

        let content = await compile('avaliations', dadosAvaliacao);

        await page.goto(`data:text/html,${content}`, { waitUntil: 'networkidle0' });
        await page.emulateMedia('screen');
        await page.pdf({
            path: 'src/dist/pdf/' + dadosAvaliacao.arquivo + '.pdf',
            format: 'A4',
            printBackground: true
        })
        await browser.close();

        return dadosAvaliacao.arquivo + '.pdf';
    } catch (error) {
        console.log('Errors => ', error);
    }
};
回答如下:

据official documentation,如果你不提供路径的文件将不会被保存到磁盘。

page.pdf(选择):选择对象,它可能具有以下属性:路径的文件路径PDF保存。如果路径是相对路径,则相对于当前工作目录解析。如果没有提供路径,PDF将不会被保存到磁盘。

这意味着它应该返回类似的缓冲区或生成的文件的二进制表示。你只需要到或管道返回到响应,这取决于你所使用的架构。

这只是输出PDF到控制台:

const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example');

console.log(await page.content());
const pdf = await page.pdf();

await browser.close();
console.log(pdf) // maybe do response(pdf).type('x-pdf')

编辑:这是使用快递和操纵傀儡直接在内存中返回PDF内容一个完整的例子。它运行在runkit,所以我想的一样限制应用(甚至更多)。如果您导航到的例子有,你可以看到浏览器是如何检测到它是一个PDF文件,并可以正确显示,它的公共端点。

  • 公共网址:https://puppeteer-express-pdf-export-w3o8ip7k207y.runkit.sh/
  • Runkit笔记本:https://runkit/danielo515/puppeteer-express-pdf-export

const puppeteer = require ('puppeteer');
const express = require('express');
var app = express(exports);
const browser = await puppeteer.launch();

const main = async () => {

    const page = await browser.newPage();
    await page.goto('https://example');

    const pdf = await page.pdf();
    return pdf;
 }


app.get('/', async function (req, res) {
        const pdf = await main();
        res.contentType("application/pdf");
        res.send(pdf);
});

app.listen(3000, function(){ console.log('Listening on 3000') });

更多推荐

生成与操纵木偶的PDF没有保存

本文发布于:2024-05-06 17:47:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1753626.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:木偶   PDF

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!