2013-07-02 131 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