2014-09-01 9 views
1

У меня есть это PHP файл с именем print.php:Использование PHP DOMPDF и AJAX для загрузки файла PDF

<?php 
require_once("modules/pdf/dompdf_config.inc.php"); 
$html = $_POST["toRender"]; 
$number = $_POST["number"]; 
$dompdf = new DOMPDF(); 
$dompdf->load_html($html); 
$dompdf->render(); 
$dompdf->stream($number.".pdf"); 

Как вы можете видеть, HTML и номер принимаются через POST.

Файл JavaScript выглядит следующим образом:

$("#btnViewPDF").click(function() { 

     var theHtml = $("#printable").html(); 
     var theNumber = $("#invoiceNumber").val(); 

     $.ajax({ 
      type : "post", 
      url : "views/print.php", 
      data : {toRender : theHtml, number : theNumber}, 
      beforeSend: function() { 
       $(".ajax-loader-bg").fadeIn(); 
      } 
     }).always(function() { 
      $(".ajax-loader-bg").fadeOut(); 
     }); 
     return false; 
    }); 

В основном он принимает все содержимое внутри DIV под названием «версия для печати», но то, что я хочу, это следующий PDF, который был сформирован в print.php для отображения

, Я не смог понять, как это сделать.

Я заработал, когда я создаю тестовый HTML внутри print.php, а затем набираю url mysite.com/print.php ... он отображает PDF-файл и позволяет загрузить его или просмотреть его в другой вкладке браузера.

Как я могу достичь этого через AJAX?

ответ

3

Вы не можете загрузить что-либо через AJAX, вы можете имитировать поведение с помощью скрытого iframe.

Нельзя загрузить его, но он никогда не окажется в файловой системе для сохранения цели, потому что javascript не может этого сделать по соображениям безопасности.

Во всяком случае люди всегда находят решения, вы можете попробовать это: https://stackoverflow.com/a/23797348/1131176

+0

Очень внимательный человек! Хотя я пошел к сейфу. Я сделал другую страницу для каждого формата PDF, в котором я нуждался. Я буду проверять, могу ли я сделать эту работу правильно с помощью этого метода! – JuanBonnett

Смежные вопросы