Articles of node pdfkit

nodejs pdfkit将dynamic生成的PDF附加到电子邮件(Mandrill-API)

我正在使用PDFKit和NodeJSdynamic生成PDF文档,并且我想将所述文档附加到电子邮件中。 在这一刻,我通过NPM使用了Mandril-API。 我可以生成没有问题的PDF,并通过浏览器显示它: doc.pipe(res); 我可以发送电子邮件没有问题,但我已经无法获得正确的PDF内容失败。 我相当肯定,我是99%的方式 – 但我失去了一些东西。 我已经做了大量的阅读和testing使用谷歌/ StackOverflow等,但我卡住了。 我得到的内容是,当我做一个base64解码我得到: %PDF-1.3%7 0 obj << /预测15 我已经设法让我的PDF附件有一个445KB的有效大小,但这是电子邮件的内容: –_ av-Ti-H6i8tBBHL4BgoXnyC2Q Content-Type:application / pdf Content-Transfer-Encoding:base64 Content-Disposition:attachment; 文件名= “mytestPDF.pdf” PDF1370obj / Predictor15 / COLORS1 / BitsPerComponent8 / Columns100e ndobj60obj /types/ x对象/亚型/图像/ BitsPerComponent8 / WIDT H100 / Height19 /过滤/ FlateDecode / DecodeParms70R / ColorSpace中/ I ndexed / DeviceRGB25580R / […]

使用pdfkit时,我可以在同一段中混合字体大小吗?

我试图find一种方法来使用粗体字体重在pdfkit中的内联重点 不幸的是,我不能find一种方法来改变字体,而不强制换行(坏的内联强调…)。 我正在尝试像这样的东西: pdf.text('Hello ', LEFT, 200).font(bold).text('World!'); 但是这会输出 你好 世界 我也通过源头挖掘,但找不到任何选项来防止这种情况。 任何人有任何想法或解决方法来解决这个问题? 编辑 : 我现在所能想出的只是一个丑陋的黑客,看起来像这样: pdf.text('Hello ', LEFT, 200).moveUp(1).font(bold).text('World!', {indent: pdf.widthOfString('Hello ')}); 这是工作,但远没有灵活性和可维护性。

NodeJS,合并两个PDF

Hy,我有两个.pdf,我想合并它们,使用节点,我已经尝试过使用Ghostscript,并从节点执行,但GhostScript是有点bug,有时它给出了分段错误级别11,我已经研究和它的一个常见的错误。 Processing pages 1 through 2. Page 1 Page 2 Segmentation fault: 11 所以我的问题是,如果有一个模块,可以为我合并两个PDF,已经尝试PDFMake和PDFKit,但我似乎无法find合并文件的任何选项。 提前致谢

在Node.js中使用远程图像来dynamic生成PDF

我正在尝试创build一个使用PDFKit即时生成PDF的节点服务器。 PDF是基于来自POST请求(通过Express )的参数生成的。 其中一个参数指定服务器下载并注入PDF的图像URL。 现在,我有以下结构: // Get dependencies var express = require('express'), http = require('http'), fs = require('fs'), pdfDocument = require('pdfkit'); // Get express started. var app = express(); // Use JSON in POST body app.use(express.json()); // Setup POST response app.post('/post_pdf', function(req, res) { // Get the PDF initialized var doc = new pdfDocument(); // […]

NodeJS和PDFKit:如何使第一页成为风景?

所以,我有一个文件: var doc = new PDFDocument; 文档告诉我, PDFKit文档的第一页是自动添加的 ,所以不需要添加manualy。 但是我怎么能把它看成景观呢? 这个 doc.addPage({ size: 'LEGAL', layout: 'landscape' }); 作品,但增加了另一个页面。

如何从CollectionFS获取文件(映像)的缓冲区

我试图插入一个图像到PDF我创buildPDFkit的服务器端。 我正在使用cfs:dropbox来存储我的文件。 在使用cvs:filesystem之前,很容易将这些图像添加到我的pdf中,因为它们就在那里。 现在,他们远程存储,我不知道如何添加它们,因为PDFkit不支持添加图像只有url。 但是,它会接受一个缓冲区。 我怎样才能从我的CollectionFS文件缓冲区? 到目前为止,我有这样的东西: var portrait = Portraits.findOne('vS2yFy4gxXdjTtz5d'); readStream = portrait.createReadStream('portraits'); 到目前为止,我尝试了两种方法: 首先使用dataMan,但最后的命令永远不会回来: var dataMan = new DataMan.ReadStream(readStream, portrait.type()); var buffer = Meteor.wrapAsync(Function.prototype.bind(dataMan.getBuffer, dataMan))(); 其次手动缓冲stream: var buffer = new Buffer(0); readStream.on('readable', function() { buffer = Buffer.concat([buffer, readStream.read()]); }); readStream.on('end', function() { console.log(buffer.toString('base64')); }); 那似乎也不会回来。 我仔细检查了我的文档,确保它在那里,它有一个有效的url,当我把url放在浏览器中时,图片就出现了。 我错过了什么吗?

使用pdfkit生成PDF文件并将其发送到nodejs-expressjs中的浏览器

我正在使用pdfkit生成PDF文件,我想发送这个PDF文件到浏览器。 但我得到的消息"TypeError: listener must be a function",此外,文件正在生成在我的父目录,我不想要。 任何人都可以解释我如何生成PDF文件,并将其发送到浏览器,而无需存储在父目录? 我在这里使用expressjs。 我的代码 var PDFDocument = require('pdfkit'); var fs=require('fs'); doc = new PDFDocument(); doc.moveTo(300, 75) .lineTo(373, 301) .lineTo(181, 161) .lineTo(419, 161) .lineTo(227, 301) .fill('red', 'even-odd'); var loremIpsum = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam in…'; doc.y = 320; doc.fillColor('black') doc.text(loremIpsum, { paragraphGap: 10, indent: 20, […]