Chromeでは、ユーザーはCtrl+Pを押して[PDFに保存]を選択できます。
HTMLボタンを介してこの機能を使用することは可能ですか?
ユーザーがボタンを押すだけで、[PDFとして保存]プロンプトに直接移動するようにします(ファイル名は、Chromeによって自動的に設定されるのではなく、PHPによって設定されます)。したがって、ユーザーは基本的にボタンを押してプロンプトウィンドウの[保存]をクリックするだけです。
これは可能ですか?前の手順をスキップできますか?
Chromeでは、ユーザーはCtrl+Pを押して[PDFに保存]を選択できます。
HTMLボタンを介してこの機能を使用することは可能ですか?
ユーザーがボタンを押すだけで、[PDFとして保存]プロンプトに直接移動するようにします(ファイル名は、Chromeによって自動的に設定されるのではなく、PHPによって設定されます)。したがって、ユーザーは基本的にボタンを押してプロンプトウィンドウの[保存]をクリックするだけです。
これは可能ですか?前の手順をスキップできますか?
いいえ、それは不可能です。
ただし、HTMLファイル出力をPDFファイルとしてダウンロードする選択肢をユーザーに与えることができます。周りにいくつかのライブラリがあります。Princeは最高ですが高価なので、DOMPDFをチェックしてください。
ユーザーがブラウズでctrl+Pを押すことができるときまでに、(サーバー上で)ページを生成したPHPプロセスはすでに閉じられています。
PHPがブラウザを直接制御しないという事実に加えて。HTML / CSSの形式で情報を送信するだけで、この場合はJavaScriptで重要です。
JavaScriptを使用すると、ブラウザの通常の印刷動作をトリガーできますが、それを制御することはできません。
別のアプローチは、サーバー上でPDFを生成し、それをファイルとしてブラウザーに送信することです。この場合、ブラウザはユーザーにそれを開くかどうかを尋ねるか、ユーザーにダウンロードするかどうかを尋ねます。
私は個人的にfPDFを使用して、さまざまなオープンソースのeコマースソフトウェアのPDF請求書をカスタマイズしました。たとえば、PrestaShopのように。
あなたが本当にする必要があるのは(fPDF](http://www.fpdf.org/)からライブラリをダウンロードすることだけですが、それが実際に動作しているのを見て、動作中のバージョンを変更/適応できることはあなたが探すことができるようにあなたを助けるかもしれませんフォルダクラス内のPrestaShopインストールのPDF請求書のファイル名はPDF.phpです。
私のビューにはメインレンダリングを行ういくつかのjquery関数が含まれているため、サーバー上でpdfに変換しようとして数時間を失いました。ブラウザを使用してPDFとして保存するボタンを提供することを考えましたが、クライアント側でjavascriptを使用してPDFへのレンダリングを行うことを選択しました。これは特定の場合には最適な解決策ではないかもしれませんが、私の場合は最も賢明な解決策に見えました。
html2pdf.jsを使い始めたばかりのライブラリがたくさんあり、今のところ正常に動作しています。