PDFKitを使ってNode.jsからPDFを作成する
一通り業務で使いそうなライブラリとかをチェックしているのだけど、業務で良く使われるPDFでの出力のため、PDFKitを使ってみました。
公式サイトに書かれている通り、ある程度の機能は実装されているようですが、テーブルやレイアウトを操作する高レベルのAPIは実装されていません。PDF文書の暗号化やタイトルなども設定できないため、正直なところ、実際の業務で使うには物足りないかも知れません。
まずはgithubからファイルを取得します。
$ git clone https://github.com/devongovett/pdfkit.git
{ "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]
文書のタイトルなどは設定できました。