如何使用pdMake和vfs_fonts在NodeJs上创建pdf?
看起来像这样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://fonts.google.com/specimen/Roboto 并将它们复制到您的字体文件夹中。 更新您的字体对象是这样的:
var fonts = {
Roboto: {
normal: path.join(__dirname, '..', 'your_public_folder', '/fonts/Roboto-Regular.ttf'),
bold: path.join(__dirname, '..', 'your_public_folder', '/fonts/Roboto-Medium.ttf'),
italics: path.join(__dirname, '..', 'your_public_folder', '/fonts/Roboto-Italic.ttf'),
bolditalics: path.join(__dirname, '..', 'your_public_folder', '/fonts/Roboto-MediumItalic.ttf')
}
}
在这个例子中,替换在那里你把所有的HTML,CSS和JS文件的“your_public_folder”与文件夹名称。
中提到的步骤操作。谢谢您的帮助,但我一直在寻找其他东西: “另外,将字体复制到根”字体“文件夹并不是很好。 如何在世界中获得pdfMake(”pdfmake“:”^ 0.1.31“)的服务器端版本在包含vfs_fonts.js文件的NodeJ上?“ –
只有在**客户端**上使用pdfMake时,才需要** vfs_fonts.js **文件。该文件是包含字体的二进制文件。你不需要创建这个文件来与nodejs一起使用它。在nodejs中,我需要使用字体指定一个路径,正如我之前回答的那样。 – Harry
您不需要在服务器端包含Roboto字体,它在默认情况下可用。如果您需要自定义字体,则需要按照https://github.com/bpampuch/pdfmake/wiki/Custom-Fonts---client-side –