0

データベースからの値で生成された動的な html ページを作成しています。ユーザーには、div を「非表示」にし、ページ上の他の要素を操作するオプションがあります。ページ上のすべての HTML を DOMPDF に送信し、ダウンロード リンクを生成したいと考えています。

<a href="dl.php">Download</a>

dl.php には、html が DOMPDF に送信されて生成される次のようなものがあります。

$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("myCV.pdf");

ただし、ユーザーがページ上のDOMを操作していて、リンクなどを取り除きたいので、jqueryを使用してhtmlを取得しています

   $('a').wrap('<span style="display:none;"></span>');
   var fullhtml = $("#body").html();
   fullhtml = encodeURIComponent(fullhtml);

annnndd は大きなページなので、GET を使用できず、POST を使用して html を送信する必要があります。dl.php への html を使用して AJAX 呼び出しを実行し、ページを「インクルード」して実行できるようにするにはどうすればよいですか? AJAX呼び出しから何かを返すと、pdfファイルがテキストに変換されて混乱します。

4

1 に答える 1

3

あなたの質問を正確に理解しているかどうかはわかりませんが、私が理解している限り、ページの HTML を取得し、すべてのリンクを非表示にしてから、POST リクエスト内のすべてを に送信していますdl.phpよね? したがってdl.php、次のように言えます。

$html = urldecode($_POST['html']);
$dompdf = new DOMPDF();
$dompdf->load_html($html);
//...

右?

ユーザーにリンクをクリックしてこのプロセスを開始させることができます。その時点で、送信が行われる前に、処理された HTML (リンクを非表示にするなど) を使用して非表示の入力をフォームに入力します。

$('a#submit_link').click(function() {
  // wrap links, etc. here
  var html = $("body").html();
  $('#hidden_form_input').val($html);
  $('#hidden_form').submit();
});

このようなものは、生成された PDF をユーザーに提示する必要があります。

于 2011-08-08T22:10:50.717 に答える