pdfMake - 无法打开文件

2024-01-10

我在 Nodejs 上使用了这个模块:https://github.com/bpampuch/pdfmake https://github.com/bpampuch/pdfmake

这是我创建它的代码:

    const fonts = {
    Roboto: {
        normal: './fonts/Roboto-Regular.ttf',
        bold: './fonts/Roboto-Medium.ttf',
        italics: './fonts/Roboto-Italic.ttf',
        bolditalics: './fonts/Roboto-Italic.ttf'
    }
};

let PdfPrinter = require('pdfmake/src/printer');
let printer = new PdfPrinter(fonts);
let fs = require('fs');


module.exports.generateFile = function (data,callback) {

    let fileName = "Logins_" + data[0]["userLogin"] + ".pdf";
    let filePath = __dirname + "/files/" + fileName;

    let logins = [ ['userLogin', 'softwarePassword', 'softwareName'] ];
    for (let obj of data) {
        let arr = [];
        for(let x in obj){
            arr.push(obj[x]);
        }
        logins.push(arr);
    }

    let docDefinition = {
        content: [
            {
                table: {
                    // headers are automatically repeated if the table spans over multiple pages
                    // you can declare how many rows should be treated as headers
                    headerRows: 1,
                    widths: [ '*', 'auto', 100, '*' ],

                    body: logins
                }
            }
        ]
    };

    try {

        let chunks = [];
        let result;

        let doc = printer.createPdfKitDocument(docDefinition);
        doc.pipe(fs.createWriteStream(filePath));
        doc.end();
        callback(null,fileName,filePath)
    } catch (err){
        callback(err);
    }
    };

我得到这个屏幕:

大家有什么想法吗? 在回调中,我使用 res.download 以及文件名和文件路径。 我尝试了一切


在本地和节点服务器上测试的工作解决方案

Why pdfmake无法打开文件是因为文件流fs仍在写入内存块,这使其无法读取,并且下载的 PDF 将被损坏,大小为 0KB。

解决方案:添加事件监听器fs.createWriteSteam并等待fs完成写入然后发送文件。

var temp123;
pdfDoc.pipe(temp123 = fs.createWriteStream('./PDF/' + name), { encoding:'utf16' });

pdfDoc.end();

temp123.on('finish', async function () {
  // do send PDF file 
  res.download('name.pdf');
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pdfMake - 无法打开文件 的相关文章

  • Node.js 重写 toString

    我试图覆盖我的对象的默认 toString 方法 这是代码和问题 function test this code 0 later on I will set these this name test prototype toString f
  • 节点无法抓取某些页面

    我不知道这是否与冷融合页面有关 但我无法刮掉这些 cfm pages 在目录中的命令行中request run node gt var request require request node gt var url http linguis
  • firebase 和 firebase-admin npm 模块有什么区别?

    我想使用 Firebase 身份验证 数据库和存储 构建 Node js Web 应用程序 但我对应该使用哪个模块感到困惑 firebase or firebase 管理员 或两者 管理 SDK 运行您的代码管理权限 https fireb
  • 下载中带有文件名的 NodeJS sendFile

    我尝试使用以下代码将文件发送给客户端 router get get myfile function req res next res sendFile other file name dat 它工作正常 但当用户从以下网址下载此文件时我需要
  • 如何从 pdf C# 中获取具有特定颜色的文本

    我必须将 pdf 文件中的数据放入特定的数据库结构中 这要求我能够从 pdf 文件中获取某些数据 由于 pdf 没有任何标签等 我想知道是否可以根据颜色获取文本 比如说我想要所有的红色文本 或者我想要文档中的所有斜体文本 这在 C 中可能吗
  • 在heroku上部署时出错,/bin/sh: 1: webpack: not found

    这是我在 heroku 网站上手动部署时遇到的错误 首先 我在 json 文件中遇到错误 因此我指定了正在运行的 npm yarn 和 node 版本 这些错误似乎已经清除 现在我就是这样的人 并且已经搜索了谷歌 但似乎找不到太多关于修复它
  • 如何配置 Google 计算引擎以对 Nodejs 服务器使用 HTTPS?

    我想使用 https SSL 在 google 计算引擎中运行 nodejs 和 socket io 服务器 我安装了自签名证书https cloud google com compute docs load balancing http
  • 使用 Sequelize 实现单表继承

    有没有办法使用sequelize来创建单表继承 我希望有一个用于购买和 PartialPurchase 模型的 STI 其中我将有一个类型字段 该字段为 Purchase 或 PartialPurchase 以及类 Purchasing 和
  • 如何检查请求是否通过 Express 中的 https 发送

    我想强制某些路线始终在我的 Express 应用程序中使用安全连接 我如何检查以确保它使用 https 我在 heroku 上使用搭载 ssl 进行部署 我也在 Heroku 上部署 当他们使用 nginx 进行反向代理时 他们添加了一堆标
  • 通过 node-http-proxy 保留基于 cookie 的会话

    我有一个简单的基于 Express 的 Node js Web 服务器 用于开发 JavaScript 应用程序 我将服务器设置为使用 node http proxy 来代理应用程序向在不同域和端口上运行的 Jetty 服务器发出的 API
  • 未捕获的错误:找不到模块“jquery”

    我在用Electron https github com atom electron制作桌面应用程序 在我的应用程序中 我正在加载一个外部站点 Atom 应用程序之外 可以说http mydummysite index html http
  • Nodejs mysql 获取正确的时间戳格式

    我在用着mysqljs https github com mysqljs mysql得到结果后sql我变得不同TimeStamp格式如下 created at Sat Jul 16 2016 23 52 54 GMT 0430 IRDT 但
  • 如何在 Node.js 中进行多个 API 调用并在每次调用之间有延迟

    我的目标是对数据列表进行多个 api 调用 假设我有以下代码 const axios require axios const axiosRequests const strings a b c for let str of strings
  • 建立 TCP 连接边界的正确方法

    我的问题是关于如何正确处理使用 tcp 连接接收的数据 事实上 通过建立 tcp 连接 创建了一个流 假设我想发送一条有开头和结尾的消息 由于数据在流中流动而没有指定任何边界 我如何识别消息的开始和结束 我想在消息的开头和结尾处放置一些特殊
  • NodeJs 永远无法在 ubuntu 服务器中工作

    我安装了forever https www npmjs org package forever作为超级用户在我的 ubuntu 服务器中全局使用 npm 模块 但我无法使用它启动我的nodeJs 应用程序 我在终端中输入 永远 但似乎没有执
  • 除 .spec.js 之外的每个 .js 文件的节点 glob 模式

    我正在寻找更好的全局模式以供使用 我想找到所有 js文件但排除 spec js文件 到目前为止我有以下解决方案 我目前拥有的解决方案要求我不断添加文件扩展名以排除它们 否则它们会被拾取 例如 html files 我试图让它只寻找 js文件
  • 使用 Node.js mongodb 本机调用 db.destroyDatabase 时,什么可能导致“拓扑被破坏”错误?

    我正在使用 Node js Mongodb 本机驱动程序运行一些集成测试 每个测试都涉及连接到数据库 验证它是否尚不存在 例如 没有任何带有文档的集合 运行测试 然后删除数据库 高级代码如下 const runSafeTest functi
  • 在应用程序服务器上存储 PDF 一段有限的时间并可供下载

    您好 我正在使用 PrimeFaces 5 JSF 2 和 tomcat 有人可以向我展示或给我一个关于如何在应用程序服务器上在有限时间内存储 pdf 的想法吗 我正在使用 tomcat 然后下载它 如果这是用户请求的 此功能与发票相关 因
  • Node + Express 会话过期?

    我有一个 Express 应用程序 并且有一个登录表单 我需要持续 1 个月的会话 我是否将 maxAge 设置为一个月 以毫秒为单位 我让两台计算机保持打开状态并登录了 24 小时 当我回来时 两台计算机都已注销 我该如何解决这个问题 实
  • Node.js 可读流_read用法

    我了解如何在 Node 的 new 中使用可写流Streams2库 但我不明白如何使用可读流 举个例子 一个流包装器围绕dgram module var dgram require dgram var thumbs twiddle func

随机推荐

  • 安装 OpenCV for Python(多个 python 版本)

    我的机器上安装了两个不同版本的 python 2 4 和 2 7 我正在尝试安装 2 7 版本的 OpenCV 2 4 5 cmake D CMAKE BUILD TYPE RELEASE D CMAKE INSTALL PREFIX us
  • Swift 中的 For 循环

    突然 我在Apple文档中学到的for循环结构停止工作 它显示一个错误 预期声明 谁能告诉我新语法是什么 let CirclePoints 84 var circlePoint 0 for circlePoint in 0
  • 合并树结构中分支的模式或算法?

    我正在尝试将 DAG 有向无环图 映射到下面显示的结构中 这是我开始的 DAG 的示例 其中弧线总是从左向右 然后 我恢复该图并将其跨越到具有重复节点的树中 如下所示 我正在寻找的是一些算法或模式来实现以下合并结构 注意再次恢复 目标是生成
  • Angular 应用程序无法在 Azure 上找到资产文件

    我刚刚通过运行 ng build prod 并将其推送到 git 将我的 Angular 应用程序部署到 azure 但收到 404 错误 指出它找不到资产文件夹中的 json 文件 我也尝试过运行 ng build prod base h
  • 如何从 Eclipse 设置 java.library.path

    我怎样才能设置java library path对于整个 Eclipse 项目 我正在使用一个依赖于操作系统特定文件的 Java 库 并且需要找到一个 dll so jnilib 但应用程序总是退出并显示一条错误消息 指出在库路径上找不到这
  • 使用 OpenCV3 进行视频中的人脸识别时出现未处理的异常 (opencv_core310.dll)

    下面的代码用于识别我从下面的链接获得的脸部 http docs opencv org 3 0 beta modules face doc facerec tutorial facerec video recognition html htt
  • Firebase:如何将视频存储在存储中,然后将视频 URL 存储在数据库中?

    这是我第一次使用 Firebase 我读到您应该将视频存储在存储中 然后将该唯一的 URL 存储在其数据库中 我将如何采取这种方法 例如 如果用户请求播放特定视频 我如何从数据库中获取 URL 然后使用该 URL 将视频从数据库中提取出来
  • 使用字符串引用时,引用 Powershell 数组索引会产生意外结果

    我试图找出为什么会发生以下情况 如果您有 arr Filename1 Filename2 for i 0 i le arr Length 1 i write host arr i write host arr i write host ar
  • 使用 AVPlayer 时保持良好的滚动性能

    我正在开发一个有集合视图的应用程序 并且集合视图的单元格可以包含视频 现在我正在使用以下方式显示视频AVPlayer and AVPlayerLayer 不幸的是 滚动性能很糟糕 这好像是AVPlayer AVPlayerItem and
  • 当图像较小时,在引导模式中垂直对齐中心

    我正在使用引导模式来显示不同尺寸的图像 我希望模态主体具有最小的宽度和高度 实际上是 600 400 因此 当图像较大时 它会扩展并运行良好 但当图像的高度低于 400 像素时 图像会在顶部 垂直 对齐 所以我想将它垂直对齐在模态主体的中间
  • gwt 的日期时间库

    我正在开发一个 gwt 应用程序 其中涉及对日期时间的高级操作 从一个时区转换到另一个时区等 Gwt 有一些用于处理日期的低级内容 但它们对我来说太低级了 gwt 是否有类似于 joda time 或 Threeten 的选项 您可以查看以
  • 如何获取 Python OrderedDict 中的前 3 个元素?

    如何获取 Python OrderedDict 中的前 3 个元素 也可以从该字典中删除数据 例如 如何获取 Python OrderedDict 中的前 3 个元素并删除其余元素 让我们创建一个简单的OrderedDict gt gt g
  • Angular2 模板解析错误:嵌入模板上的任何指令均未使用属性绑定 ngFor

    这是 Angular2 模板
  • iPad Safari 忽略 html5 视频上方的 div onclick

    我在使 div 元素可点击时遇到问题 我在屏幕上有一个 HTML5 视频 在视频结束事件之后 我使用 z index 属性创建了一些位于视频上方的 div 元素 录制这个 div 时没有任何反应 但如果这个 div 不位于视频上方 则一切正
  • Java图形库[重复]

    这个问题在这里已经有答案了 我一直在这里寻找对用于图形可视化表示的 java 库的任何引用 但我只找到了直方图 饼图等的库 我正在寻找一个图形库 带有顶点 节点等的图形库 任何人都可以推荐吗 我会和JUNG http jung source
  • 开发人员如何制作 iOS Simulator 动画 .gif? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我经常在 GitHub 上看到很多这样的内容 如何重现这个 gif 动画效果 https github com autresphere A
  • 如何使 Dart 对象/类可索引?

    在Python中 我可以通过覆盖使任何类支持索引 getitem 像这样 class Test def getitem self key return self data key Dart 是否有类似的构造 假设 getitem thing
  • 如何查看哪些查询正在使用 MongoDB 中的索引?

    我看到 MongoDB 正在使用索引 但我不确定哪些查询正在使用它 如何查看哪些查询正在使用索引 编辑 为了澄清 我想看看哪个查询使用索引 而不是相反使用explain查看特定查询使用了哪些索引 您可以运行您的查询 解释 https doc
  • WinForm 滚动查看器

    我在 WPF 中有一个使用 ScrollViewr 的应用程序 我想将其移植到 WinForms WinForms 是否有等效的控件 Reason WPF 程序很慢 我似乎无法学习如何正确渲染程序 GameOfLife 代码
  • pdfMake - 无法打开文件

    我在 Nodejs 上使用了这个模块 https github com bpampuch pdfmake https github com bpampuch pdfmake 这是我创建它的代码 const fonts Roboto norm