0

ユーザーが注文を取得するために番号を入力するテキストボックスを使用して、この請求書ページに取り組んでいます。現在、私は Windows 7 OS で wamp を使用しています。ユーザーが図を pdf に入力した後、ページを変換してフォルダーに保存し、別のウィンドウに出力して表示しようとしています。

これまでのところ、私は多くのことを行うことができず、過去 2 週間、私は頭がおかしくなりました。どうか、提案が必要です。本当に感謝しています。

これが私がしたいことであり、する必要があることです:

  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

質問のタイトルについては、wkhtmltopdf ダウンロード サイトから最新の Windows インストーラーをダウンロードしてください。

もっと具体的な質問をしてください。私には、これは、特定の質問に対する回答ではなく、使用する既成のソリューションを探しているように見えます。直面している問題を一度に 1 つずつ調べてみてください。問題が発生するたびに、具体的な質問をしてください。

次のようなことから始めます: wkhtmltopdf をインストールできますか? コマンドラインから呼び出すことはできますか?静的 HTML ファイルを使用して PHP から呼び出すことはできますか? などなど

于 2012-08-29T13:22:39.250 に答える