问题标签 [node-pdfkit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3278 浏览

node.js - 节点 PDFkit 空白页

我正在用 node.js 和这个包创建一个 PDF:https ://github.com/devongovett/pdfkit

我的问题是,当我在浏览器上下载 pdf 时,它完全是空白的……服务器端代码:

客户端代码:

抱歉英语不好,我是意大利人

0 投票
0 回答
1255 浏览

javascript - 保存 pdf 回复

我正在尝试保存我的 node.js 服务器发送的 pdf 文件。Pdf 是用pdfkit创建的。这是响应的日志:

这是我的客户代码:

和我的 node.js 代码:

请帮忙,我正在尝试一个星期。抱歉英语不好,我是意大利人。

0 投票
1 回答
1646 浏览

node-pdfkit - 使用 Noto Sans 字体时 PDFKit 损坏

我正在尝试使用PDFKit使用 Node.js 生成 pdf 。pdf 包含多种语言的文本,包括阿拉伯语和俄语,所以我尝试使用Google 的Noto Sans,但是一旦我使用该字体,布局就完全被破坏了,甚至没有显示拉丁字符:

但这就是结果。我希望日语不起作用,但没有正确显示。这是我得到的输出:

在此处输入图像描述

为日语和阿拉伯语使用特定字体可以渲染该语言,但我需要一种支持多种语言的字体,因为我正在打印一个动态表,我什至不知道需要哪些语言。

0 投票
0 回答
829 浏览

node.js - node.js中的pdf发票

我想创建一个具有动态表的 pdf 发票,即该特定表中的项目可以是 1 或 100。

现在我的问题是,如果表格的内容很大以至于不能放入单个页面,那么我需要自动添加新页面。现在我正在使用 pdfkit,它为我提供了 addPage() 函数来添加页面,但它有一些设计限制,有时很难将特定设计转换为 pdf。

我正在考虑 phantomjs 但我不确定它如何动态添加新页面

有人可以对此有更好的灵魂吗

0 投票
1 回答
1206 浏览

node.js - 将 PDF 作为响应发送给客户

我在使用 PdfKit 时遇到了一种奇怪的行为。我正在使用 Nodejs 和 Express。当我调用生成 PDF 的路线时,路线本身被调用了两次,我不明白为什么。

下面是重新创建它的最小代码:

在终端中,我有这些日志,从浏览器只刷新一次页面:

任何人都知道为什么该路线会自动再调用一次?

0 投票
0 回答
916 浏览

angularjs - Express:res.sendFile 触发文件下载失败,但没有错误

我试图弄清楚为什么我的应用程序的前端没有收到 Express 似乎认为它正在发送的文件。

该应用程序的预期行为是让用户在前端的 angular-powered 表单上单击“生成 PDF”按钮,然后让后端生成 PDF 并在完成创建后将其发送给用户。我可以确认 PDF 已成功生成,其他一切都按预期工作,但 res.sendFile 似乎无法在前端触发文件下载。

这是我用来触发下载的代码:

当我测试上面的代码时,我在控制台中收到“Sent: xxxxxxxxx.pdf”日志,这表明没有明确的错误被触发。Express 似乎认为文件已成功发送,但下载从未在浏览器中触发。遗憾的是,使用 DEBUG=express:* 标志运行 nodemon 并没有为我提供任何有关 res.sendFile 正在做什么的额外信息。

早些时候,我遇到了关于绝对文件的 TypeError,所以我输入了从服务器根目录开始的文件的绝对路径。自那次更改以来,我没有看到 Express 出现任何错误,但它似乎仍然无法正常工作。我希望这是配置绝对路径的正确方法,我认为如果路径不正确并且实际上并没有导致文件,Express 会发送一个 ENOENT 错误......对吗?

有没有人遇到过这样的事情?

如果有帮助,我尝试将 res.sendFile 替换为 res.download 而行为没有改变。

0 投票
2 回答
8064 浏览

node.js - 获取 PDFKit 作为 base64 字符串

我正在寻找一种方法来获取 PDFKit 文档的 base64 字符串表示。我找不到正确的方法来做到这一点...

像这样的东西会非常方便。

我已经尝试过使用blob-streamlib,但它在节点服务器上Blob不起作用(它说不存在)。

谢谢你的帮助!

0 投票
0 回答
512 浏览

node.js - 如何将 PDFKit 可读流传递给请求的 post 方法?

我的应用程序需要创建一个 PDF 文件,然后将其上传到另一台服务器。上传通过NPM 包中的post方法进行。request如果我传入一个,一切正常fs.createReadStream

由于 PDFKit 也实例化了读取流,因此我尝试将其直接传递到 post 参数中,如下所示:

但是,这会产生错误:

TypeError:路径必须是字符串。收到【功能】

如果我查看 PDFKit 源代码,我会看到(在 coffeescript 中):

我是流的新手,很明显我不明白这里的区别。对我来说,如果它们都是可读的流,它们都应该能够以相同的方式传递。

0 投票
1 回答
1774 浏览

javascript - 在来自 node.js 后端的浏览器中查看/下载 pdf

我正在我的节点后端生成一个 pdf,如下所示:

现在,当我调用后端并 console.log 响应时,我得到以下输出:

_body:“%PDF-1.3↵%����↵5 0 obj↵<<↵/Type /Page↵/Parent 1 0 R↵/MediaBox [0 0 612 792]↵/Contents 3 0 R↵/Resources 4 0 R↵>>↵endobj↵4 0 obj↵<<↵/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]↵/Font <<↵/F1 6 0 R↵>>↵>>↵endobj ↵7 0 obj↵<<↵/Producer (PDFKit)↵/Creator (PDFKit)↵/CreationDate (D:20160903110846Z)↵>>↵endobj↵6 0 obj↵<<↵/Type /Font↵/BaseFont / Helvetica↵/Subtype /Type1↵/Encoding /WinAnsiEncoding↵>>↵endobj↵2 0 obj↵<<↵/Type /Catalog↵/Pages 1 0 R↵>>↵endobj↵1 0 obj↵<<↵/类型 /Pages↵/Count 1↵/Kids [5 0 R]↵>>↵endobj↵3 0 obj↵<<↵/Length 106↵/Filter /FlateDecode↵>>↵stream↵x�e�1↵� @�yE�sfvw�1��L�L.:13���+�IAS]�4Rdz��I�jcy�@�a9~8��~Zm����%WKʖ=({��� ��{�4 0z�<��LS��.j。↵Dstream↵Dobj↵08。000000000000000000000000000000000000000000000446 00000n↵000000039700000N↵0000000300000300000N↵0000000000119 00000119 00000 N队↵/大小 8↵/根 2 0 R↵/信息 7 0 R↵>>↵startxref↵681↵%%EOF↵"

headers: Headers _headersMap:Map size: (...) proto : Map [1] 0: {"content-type" => Array[1]} key: "content-type" value: Array[1] 0: "应用程序/pdf“长度:1 原型:数组 [0] 原型:对象 ok:true 状态:200 statusText:“OK”类型:2 url:“ http://localhost:3000/api/submissions/generatecontract

我看到我的 PDF 在响应的正文中。但是我现在如何在浏览器中查看或下载它呢?如果这很重要,我会在前端使用 Angular2。

我发现的信息是针对以前的 angular 2 版本的。

0 投票
3 回答
6367 浏览

javascript - PDFKit - 矩形上的文本

是否可以使用 PDFKit 在矩形上呈现文本。也许可以使用hack,用不透明度填充矩形 - 但我不想那样使用它。我的文本被矩形隐藏(我通过交替使用不同颜色的矩形创建表格)。

更新

我发现文本在某种程度上与矩形颜色相同,这可能就是我看不到它的原因。但为什么 ?