pdfmakeで簡単に日本語対応しよう

2019-08-10

pdfmake というパッケージがありまして。

名前の通り、JavaScript で pdf ファイルが作れるという、すげーパッケージです。

ただ、一つ難点があって、日本語対応が面倒なんですよね。

自分は npm で導入したので、pdfmake の本体は node_modules フォルダ以下に格納されます。

で、そこに日本語フォントを入れて、スクリプトに反映することによって、日本語対応できるわけですが。

npm スクリプト 1 本でなんとかならんものかと色々書いてみたところ、なんとかなりました。

import { exec } from "child_process";
import * as fs from "fs-extra";

const main = async () => {
  // static/fonts フォルダに使用したいフォントを入れてください
  fs.copy("static/fonts", "node_modules/pdfmake/examples/fonts");

  exec("npm i", { cwd: "node_modules/pdfmake" }, (error, stdout, stderr) => {
    console.log(error);
    console.log(stdout);
    console.log(stderr);

    exec(
      "npx gulp buildFonts",
      {
        cwd: "node_modules/pdfmake",
      },
      (error, stdout, stderr) => {
        console.log(error);
        console.log(stdout);
        console.log(stderr);
      },
    );
  });
};

main();

上記は TypeScript で書いちゃったので、ts-node buildFonts.tsとかで動くと思います。

参考になれば幸いです。