PDFKitを使ってNode.jsからPDFを作成する

一通り業務で使いそうなライブラリとかをチェックしているのだけど、業務で良く使われるPDFでの出力のため、PDFKitを使ってみました。
公式サイトに書かれている通り、ある程度の機能は実装されているようですが、テーブルやレイアウトを操作する高レベルのAPIは実装されていません。PDF文書の暗号化やタイトルなども設定できないため、正直なところ、実際の業務で使うには物足りないかも知れません。

まずはgithubからファイルを取得します。

$ git clone https://github.com/devongovett/pdfkit.git

demoディレクトリにpackage.jsonを作ります。

{
  "name": "pdfsample",
  "version": "0.0.1",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "dependencies": {
    "pdfkit": "*"
  },
  "license": "BSD"
}

モジュール類をインストールします。

$ npm install
npm http GET https://registry.npmjs.org/pdfkit
npm http 304 https://registry.npmjs.org/pdfkit
npm http GET https://registry.npmjs.org/png-js
npm http 304 https://registry.npmjs.org/png-js
pdfkit@0.1.9 node_modules/pdfkit
└── png-js@0.1.0

CoffeeScriptが必要になるので、インストールしておきます。

$ npm install -g coffee-script
npm http GET https://registry.npmjs.org/coffee-script
npm http 304 https://registry.npmjs.org/coffee-script
/usr/local/bin/coffee -> /usr/local/lib/node_modules/coffee-script/bin/coffee
/usr/local/bin/cake -> /usr/local/lib/node_modules/coffee-script/bin/cake
coffee-script@1.3.3 /usr/local/lib/node_modules/coffee-script
$ which coffee
/usr/local/bin/coffee

やっと実行できる準備ができました。

$ coffee test.coffee

エラーが出なければout.pdfの日付が更新されていると思います。
ちなみに.jsファイルにコンパイルするには-cオプションを付けます。jsにしてしまえば、nodeコマンドでも実行できます。

$ coffee -c test.coffee
path.exists is now called `fs.exists`.
$ ls test.js
test.js
$ node test


via Node.js向けのPDF作成ライブラリ「PDFKit」:phpspot開発日誌


[追記 at 2012/07/20]
文書のタイトルなどは設定できました。