Articles of pdf

在Node JS中执行代码时,不能通过命令访问文件

我在节点运行时创build一个文件[HTML],并通过命令行将其转换为PDF。 HTML创build成功,甚至PDF文件也创build成功,但空。 我检查了创build的HTML文件包含数据,但命令行无法读取,我猜。 这是我的代码: 创buildHTML文件: var getPdf=function (html,fileName,callback) { fs.writeFile("./pdf/"+fileName+".html", html,'utf8', function(err) { if(err) { return callback(err,[]); } fs.readFile("./pdf/"+fileName+".html","utf8", (err, data) => { if (err) throw err; console.log(data); }); return callback(err,fileName); }); } 创buildHTML后创buildPDF var html="<html><head><title>Hello World</title></head><body><h1>Hello Sarath!</h1></body></html>"; getPdf(html,'sarath',function (err, fileName) { if(err) { console.log("Error: "+err); return false; } var cmd="xvfb-run wkhtmltopdf ./pdf/"+fileName+" ./pdf/"+fileName+".pdf"; console.log(cmd); […]

如何以asynchronous方式使用pdfkit npm

我已经在node.js编写了一个应用程序,该应用程序从用户接收input并基于less量模板生成pdf文件。 我正在使用pdfkit npm来达到这个目的。 我的应用程序正在生产中运行。 但是我的申请很慢,下面是原因: 我面临什么问题: 它以同步的方式工作。 我可以通过给出一个例子来解释它 – 假设一个请求来到应用程序生成一个PDF,正在开始处理,并在处理后返回与生成的PDF url的响应。 但是,如果有多个请求到达服务器,它将逐个处理每个请求(以同步的方式)。 队列中的所有请求必须等待,直到前一个完成。 我的应用程序给出超时或内部服务器错误的最长时间。 我无法改变图书馆,为什么? 我已经在js中为pdfkit写了40个模板。 而每个模板是1000 – 3000行。 如果我将更改库,我必须根据新库重写这些模板。 要花好几个月的时间才能正确地重写和testing。 现在我正在使用什么解决scheme: 我现在正在pipe理一个队列,一旦请求到来,它就排队等候,并回复一个令人满意的消息回应用户。 为什么这个解决scheme不可行? 用户在成功申请时应提供有效的pdfurl。 但是在队列方式中,用户只能得到确认消息。 而PDF正在稍后处理队列中。 我正在寻求什么样的解决scheme? 任何方式,我可以使这个应用程序multithreading/asynchronous,以便它将能够处理多个请求,而不会阻止资源? 请救我一命。

用于生成PDF的React JS / Node JS / Java RESTful API

我有一个要求,能够生成和下载我们的应用程序(支持所有国际市场)的dynamicPDF,CSV文件。 我们使用React JS(部署在Node JS服务器上),后端数据由Java Restful API提供。 生成这些文件的最佳方法是什么(客户端与服务器端)。 React JS是否应该根据java REST API提供的数据生成文件(pdf,csv),或者Java Rest API是否应该公开资源来生成和提供基于客户需求的文件(Base 64string)。 有没有一种方法可以在这里利用Node JS? 我想考虑性能,CPU使用率,因为数量会很高。 我可以使用哪些开源库?

在Node.js中从html输出dynamicPDF

我想创build一个简单的端点,我将简单的css + html作为可见的pdf返回。 在Node.js中 像这样的东西: response.headers('Content-Type', 'application/pdf'); let output = '<h1>some html</h1>' let bufferData = Buffer.from(output, 'utf8'); response.body = bufferData

我怎样才能Nodejs Heroku下载文件

我为Html-pdf转换创build了一些代码。 var templateJade = fs.readFileSync(path.resolve('./src/html/index.html'), 'utf8'); pdf.create(templateJade).toFile(appRoot + '/src/pdf/generated-file.pdf', function(err, suc){ if(err){ console.log(err) }else{ console.log(suc) } }) 它在我的本地电脑上运行良好。 我在“app / src / pdf / generated-file.pdf”下载pdf文件,然后将其提交给heroku,但是我无法在任何地方获得pdf文件。 在Heroku服务器上,我无法得到我的PDF文件。 我怎么解决这个问题? 请帮帮我。

columm计数不适用于PDF中的CSS

我会用column-count: 2; 和columns:2; 在HTML和HTML格式转换成PDF格式。 我可以使用下面的npm包 npm install -g html-pdf 在pdf column-count: 2; 不工作 我也可以试试这个 @media print{ .newspaper { -webkit-column-count: 2; -moz-column-count: 2; column-count: 2; -webkit-column-gap: 20px; -moz-column-gap: 20px; column-gap: 20px; } } 但不工作 我的要求是第一柱柱开始第二柱柱这是我的主要要求。 谢谢

用Node / NWJS App读取PDF文件

首先感谢您的关注。 我正在构build一个简单的nwjs应用程序,并阅读PDF文件很难。 我试了几个库(pdf2json,pdfreader,pdf2text),他们都返回了以下错误。 Error: No PDFJS.workerSrc specified at error (eval at <anonymous> (/node_modules/pdf2json/lib/pdf.js:60:1), <anonymous>:195:9) at new WorkerTransport (eval at <anonymous> (/node_modules/pdf2json/lib/pdf.js:60:1), <anonymous>:42944:9) at Object.getDocument (eval at <anonymous> (/node_modules/pdf2json/lib/pdf.js:60:1), <anonymous>:42547:15) ….. 似乎所有这些库都基于pdf.js,问题来自那里。 我剥下我的js来解决问题。 var reader = require('pdfreader'); new reader.PdfReader().parseFileItems("/path/to/file.pdf", function(err, item){ console.log(err, item); }); 这工作如果我运行它作为一个普通的节点脚本node myfile.js但它不工作时,我作为一个nwjs应用程序运行它。 我无法find任何其他可靠的本地js库。 任何帮助将不胜感激。

如何:nodejs pdfkit输出日语或中文

我正在做我的nodejs + expressjs + mongodb项目,我需要从mongodb获取数据,然后将其写入pdf文件,然后通过expressjs发送出去。 一切似乎都很好,只是数据是日文字母,编码混乱了。 我使用pdfkit来创buildPDF文件,如下所示: var doc = new PDFDocument(); doc.info['Title'] = profile.firstName + " " + profile.lastName; doc.fillColor('black') .text(profile.firstName + " " + profile.lastName, { paragraphGap: 10, indent: 20, align: 'justify', columns: 2 }); 那么该文件的元信息和内容的唯一行显示:“kfY'˛”这应该是:“武大郎” 那么,有没有办法在pdfkit中设置编码? 或者一些工作?

在浏览器中查看PDF – 使用POST在Chrome中破解

所以我不知道什么时候,但显然Chrome已经发生了一些变化,在浏览器中浏览了PDF。 查看这些内部的Firefox或IE工作; 这似乎是一个纯Chrome的问题。 截至目前,我是如何做到这一点的。 用户将数据发布到服务器,这对PDF使用者来说有一些神奇的作用,并将PDF发送回浏览器。 我们正确地使用Content-Disposition , Content-Length和Content-Type标题(我假设): Content-Disposition: "inline; filename=\"some-pdf.pdf\"" Content-Length: "1860799" Content-Type: "application/pdf" Chrome浏览器拒绝使用浏览器中的PDF查看器加载这些文件有什么具体原因吗? 编辑: 看起来Chrome在POST服务器时不加载内嵌文件。 工作示例: var express = require('express'); var fs = require('fs'); var app = express(); app.listen(3000, function() { console.log('Listening on http://localhost:3000'); }); app.get('/', function(req, res, next) { fs.stat('./some-pdf.pdf', function(e, stats) { if(e) throw e; var stream = fs.createReadStream( './some-pdf.pdf' […]

NodeJS在浏览器中不触发保存文件对话框/ EmberJS不接收从服务器发送的文件

我的场景 : 我有一个使用MEEN堆栈(MySQL,ExpressJS,EmberJS,NodeJS)编写的应用程序。 在一个页面中,我有一个表单input。 我应该得到input的数据,发送到服务器,生成一个PDF,并显示在EmberJS。 服务器使用ExpressJS在NodeJS中,生成的文件在发送到前端之前写入磁盘。 我的问题 : 我无法在EmberJS中显示PDF文件。 或者说,什么都不显示。 在我用NodeJS和ExpressJS的后端,我发送PDF文件的文件stream回到EmberJS。 在Chrome中使用邮递员扩展等REST客户端,对话框被调用,我可以保存文件。 但是,在EmberJS中,没有出现对话框,但是我可以在Chrome开发工具中使用console.log来查看文件stream的内容。 为什么这样? 下面是我用ExpressJS在NodeJS中发送文件的代码。 generatePDF: function(req, res){ var details = req.body; // @param details // @return relative path to the file inventoryController.generatePDF(details, function(relPath){ var filePath = path.resolve(relPath); // This is the first method // I explicitly specify the header for the Response Object // […]