看起来像这样question已被asked相当多times与旧版本的pdfMake,但尚未更新似乎是最新的目录结构。另外,将字体复制到根目录“字体”文件夹并不是很好。如何使用pdMake和vfs_fonts在NodeJs上创建pdf?
在世界上,我如何获得在包含vfs_fonts.js文件的NodeJs 上运行的pdfMake(“pdfmake”:“^ 0.1.31”)的服务器端版本?
使用NPM上的命令行
npm install pdfmake fs --save
启动一个应用程序的NodeJS与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文件解决的。服务器端,我不确定。包括NO fonts folder or .ttf files。流星框架example我发现似乎不适用。
任何想法?所有的官方examples引用一个src/fonts文件夹。不是用于npm安装服务器模块的好方法。
您不需要在服务器端包含Roboto字体,它在默认情况下可用。如果您需要自定义字体,则需要按照https://github.com/bpampuch/pdfmake/wiki/Custom-Fonts---client-side –