2016-02-13 50 views
1

我們正在嘗試使用DOMPDF創建html到pdf。當我們將這個保存到我們的瀏覽器時,它被正確創建。對於創作,我們使用這個功能無法在瀏覽器中加載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錯誤/警告下載DOMPDF最新的穩定版本?您的閱讀器/瀏覽器是否爲PDF錯誤?您可以嘗試在文本編輯器中打開PDF(例如TextEdit或Notepad)。有時PHP警告會被抓到PDF流中。 – BrianS

回答

2

試試這個,從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)); 
    ?> 
相關問題