2017-07-19 7 views
1

questionaskedのかなり古いバージョンのpdfMakeでtimesとなっていますが、最新のディレクトリ構造のように更新されていません。さらに、フォントをルートの "fonts"フォルダにコピーすることは素晴らしいことではありません。pdMakeとvfs_fontsを使用してNodeJsでpdfを作成するには?

どのように、付属のvfs_fonts.jsファイルを使用してNodeJs で実行されているpdfMake( "pdfmake": "^ 0.1.31")のサーバー側バージョンを取得できますか?

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) 

は、コマンドラインで次のようで

npm install pdfmake fs --save 

ブートアップNodeJsアプリのindex.jsをNPMを使用してインストールします。問題は、フォント/ Roboto ...ファイルの場所にあるようです。クライアント側では、これはvfs_fonts.jsファイルをインクルードすることで解決されます。サーバー側、わからない。 fonts folder or .ttf filesは含まれていません。流星群のフレームワークexample私は見つからなかったことは当てはまりません。

アイデア?すべての公式examplesはsrc/fontsフォルダを参照しています。 npmをインストールするサーバーモジュールには適していません。

+0

ロボートフォントをサーバー側に含める必要はありません。既定で使用できます。カスタムフォントが必要な場合は、https://github.com/bpampuch/pdfmake/wiki/Custom-Fonts--client-side –

答えて

0

ここでRobotフォントをダウンロードしてください。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」はフォルダ名を置き換えます。

+0

に記載されている手順に従う必要があります。ありがとうございましたが、私は探していました "フォントをルート"フォント "フォルダにコピーするのは大したことはありません どうすればpdfMake(" pdfmake ":"^0.1.31 ")のサーバー側のバージョンを稼働させることができますか?含まれているvfs_fonts.jsファイルを持つNodeJsで? " –

+0

** vfs_fonts.js **ファイルは、**クライアント側**でpdfMakeを使用する場合にのみ必要です。このファイルは、フォントを含むバイナリです。このファイルを作成してnodejsで使用する必要はありません。 nodejsでは、先ほど答えたようにフォントでパスを指定する必要があります。 – Harry

関連する問題