我在这个发票页面上使用文本框,用户可以在其中输入数字以获得订单。现在,我在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获得的包装器,但似乎没有一个能工作
关于问题的标题:从wkhtmltopdf下载网站下载最新的windows安装程序。
请问一个更具体的问题。对我来说,这看起来像是你在寻找一个现成的解决方案,而不是一个特定问题的答案。试着一步一步地解决你面临的问题,每次遇到问题,都要问一个具体的问题。
从以下内容开始:你能安装wkhtmltopdf吗?你能从命令行调用它吗?你能用静态HTML文件从PHP调用它吗?等等。