クライアントでpdfを生成するjsPDF
jsPDF - HTML5 PDF Generator | Parallax
たまたま見かけたので、ダウンロードして試してみた。
クライアントサイドでpdfを生成できる。
このコードで
var doc = new jsPDF(); var img = 'data:image/jpeg;base64,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' doc.setFontSize(40); doc.text(40, 20, "Brainstorm"); doc.addImage(img, 'JPEG', 13, 5) doc.setFontSize(16) doc.text(40, 40, 'hello')
ただし日本語は通らない模様。MIT License。