2013-07-02 154 views
0

我正在使用dompdf從php文件生成PDF。這是該文件的完整代碼:生成php代碼爲pdf

<?php 

// INCLUDEM CONFIGUL SI INITIALIZAM CLASELE DE SISTEM 
require_once 'config.php'; 
require_once 'initialize.php'; 
require_once("/dompdf/dompdf_config.inc.php"); 

// Database 
// Conectarea LA BAZA DE DATE !!! 
$db = new MySQLDatabase(); 

// Session 
// SESIUNEA CARE TINE UTILIZATORUL LOGAT ! 
$session=new Session();  
?> 

<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<link href="main.css" media="all" rel="stylesheet" type="text/css"> 
    <link href='http://fonts.googleapis.com/css?family=Allura' rel='stylesheet' type='text/css'> 
    <script type="text/javascript" src="<?php echo HTTP_FRONT; ?>js/jquery-1.8.3.js"></script> 
    <title>Sanovita</title> 
</head> 
<body> 
    <script> 
    $(document).ready(function(){ 
     $('.AdaugaCategoriile p#1').hide(); 
     $('.AdaugaCategoriile p#2').hide(); 
     $('.AdaugaCategoriile p#3').hide(); 
     $('.AdaugaCategoriile p#4').hide(); 

     $('#categorie').change(function(){ 

      var categorie = $(this).val(); 

      $('.AdaugaCategoriile p#1').hide(); 
      $('.AdaugaCategoriile p#2').hide(); 
      $('.AdaugaCategoriile p#3').hide(); 
      $('.AdaugaCategoriile p#4').hide(); 

      $('.AdaugaCategoriile p#'+categorie).show(); 
     }); 

    }); 
    </script> 
    <div id="Body"> 
     <div id="Header"> 
      <div id="HeaderLogo"> 
       <a href="index.php"><img src="images/logo.png"></a> 
      </div> 
      <div id="Menu"> 
       <div class="clear"></div> 
      </div> 
     </div> 
     <div id="Content"> 
      <div class="Categorii"> 
       <?php 

       // daca nu exista id-ul produsului 
       if(isset($_GET['id'])) 
       { 
        $res = $db->query("SELECT * FROM `vanzari` WHERE `id_client`=".$_GET['id']." AND `finalizat`=0"); 

        $categoriile = '<table> 
          <th width="2%">Nr.</th> 
          <th width="15%">Nume Client</th> 
          <th width="15%">Nume Angajat</th> 
          <th width="15%">Produs</th> 
          <th>Data</th> 
          <th>Cantitate</th> 
          <th width="10%">Total pret</th> 
          <th width="15%">Stare</th> 
          <th>Actiuni</th>'; 

        $x = 1; 
        // AFISEZ PRODUSELE 
        for($i=0; $i<$res->num_rows; $i++) 
        { 
         $client = $db->query("SELECT * FROM `clienti` WHERE `id`=".$res->rows[$i]['id_client'].""); 
         $produs_vanzare = $db->query("SELECT * FROM `produse` WHERE `id`=".$res->rows[$i]['id_produs'].""); 
         $angajat = $db->query("SELECT * FROM `utilizatori` WHERE `id`=".$res->rows[$i]['id_angajat'].""); 

         if($res->rows[$i]['finalizat'] == 0) 
         { 
          $status = 'In curs de finalizare'; 
         } 
         else 
         { 
          $status = 'Finalizat'; 
         } 

         // daca produsul e par 
         if(($i%2)==0) 
         { 
          $categoriile .= " 
          <tr class='odd'> 
           <td><p>".$x."</p></td> 
           <td><p>".$client->row['nume_client']."</p></td> 
           <td><p>".$angajat->row['firstname']. ' ' . $angajat->row['lastname']."</p></td> 
           <td><p>".$produs_vanzare->row['name']."</p></td> 
           <td><p>".$res->rows[$i]['data']."</p></td> 
           <td><p>".$res->rows[$i]['bucati']."</p></td> 
           <td><p>".$res->rows[$i]['total_pret']." RON</p></td> 
           <td><p>".$status."</p></td> 
           <td><a href='".HTTP_FRONT."vanzari.php?id_vanzare=".$res->rows[$i]['id']."&id=".$client->row['id']."'><p>Sterge</p></a></td>  
          </tr>"; 
         } 
         else 
         { 
          $categoriile .= " 
          <tr class='even'> 
           <td><p>".$x."</p></td> 
           <td><p>".$client->row['nume']."</p></td> 
           <td><p>".$angajat->row['firstname']. ' ' . $angajat->row['lastname']."</p></td> 
           <td><p>".$produs_vanzare->row['name']."</p></td> 
           <td><p>".$res->rows[$i]['data']."</p></td> 
           <td><p>".$res->rows[$i]['bucati']."</p></td> 
           <td><p>".$res->rows[$i]['total_pret']." RON</p></td> 
           <td><p>".$status."</p></td> 
           <td><a href='".HTTP_FRONT."vanzari.php?id_vanzare=".$res->rows[$i]['id']."&id=".$client->row['id']."'><p>Sterge</p></a></td> 
          </tr>"; 
         } 

         $x++; 
        }       
        $categoriile .= "</table><div class='clear'></div>"; 

        if(!isset($session->data['finalizat'])) 
        { 
         echo $categoriile; 
        } 
       } 

       ?> 
      </div> 

     </div> 
     <div class="clear"></div> 
     <div id="Footer"> 
      <p>Copyright &copy; 2013</p> 
     </div> 
    </div> 
</body> 
</html> 

<?php 
$html = ob_get_clean(); 
$dompdf = new DOMPDF(); 
$dompdf->load_html($html); 
$dompdf->render(); 
$dompdf->stream("factura.pdf"); 

?> 

dompdf只生成我的HTML部分,但php不顯示。在配置中,DOM_ENABLE_PHP設置爲true。 有什麼問題?

+0

如果你想讓我們更容易,做一個存在問題的儘可能小的例子。可能如果你做了'

測試

'而不是你所有的代碼,你仍然有問題,並且它會更容易找到問題。如果你這樣做,它不會顯示問題,你突然間更接近解決方案! – Nanne

回答

0

您正在將所有PHP生成的輸出存儲到$categoriile。然後你檢查是否沒有設置$session->data['finalizat'] ......也許你沒有達到這個條件。檢查$session->data['finalizat']。您還沒有ob_start(每Nanne的通知)

+0

我已經把ob_start,但它不顯示它。關於存儲,我在PHP頁面上測試了代碼,並且php給我所有的信息,所以php代碼正在工作。 – Mihai

1

它看起來像你想抓住你所有的輸出(至少,這就是我想從你的ob_get_clean();利用找到的。但是你從來沒有打電話ob_start,所以你「重可能只是所有的數據推到瀏覽器/輸出,並獲得什麼也沒有。

剛剛建立你的HTML中的字符串,然後使用該輸入。

試試這個

<?php 
require_once 'config.php'; 
require_once 'initialize.php'; 
require_once("/dompdf/dompdf_config.inc.php"); 

$db = new MySQLDatabase(); 
$session=new Session();  

$html = <<<HTML 
<html> 
<head> 
</head> 
<body> 
<div> 
<p> 
test 
</p> 
</div> 
</body> 
</html> 
HTML; 

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

?> 
+0

我已經把ob_start();在開始時,但它並沒有出現任何的PHP數據。如何在字符串中使用html?我不明白... – Mihai

+0

我沒有看到你的'ob_start()'?無論如何,看看我的評論:做一個_REALLY SMALL_例子,例如刪除所有數據庫的東西。閱讀http://sscce.org/如果你需要它:) .. – Nanne

+1

(你怎麼能把'ob_start()'放在你的源代碼中,但是沒有顯示它?它可以在你的源代碼中,或者它不是無論如何,看看我的編輯,該HTML應該已經在你的問題(我的意思是說,這將幫助我們很多) – Nanne