回答:
JavaScriptだけを使用してPDFを生成するjsPDFというライブラリを書いたところです。まだ非常に若いので、すぐに機能とバグ修正を追加する予定です。また、データURIをサポートしないブラウザーでの回避策についていくつかのアイデアを得ました。それはリベラルなMITライセンスの下でライセンスされています。
私はそれを書き始める前にこの質問に出くわし、戻ってきてあなたに知らせたいと思っていました:)
例:「Hello World」PDFファイルを作成します。
// Default export is a4 paper, portrait, using milimeters for units
var doc = new jsPDF()
doc.text('Hello world!', 10, 10)
doc.save('a4.pdf')
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.5/jspdf.debug.js"></script>
言及する価値のある別のJavaScriptライブラリはpdfmakeです。
ブラウザーサポートはjsPDFほど強力ではないようです。また、図形のオプションもないようですが、テキストの書式設定のオプションは、現在jsPDFで利用できるオプションよりも高度です。
私はPDFKitを維持しています。これはpdfmakeにも使用されます(すでにここで説明されています)。Nodeとブラウザの両方で動作し、他のライブラリではサポートされていない一連の機能をサポートしています。
完全なチュートリアルについては、http: //pdfkit.org/をチェックして、PDFKitが実行できることを自分で確認してください。また、どのような種類のドキュメントを作成できるかの例については、PDFKit自体を使用して、いくつかのMarkdownファイルから生成されたPDFとしてドキュメントを確認してください:http ://pdfkit.org/docs/guide.pdf 。
こちらのブラウザでインタラクティブに試すこともできます:http : //pdfkit.org/demo/browser.html。
別の興味深いプロジェクトはtexlive.jsです。
ブラウザで(La)TeXをPDFにコンパイルできます。
この無料サービスを使用するには、任意のURL(例:http : //www.phys.org)からpdfを作成するリンクを追加します。
JavaScriptでメモリ内にPDFを生成できたとしても、そのデータをユーザーに転送する方法に問題があります。JavaScriptがユーザーにファイルをプッシュするだけでは困難です。
ユーザーにファイルを取得するには、ブラウザーに保存ダイアログを表示させるためにサーバー送信を実行する必要があります。
そうは言っても、PDFを生成することはそれほど難しくありません。仕様を読んでください。