问题标签 [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 回答
11571 浏览

node.js - PDFKit - 在中心定位图像

在 node.js 上使用PDFKit

如何使添加到 PDF 的图像居中?

使用 PDFKit 是可选的还是我需要使用另一个库?

0 投票
1 回答
515 浏览

node.js - PDFKit/Nodejs 注释

我正在尝试使用来自http://pdfkit.org/的 PDFKit ,我的用例更高级我想在用户单击链接或按钮时向 PDF 注入一些 javascript,我想显示带有一些信息的弹出窗口小部件选择喜欢的下拉列表。另外我正在寻找一些文本框,来自服务器端的日期注释。有没有可能用这个库来实现

谢谢

0 投票
1 回答
2860 浏览

python - 在python中将html字符串保存为PDF

我有一个 html 字符串,我想在 python 中存储为 PDF 文件。我为此目的使用PDFkit 。下面是我为此尝试的代码。在下面的代码中,我还尝试通过龙卷风服务器提供图像。

我已经在 E 盘安装了 wkhtmltopdf。我遇到了一个例外,

虽然我愿意使用任何其他软件包。我也想知道我做错了什么。

0 投票
1 回答
3590 浏览

node.js - How use async functions with node-pdfkit?

I am trying to create a PDF file with PDFKit. I insert an image with like this:

and it is working like expected. But now want the image be trimmed and I found GraphicsMagick for node.js. But the problem that I have is to make it work with PDFKit. doc.image expects a filename or a buffer, but since I already have a buffer I want to work with buffers (there is no file anywhere because the buffer comes directly from the database).

The trimming works like this:

UPDATE:

For clarification: I want to be able to use the asynchronous trimmed image in the synchronous code for PDFKit. PDFKit only works synchronously and gm doesn't offer a synchronous interface.

UPDATE2:

After the last line in this example there are a lot more lines of code which add content to the PDF, but I don't want to put everything (couple of hundred lines) in one callback just because I need on asynchronous function to manipulate the image.

Is there any way to make this manipulation synchronous?

0 投票
1 回答
2349 浏览

javascript - 在 node.js 中使用 pdfkit 以任何语言呈现文本

我正在使用 pdfkit 在 nodewebkit 应用程序中动态生成 PDF 文档。PDF 包含通过 HTTP 请求来自远程源的人们的评论。

它工作得非常好,但是现在我发现当评论是日文、中文、阿拉伯文等时,它不能正确呈现,而且我无法知道评论将以什么语言出现——事实上我是从世界各地收集他们。

我知道我需要使用应该包含正确字符的正确字体,如此所述。我发现了这个“google noto”开放字体,它拥有一切,但问题是没有一个包含所有语言的 TTF 文件,而且字体文件不能限制为 65K 字形。

我正在尝试找到一种解决方案,它可以使用 pdfkit 在 PDF 中以(几乎)任何语言呈现文本,而无需编写复杂的语言识别工具,我觉得这有点过头了。

任何想法和建议将不胜感激。

更新:使用pdfkit 的作者的字体管理器来替换字体。此外,您可能想尝试 phantomJS——不过我还没有这样做。如果您有同样的问题,请在评论中查看@levi 的详细回复。希望能帮助到你。

0 投票
1 回答
4743 浏览

javascript - PDFKit:PNG的未知图像格式错误

我在浏览器中使用PDFKit的预构建版本,尝试添加 PNG 时出现以下错误:

我在服务器上将我的图像转换为 PNG(将它们裁剪成圆圈),服务器返回的图像的 mime 类型是“image/png”。我不确定我用来将 PNG 转换为 ArrayBuffer 的方法是否不正确。

这是我用来获取 PNG 并将其转换为 ArrayBuffer 的代码:

当这条线从

但是我需要能够传入 PNG,以便可以将圆形图像放置在任何背景上。

我也尝试过传入完整的 url(例如' http://mysite.dev/userimages/1234/roundavatar.png '),但是我遇到了以下错误:


有没有人通过浏览器成功地将 PNG 添加到 PDFkit,如果是,你使用了什么方法?

0 投票
2 回答
2241 浏览

node.js - How to pipe image from request to pdfkit in node.js?

First off, I am a total newbie both to Javascript and Node.js, so sorry if my question is stupid.

I am trying to scrape text and images off a website and export it to a pdf using request, cheerio and pdfkit, but I'm having problems.

I am able to scrape the images and save them locally using this:

BUT! Here's the problem:

1. INTENT: When I try to write the files to the pdf using

all I get is

0.jpg is 0 bytes, so I suspect there is a timing issue here?

2. INTENT

I tried to use .pipe instead of saving locally:

But all I get is:

Any idea how to fix this or to solve the problem in any other way?

Here's the whole script:

0 投票
1 回答
952 浏览

node.js - 使用nodejs将下载的图像写入pdfkit

我正在尝试使用对 pdfkit 的请求来编写从网站上抓取和下载的图像。

问题是,没有图像被添加到 pdf 中:-(

这是我收到的错误消息:

知道如何解决这个问题吗?

0 投票
1 回答
2308 浏览

node.js - 节点无法通过管道传输 pdf 响应

尝试编写一个测试(mocha)来检查从我的 api 端点返回的 PDF 是否包含正确的数据并且看起来应该。PDF 在服务器上生成。手动命中端点时它返回“正确”,但想编写一些测试。我上传了一个示例“正确”PDF 到我的测试套件,我可以用鹰嘴豆泥 js 解析它并提取必要的方面进行比较。

我想向我的端点(使用超级代理)发出请求,然后将响应(pdf)通过管道传输到临时 pdf 中。然后我将解析两个 PDF(上传的完美文件和从我的端点返回的文件)并确保它们匹配。

我的请求代码:

当我运行测试时,我得到:未捕获的错误:无法管道。不可读。我对节点很陌生,所以我不确定是什么导致了错误。当我安慰 res 时,我得到一个大的二进制编码的混乱,所以也许这就是问题所在?我尝试了几件事 - 使用鹰嘴豆泥 pdfWriter,尝试用

新缓冲区(res,'base64')

等等......但仍然没有运气。我相信我已经为这些操作安装了所有必要的软件包,这似乎是一个管道/解码/超级代理问题。谢谢您的帮助!

编辑:我误解了管道。您可以简单地将响应写入文件:

在这种情况下转换为 ascii。我现在更近了,但仍然挂在编码片上。这将创建一个空白 PDF。当我以崇高的方式观察文件内容时,它们似乎与我要比较的 PDF 相同,但编码不同。有人知道如何匹配原始 PDF 的编码或弄清楚它是如何编码的吗?或者如果这甚至是可能的?我使用 PDFkit 构建 PDF。

0 投票
1 回答
2553 浏览

javascript - 如何从 CollectionFS 获取文件(图像)的缓冲区

我正在尝试将图像插入到我正在使用 PDFkit 创建服务器端的 pdf 中。我正在使用 cfs:dropbox 来存储我的文件。在我使用 cvs:filesystem 之前,很容易将图像添加到我的 pdf 文件中,因为它们就在那里。现在它们已远程存储,我不确定如何添加它们,因为 PDFkit 不支持仅使用 url 添加图像。但是,它将接受缓冲区。如何从我的 CollectionFS 文件中获取缓冲区?

到目前为止,我有这样的事情:

到目前为止,我尝试以两种方式获取缓冲区:

首先使用 dataMan,但最后一个命令永远不会返回:

第二次手动缓冲流:

这似乎也永远不会回来。我仔细检查了我的文档以确保它在那里并且它具有有效的 url,并且当我将 url 放入浏览器中时图像会出现。我错过了什么吗?