2016-02-13 4 views
1

Мы пытаемся создать html в pdf с помощью DOMPDF. Когда мы сохраняем это в нашем браузере, он создается правильно. Для создания мы используем эту функциюневозможно загрузить pdf в браузере dompdf

function createPDF($pdf_userid, $pdf_content, $pdf_For, $filename){ 
$path='dompdf/'; 
/*$rndNumber=rand(); 
$filename=$pdf_userid.date("Ymd").$rndNumber.'.pdf';*/ 
$dompdf=new DOMPDF(); 
$dompdf->load_html($pdf_content); 
$dompdf->render(); 
$output = $dompdf->output(); 
file_put_contents($path.$filename, $output); 
return $filename;  
} 

Но когда мы пытаемся показать PDF в браузере без сохранения на сервере его показ «Не удалось загрузить PDF». для этого мы используем этот код

try{ 
    $dompdf=new DOMPDF(); 
    $dompdf->load_html($pdf_content); 
    $dompdf->render(); 
    //$output = $dompdf->output(); 
    $dompdf->stream("dompdf_out.pdf", array("Attachment" => false)); 
    exit(0); 
    }catch(exception $e){ 
    print_r($e);} 

Пожалуйста, скажите нам, что случилось во втором коде?

+0

Нет PHP ошибки/предупреждения? Ошибка PDF от вашего читателя/браузера? Вы можете попробовать открыть PDF в текстовом редакторе (например, TextEdit или Notepad). Иногда PHP-предупреждения попадают в поток PDF. – BrianS

ответ

2

Попробуйте и скачать последнюю стабильную версию DOMPDF из GitHub

<?php 
    // include autoloader 
    require_once 'dompdf/autoload.inc.php'; 

    // reference the Dompdf namespace 
    use Dompdf\Dompdf; 
    use Dompdf\Options; 

    $options = new Options(); 
    $options->set('isRemoteEnabled', TRUE); 

    // instantiate and use the dompdf class 
    $dompdf = new Dompdf($options); 

    $context = stream_context_create([ 
     'ssl' => [ 
      'verify_peer' => FALSE, 
      'verify_peer_name' => FALSE, 
      'allow_self_signed'=> TRUE 
     ] 
    ]); 
    $dompdf->setHttpContext($context); 

    $html = file_get_contents("html.html"); 

    $dompdf->loadHtml($html); 

    // (Optional) Setup the paper size and orientation 
    $dompdf->setPaper('A4', 'landscape'); 

    // Render the HTML as PDF 
    $dompdf->render(); 

    // Output the generated PDF to browser 
    $dompdf->stream(); 

    // Output the generated PDF (1 = download and 0 = preview) 
    $dompdf->stream("codexworld",array("Attachment"=>0)); 
    ?> 
Смежные вопросы