繁体   English   中英

使用node-jspdf的jsPDF服务器端(node.js)用法

[英]jsPDF server side (node.js) usage using node-jspdf

我实际上试图在服务器端包含jspdf,然后将其用于简单的pdf生成(简单的文本“Hello world!”)(转到url-获取pdf localhost:8080)。 现在我面临的第一个问题是

  • 如何包含它/如何在节点中使用jsPDF?
  • 在尝试使用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' is not recognized as an internal or external command, operable program or batch file. npm ERR! Windows_NT 6.1.7601 npm ERR! argv "C:\\\\Program Files\\\\nodejs\\\\\\\\node.exe" "C:\\\\Program Files\\\\nodejs \\\\node_modules\\\\npm\\\\bin\\\\npm-cli.js" "install" "node-jspdf" npm ERR! node v0.12.4 npm ERR! npm v2.10.1 npm ERR! code ELIFECYCLE npm ERR! node-jspdf@0.0.3 install: `sh install.sh` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the node-jspdf@0.0.3 install script 'sh install.sh'. npm ERR! This is most likely a problem with the node-jspdf package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! sh install.sh npm ERR! You can get their info via: npm ERR! npm owner ls node-jspdf npm ERR! There is likely additional logging output above. npm ERR! Please include the following file with any support request: npm ERR! G:\\test\\myproj\\npm-debug.log 

任何人都可以帮助我如何将其包含在节点中? 并提供4-5线演示。

您实际上可以直接使用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;

我可以在Windows中安装node-jspdf

  1. 建议下载jspdf-master.zip并解压缩。
  2. 现在使用命令:

     npm install <location on jspdf-master extract> 

之后,您可以使用npm list查看安装成功。

延伸到Simon Bengtsson提供的答案:

我设法通过将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;

Node-jspdf主要使用库jsPDF作为渲染PDF文件的核心库

但是node-jspdf只能安装在*unix系统上,因此您可以通过此文件中的以下步骤手动下载和安装jsPDF

我认为您只需安装jsPDF即可使用PDF文件。

从parallax jspdf下载jspdf文件夹。 安装jspdf(“npm install jspdf”)后,您将获得node-modules中的jspdf文件夹。 进入它并将jspdf.amd.js替换为jspdf.amd.min.js,它存在于从parallax下载的jspdf中的/ dist文件夹中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM