0

我正在使用文本框处理此发票页面,用户在其中输入数字以获取订单。现在我在 Windows 7 操作系统上使用 wamp,我试图在用户输入他们的数字后将页面转换为 pdf 并将其保存在一个文件夹中,然后将其输出到另一个窗口中以供查看。

到目前为止,我还没有做太多事情,在过去的两周里,这让我发疯了。拜托,我需要建议,非常感谢。

这是我想要和需要做的:

  1. 将页面保存为 html 格式,包括文本框中的值。
  2. 将保存的页面转换为 pdf 并存储在目录中。
  3. 通过电子邮件将 pdf 发送给用户。

到目前为止的代码

  1. 保存页面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 文档没有文本框中的值,它们都被清除了。

  1. 将页面转换为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 获得的包装器,但似乎没有一个工作

4

1 回答 1

0

至于问题的标题:Download the latest windows installer from The wkhtmltopdf download site

请提出更具体的问题。对我来说,这看起来像是您正在寻找一个现成的解决方案来使用,而不是一个特定问题的答案。试着一步一步解决你面临的问题,每次遇到问题时,问一个具体的问题。

从以下内容开始:您可以安装 wkhtmltopdf 吗?你可以从命令行调用它吗?您可以使用静态 HTML 文件从 PHP 调用它吗?等等等等

于 2012-08-29T13:22:39.250 回答