node.jsならサーバサイドも。ブラウザのみのPDF生成にも対応する「pdf.js」
pdf.jsはnode.js/JavaScriptで作られたPDF生成ライブラリ。クライアントサイドの出力にも対応。
pdf.jsはJavaScript/node.js製のフリーウェア(ソースコードは公開されている)。基幹系、ユーザ系問わず何らかのデータを蓄積した結果、一覧やレポートを出力したいという要望は多々発生する。そのフォーマットとして代表的なのがPDFだ。
ブラウザのみで生成されたPDF
PDFは仕様が公開されているとは言え、一から手作業で作るのは非常に面倒なフォーマットだ。そこで既存のPDFライブラリが使われる。PHP、Ruby、Javaなど各種言語向けにPDFライブラリが存在するが、JavaScriptではどうだろう。そう、pdf.jsを使えば良い。
pdf.jsはその名の通りJavaScriptを使ってPDFを生成するライブラリだ。やり方は二種類ある。一つは完全クライアントサイドで生成するもので、ブラウザ上で完結する。結果はdata URIで出力されるのでブラウザ上にPDFが表示される。数ページのPDFなら簡単に生成する。
node.js版。簡単な図形も描ける
もう一つはnode.jsのライブラリとして動作するものだ。この場合はPDFファイルをサーバ上に生成し、それを表示する形になる。フォントサイズや簡単な図形の描画には対応している。クライアントサイドだけで生成できるようになれば、色々な楽しみ方ができるようになりそうだ。
MOONGIFTはこう見る
PDFをdata URIで生成するのはjsPDFが知られている。そのライブラリにインスパイアされて開発されているようだ。無茶なように見えるが、テンプレートさえできれば大きな問題はなさそうだ。
クライアントサイドで実行できれば、サーバからはAjaxでデータを渡しさえすれば多少のデザイン変更もクライアントサイドでできてしまうということだ。その場でレポート出力をするような場合はクライアントサイド、バッチの場合はnode.jsと使い分けられそうだ。
pdf.js(ブラウザ版デモ) - create basic pdf files in the browser and node.js