無茶しやがって…。JavaScriptでPDFを作る「jsPDF」
まさにあのAAが似合う、そんな代物だ。Webサイトでコネクション数を極力減らすための技術として、DataスキームURIが知られている。これはhttpからはじまるようなURLの代わりに、data:からはじまる書き方で直接データをbase64で表記して流し込んでしまう手法だ。
できると思う?
対応しているブラウザは限られるが、仕様自体はRFC2397として定義されているのでIE7などでも利用できるようになっている。これを使えば画像のみならず、こんなことができてしまう。
今回紹介するオープンソース・ソフトウェアはjsPDF、JavaScriptで生成するPDFライブラリだ。
まさに無茶だ。jsPDFはJavaScriptだけでPDFを生成してしまう試みだ。何をばかなことを、とお思いだろうか。であれば実際に試してみると良い。日本語は残念ながら使えないが、英語であればちゃんとしたPDFが生成されることが分かるはずだ。
ほら、簡単でしょ?
URL部分を見ると「data:application/pdf;base64,」から始まっていることが分かる。つまりDataスキームURIを使ってbase64化されたPDFデータをそのまま表示しているのだ。これを使うことでレンダリングなどを行うことなくJavaScriptからそのままブラウザにPDFを表示させている。
現状は文字だけに限定されるようだが、指定した場所に出力したり、改ページも行える。Safariで動作し、OpenraやFirefox3(Windows)でも恐らく動くとのこと。iPhoneのSafariでも動いてしまう。Mac OSXのFirefox3ではダウンロードがはじまってしまうが、ダウンロードされたファイルはプレビューで見ることができた。
これは無茶なように思えるが、応用が色々考えられるかもしれない。JavaScriprでExcelファイルを生成したり、PowerPointを生成するような猛者も現れるかもしれない。今後、フォントの埋め込みや画像の表示、テキストリンクにも対応させていくとのこと。期待(?)して待ちたい。
日本語は今の所文字化けてしまう
jspdf - Google Code