【发布时间】:2017-12-25 01:51:41
【问题描述】:
在旧版本的 PDFMake 中,question 看起来像 asked 相当多的 times,但尚未使用似乎是最新的目录结构进行更新。另外,将字体复制到根“字体”文件夹也不是很好。
究竟如何获得在 Node.js 上运行的服务器端版本的 PDFMake(“pdfmake”:“^0.1.31”)包含 vfs_fonts.js 文件? p>
在命令行使用 npm 安装
npm install pdfmake fs --save
使用以下命令启动 Node.js 应用 index.js:
var fonts = {
Roboto: {
normal: 'fonts/Roboto-Regular.ttf',
bold: 'fonts/Roboto-Medium.ttf',
italics: 'fonts/Roboto-Italic.ttf',
bolditalics: 'fonts/Roboto-MediumItalic.ttf'
}
};
var PdfPrinter = require('pdfmake/src/printer');
var printer = new PdfPrinter(fonts);
var dd = {
content: [
'First paragraph',
'Another paragraph'
]
}
var pdfDoc = printer.createPdfKitDocument(dd);
pdfDoc.pipe(fs.createWriteStream('basics.pdf')).on('finish',function(){
//success
});
pdfDoc.end();
点击运行和bam:
/usr/local/bin/node index.js
fs.js:640
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^
Error: ENOENT: no such file or directory, open 'fonts/Roboto-Regular.ttf'
at Error (native)
at Object.fs.openSync (fs.js:640:18)
问题似乎在于字体/Roboto... 文件的位置。在客户端,这可以通过包含 vfs_fonts.js 文件来解决。服务器端,我不确定。不包括fonts folder or .ttf files。我发现的流星框架example似乎不适用。
有什么想法吗?所有官方examples 都引用了一个 src/fonts 文件夹。对于 npm 安装服务器模块来说,这不是一个好方法。
【问题讨论】:
-
你不需要在服务器端包含Roboto字体,它默认是可用的。如果您需要自定义字体,则需要按照github.com/bpampuch/pdfmake/wiki/Custom-Fonts---client-side中提到的步骤进行操作
标签: pdfmake