pdfmakeを使うとJSで簡単にPDFファイルを作成できますが、デフォルトのままだと日本語フォントに対応しておらず、文字化けが発生してしまいます。
pdfmakeを日本語フォントに対応させるためには、適当な日本語フォントを追加し、vts_fonts.jsを読み込ませる必要があります。
pdfmakeの基本的な使い方に関しては同じ会社のエンジニアの方が別の記事で書いているので、こちらを見てください。
→ JavascriptでPDFを作成する
pdfmakeのダウンロード
とりあえずpdfmakeをクローン。
クローンする場所は適当で大丈夫です。
git clone https://github.com/bpampuch/pdfmake.git
pdfmakeに日本語フォントを追加する
今回は源真ゴシック(GenShinGothic-Normal.ttf)を使用します。
pdfmakeで使用するフォントは「pdfmake/examples/fonts」に入っているので、すでに入っているフォント(Roboto-Italic.ttf、Roboto-Medium.ttf、Roboto-MediumItalic.ttf、Roboto-Regular.ttf)を削除して、代わりにGenShinGothic-Normal.ttfを入れておきます。
pdfmakeのフォント情報を更新
日本語フォントを追加したら、pdfmakeのフォント情報を更新します。
① pdfmakeディレクトリに移動
cd pdfmake
② Node.jsモジュールを更新
npm install
npm run build
ここでエラーが出る場合はnodeのバージョンが低い可能性があるので、nodeのバージョンを上げてみてください。
③ フォントの更新
gulp buildFonts
gulpを使うので、あらかじめgulpをインストールしておいてください。
ローカルのgulpを動かすためにグローバルにgulpがインストールされている必要があるみたいなので、グローバルにもgulpをインストールしておきます。
gulp buildFontsを実行すると「pdfmake/build/」に「vfs_fonts.js」がビルドされるので、これをpdfmakeに読み込ませれば日本語フォントに対応することができます。