ユーザーが注文を取得するために番号を入力するテキストボックスを使用して、この請求書ページに取り組んでいます。現在、私は Windows 7 OS で wamp を使用しています。ユーザーが図を pdf に入力した後、ページを変換してフォルダーに保存し、別のウィンドウに出力して表示しようとしています。
これまでのところ、私は多くのことを行うことができず、過去 2 週間、私は頭がおかしくなりました。どうか、提案が必要です。本当に感謝しています。
これが私がしたいことであり、する必要があることです:
- テキスト ボックスの値を含めて、ページをそのまま html に保存します。
- 保存したページを pdf に変換し、ディレクトリに保存します。
- PDF をユーザーに電子メールで送信します。
これまでのコード
ページのhtmlを保存しています
function printPDF() { var h = '<style></style>'+$('#article').html(); var html = '<html><body><scr'+'ipt>'; html += 'var form = document.createElement("form");'; html += 'form.setAttribute("method","post");'; html += 'form.setAttribute("action","/ajax/pdf/");'; html += 'var h = document.createElement("input");'; html += 'h.setAttribute("type","hidden");'; html += 'h.setAttribute("name","html");'; html += 'h.setAttribute("value","'+escape(h)+'");'; html += 'form.appendChild(h);'; html += 'document.body.appendChild(form);'; html += 'form.submit();'; html += '</sc'+'ript></body></html>'; var w = window.open('',''); w.document.write(html); w.document.close(); }
しかし、問題は、毎回新しいウィンドウを開く必要があり、ajax/jquery を介してバックグラウンドで送信したくないことです。次に、作成された html ドキュメントのテキスト ボックスに値がありません。
ページを pdf に変換してディレクトリに保存する
$filepath = '/www/html/'; $pdfpath = '/www/pdf/'; $filename = date('YmdHisu'); $html = urldecode($_POST['html']); file_put_contents($filepath.$filename.'.html',$html); $pdfcmd = 'wkhtmltopdf.sh '.$filepath.$filename.'.html '.$pdfpath.$filename.'.pdf --disable-javascript'; exec($pdfcmd); if ($fd = fopen($pdfpath.$filename.'.pdf','r')) { $fsize = filesize($pdfpath.$filename.'.pdf'); header('Content-type: application/pdf'); header('Content-length: '.$fsize); header('Cache-control: private'); while(!feof($fd)) { $buffer = fread($fd, 2048); echo $buffer; } fclose($fd); } unlink($filepath.$filename.'.html');
wkhtmltopdf用に入手したラッパーも使用しましたが、どれも機能していないようです