我正在使用文本框处理此发票页面,用户在其中输入数字以获取订单。现在我在 Windows 7 操作系统上使用 wamp,我试图在用户输入他们的数字后将页面转换为 pdf 并将其保存在一个文件夹中,然后将其输出到另一个窗口中以供查看。
到目前为止,我还没有做太多事情,在过去的两周里,这让我发疯了。拜托,我需要建议,非常感谢。
这是我想要和需要做的:
- 将页面保存为 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 获得的包装器,但似乎没有一个工作