Es sieht so aus question wurde asked etliche times mit älteren Versionen von pdfMake, aber wurde nicht mit der scheinbar neuesten Verzeichnisstruktur aktualisiert. Außerdem ist das Kopieren von Schriftarten in einen Stammordner "Schriftarten" nicht großartig. Wie in der Welt bekomme ich eine serverseitige Version von pdfMake ("pdfmake": "^ 0.1.31") auf NodeJs mit der enthaltenen vfs_fonts.js Datei?Wie erstellt man ein pdf auf NodeJs mit pdMake und vfs_fonts?
Installieren npm auf Befehlszeile
npm install pdfmake fs --save
Boot-up ein NodeJS App index.js mit den folgenden:
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();
Hit Lauf und 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)
Die Problem scheint mit dem Speicherort der Schriften/Roboto ... Dateien zu liegen. Clientseitig wird dies durch die Aufnahme der Datei vfs_fonts.js gelöst. Serverseitig bin ich mir nicht sicher. Es sind keine fonts folder or .ttf files enthalten. Das Meteor-Framework example habe ich gefunden scheint nicht anwendbar.
Irgendwelche Ideen? Alle offiziellen examples verweisen auf einen Ordner src/fonts. Keine gute Möglichkeit, ein npm Installationsservermodul zu installieren.
Sie müssen die Roboto-Schriftart nicht auf der Serverseite einschließen, sie ist standardmäßig verfügbar. Wenn Sie benutzerdefinierte Schriftarten benötigen, dann müssen Sie die Schritte unter https://github.com/bpampuch/pdfmake/wiki/Custom-Fonts---client-side gehen –