实际上,我试图在服务器端包含jspdf,然后使用它生成简单的pdf (简单地说是文本"Hello!“)(转到url- get pdf localhost:8080)。现在我面临的第一个问题是
npm install node-jspdf安装它时,它会产生以下错误-> G:\test\myproj>npm install node-jspdf
node-jspdf@0.0.3 install G:\test\myproj\node_modules\node-jspdf
sh install.sh“‘sh”不被识别为内部或外部命令、可操作的程序或批处理文件。国家预防机制错误!Windows_NT 6.1.7601 npm错误!argv "C:\Program Files\nodejs\\node.exe“"C:\Program \nodejs\nodejs\node模块\ npm \bin\npm-cli.js”"install“节点-jspdf”npm ERR!节点v0.12.4 npm错误!npm v2.10.1 npm错误!代码ELIFECYCLE npm错误!节点-jspdf@0.0.3安装:
sh install.shnpm ERR!退出状态1 npm错误!国家预防机制错误!在节点-jspdf@0.0.3安装脚本‘shinstall.sh’处失败。国家预防机制错误!这很可能是节点-jspdf包的一个问题,npm!而不是国家预防机制本身。国家预防机制错误!告诉作者,这在您的系统上失败了: npm错误!sh install.sh npm错误!你可以通过: npm错误获得他们的信息!npm所有者ls节点-jspdf npm ERR!上面可能还有额外的日志输出。国家预防机制错误!请包括以下文件与任何支持请求: npm!G:\test\myproj\npm-调试器
有人能帮助我如何将它包含在节点中吗?给出一个4-5行的演示。
发布于 2017-01-27 16:21:33
您实际上可以直接使用jspdf (npm install jspdf而不是npm install node-jspdf)。Jspdf目前(v1.3.2)构建时没有考虑到节点支持,但是您可以像下面这样模拟全局,并使其工作起来。这是一个基本示例,jspdf的所有功能都不可用。
global.window = {document: {createElementNS: () => {return {}} }};
global.navigator = {};
global.html2pdf = {};
global.btoa = () => {};
var fs = require('fs');
var jsPDF = require('jspdf');
var doc = new jsPDF();
doc.text("Hello", 10, 10);
var data = doc.output();
fs.writeFileSync('./document.pdf', data, 'binary');
delete global.window;
delete global.html2pdf;
delete global.navigator;
delete global.btoa;发布于 2017-12-11 15:01:18
作为对西蒙·本特松所作答复的延伸:
通过将jsPdf的输出发送到编码,我甚至成功地处理了拉丁文1字符:
global.window = {document: {createElementNS: () => {return {}} }};
global.navigator = {};
global.btoa = () => {};
var fs = require('fs');
var jsPDF = require('jspdf');
var encoding = require('encoding')
var doc = new jsPDF();
doc.text("HelloäöüßÄÖÜ©µ®", 10, 10);
var data = doc.output()
var buffer = encoding.convert(data, "Latin_1")
fs.writeFileSync('./document.pdf', buffer);
delete global.window;
delete global.navigator;
delete global.btoa;发布于 2015-10-23 15:03:45
https://stackoverflow.com/questions/30694428
复制相似问题