Tag: pdfkit

在node.js中使用pdfkit发送HTTP响应

我在一个node.js express 3项目中使用pdfkit 0.6.1。 我想发送PDF作为HTTP响应,而不是将其保存在服务器上。 http://pdfkit.org/docs/getting_started.html上的例子说要使用: # HTTP response doc.pipe fs.createWriteStream(res) # add stuff to PDF here # finalize the PDF and end the stream doc.end() 但是我得到一个错误,说:“500 TypeError:path必须是一个string”

PDFKit,nodeJS合并两个PDF文件

没有人有使用NodeJS的PDFKit的经验。 具体来说,我试图合并2个PDF文档到1,但我似乎无法正确获取两个PDF格式的内容合并的格式。 这就是我所做的: var PDFDocument = require('pdfkit'); var fs = require('fs'); var doc = new PDFDocument(); var fileName = 'test.pdf'; doc.pipe(fs.createWriteStream(fileName)); var file1 = '1.pdf'; var file2 = '2.pdf'; var stream1 = fs.createReadStream(file1); doc.text(stream1); doc.addPage(); var stream2 = fs.createReadStream(file2); doc.text(stream2); doc.end(); 输出test.pdf应该包含一个包含2个pdf格式相同格式的pdf的内容,但是我只能得到2个页面的test.pdf,每个页面包含一行“[Object目的]”。 我似乎无法find如何redirectdoc.text()函数内的stream的内容。 任何想法,我做错了什么,我该如何解决它?

如何将PDFKit可读stream传递到请求的post方法?

我的应用程序需要创build一个PDF文件,然后将其上传到另一台服务器。 上传通过request NPM包中的post方法发生。 一切工作正常,如果我传入一个fs.createReadStream : const fs = require('fs'); const params = {file: fs.createReadStream('test.pdf')}; api.uploadFile(params); 由于PDFKit也实例化了一个读取stream,所以我试图直接把它传递给后面的参数: const PDFDocument = require('pdfkit'); const doc = new PDFDocument(); doc.text('steam test'); doc.end(); const params = {file: doc}; api.uploadFile(params); 但是,这会产生一个错误: TypeError:path必须是一个string。 收到[function] 如果我看PDFKit源代码,我看到(在coffeescript): class PDFDocument extends stream.Readable 我是新来的stream,很明显,我不明白这里的区别。 对我来说,如果它们都是可读的stream,那么它们都应该能够以相同的方式传递。

如何使用PDFkit nodejs在PDF文件中创build灵活的表格

//我正在使用这样的东西来创build一个单元格,但我不知道如何用dynamic数据创build灵活的表格 var doc = new pdfDocument(); doc.lineCap('square') .moveTo(250, 20) .circle(275, 30, 15) .stroke()

PDF页面大小在节点js中使用pdfkit不会改变

我正在使用pdfkit模块在节点js中创buildpdf文档。 我无法改变PDF文件的页面大小。 我试了下面的代码..即使它不工作。 var PDFDocument = require('pdfkit'); var doc = new PDFDocument; doc.addPage size: 'legal' layout: 'landscape' doc.addPage size: [612.00 * 1008.00] layout: 'landscape' 请为这个问题提出一些想法..

如何使用node.js中的pdfkit使用项目符号列表创build文本?

我从昨天起一直在工作,以PDF格式生成报告。 我已经通过pdfkit模块。 这似乎很酷使用。 我的要求是用项目符号列出文本。 我已经试过了 var doc = new PDFDocument(); doc.pipe(fs.createWriteStream('userReport.pdf')); doc.fillColor("#B22222") .fontSize(25) .text('Users Count', 250,60) .moveDown(0.5); 它创造的文字,但我想要的文本与子弹。 这个怎么做?

用Node.js处理大stream

这里是我尝试使用节点和imagemagick转换工具将svgstring转换为png缓冲区。 然后使用pdfkit使用png缓冲区在pdf中绘制图像。 Td; lr我有一个大的svgstring,需要进入一个subprocess“整体”(即不分块)。 我该怎么做? 这是一个适用于小文件的例子。 var child_process = require('child_process'); var pdfDocument = require('pdfkit'); var convert = child_process.spawn("convert", ["svg:", "png:-"]), svgsrc = '<svg><rect height="100" width="100" style="fill:red;"/></svg>'; convert.stdout.on('data', function(data) { console.log(data.toString('base64') doc = new pdfDocument() doc.image(data) } convert.stdin.write(svgsrc); convert.stdin.end() 当svgstring是'small'时(如在示例中提供的那样),这是有效的 – 我不确定从小到大的切断位置。 但是,当试图使用更大的svgstring(你可能使用D3生成的东西)像这样[ 大string ]。 我碰到: 错误:不完整或损坏的PNG文件 所以我的问题是:如何确保convertsubprocess在处理之前读取整个stream? 有几件事是已知的: PNG缓冲区确实是不完整的 。 我使用了diff工具来检查应用程序生成的base64string与png-to-svg转换器的base64在线。 未损坏的string比损坏的string大得多。 (对不起,我没有更具体的文件大小)。 也就是说,转换工具似乎在任何时候都不会读取整个源文件。 源svgstring没有被破坏 […]

下载返回的空文件

我正在构build一个node.js + express应用程序,用户将在其中input一些数据,使用pdfkit生成PDF并将文件发送给用户。 我能够成功生成文件,问题是,当我下载生成的文件,它是空的。 我甚至无法打开PDF,读者(预览,macOS本地读者)说,该文件是空的。 我使用下面的代码: var express = require('express'); var router = express.Router(); var guid = require('guid'); var PDFDocument = require('pdfkit'); var fs = require('fs'); /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); }); router.post('/criar', function(req, res, next) { var filename = guid.raw()+'.pdf'; var doc = new […]

获取PDFKit作为base64string

我正在寻找一种方法来获得PDFKit文档的base64string表示forms。 我不能find正确的方法来做到这一点… 这样的事情会非常方便。 var doc = new PDFDocument(); doc.addPage(); doc.outputBase64(function (err, pdfAsText) { console.log('Base64 PDF representation', pdfAsText); }); 我已经尝试blob-stream lib,但它不能在节点服务器上工作(它说, Blob不存在)。 谢谢你的帮助!

PDFKit – 自定义字体 – fs.readFileSync不是一个函数

我正在使用PDFKit作为应用程序。 我只是在浏览器中的HTML文件,使用Javascript(没有Node.js)。 我从GitHub下载了PDFKit: https : //github.com/devongovett/pdfkit/releases 以及Blobstream: https : //github.com/devongovett/blob-stream 我试图包含一个自定义字体,如下所示: doc.registerFont('Custom Font', 'fonts/GOODDP__.TTF'); doc.font('Custom Font').fontSize(fontSize).text($("#text1").val(), xPos, yPos, configObj); 但是我总是得到这个错误: fs.readFileSync is not a function 这是有道理的,因为fs.readFileSync是node.js的一部分,我不使用它。 但是,文档中的示例说这可以在浏览器中使用。 我知道还有一个Browserify选项,但我不知道如何或如果这将有助于在这种情况下