Dompdf 0.7.0 - 无法从HTML-PHP动态代码生成PDF文件

时间:2016-11-29 02:29:44

标签: php pdf-generation

我正在开发一个需要生成收据并将其发送到打印机的商业系统。我试图通过JQuery调用包含下面代码的文件来生成它(整个代码是一个唯一的文件)。如下:

第一部分(PHP)

Dim strSQL As String
strSQL = " 1=1 "

If Not IsNull(cmbComboBox1) Then
    strSQL = strSQL & " AND Field1 = " & cmbComboBox1
End If

If Not IsNull(cmbComboBox2) Then
    strSQL = strSQL & " AND Field2 = " & cmbComboBox2
End If

If Not IsNull(cmbComboBox3) Then
    strSQL = strSQL & " AND Field3 = " & cmbComboBox3
End If

Me.Filter = strSQL
Me.FilterOn = True

第二部分(HTML-PHP /获取查询结果,它有效):

<?php
ob_start();
$conn = mysqli_connect('localhost','root','','dbname');
mysqli_query($conn,"SET CHARACTER SET UTF8"); 
setlocale(LC_TIME, "Spanish_Colombia");
date_default_timezone_set("America/Bogota");
    $codrc=$_REQUEST["codrc"];
    $sqlRD="SELECT p.product_name,rd.units,rd.unit_cost,df.subtotal
                FROM product p, receipt_detail rd, receipt r
                WHERE p.product_code=df.product_code AND r.receipt_code=rd.receipt_code
AND df.receipt_code=".$codrc;
    $queryRD=mysqli_query($conn,$sqlRD);

    $sqlR="SELECT rec_date_time,total FROM receipt WHERE receipt_code=".$codrc;
    $queryR=mysqli_query($conn,$sqlR);
    $fetchR=mysqli_fetch_assoc($queryR);
    $t=strtotime($fetchR["rec_date_time"]);
?>

第三部分(Dompdf 0.7.0,这是问题所在):

<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title>Untitled Document</title>
</head>
<body>
    <h3 align="center">ENTERPRISE NAME</h3>
  <p align="center">LEGAL REGISTRY CODE</p>

  <p align="center">Date and time:<?php echo utf8_encode(strftime("%A, %d de %B de %Y - %I:%M %p",$t)); ?></p>
  <table border="0">
    <tr>
        <td>Product</td>
      <td>Unit cost</td>
      <td>Units</td>
      <td>Subtotal</td>
    </tr>
   <?php while($fetchDF=mysqli_fetch_assoc($queryDF)){ ?>
    <tr>
        <td><?php echo $fetchRD["product_name"]; ?></td>
      <td><?php echo $fetchRD["unit_cost"]; ?></td>
      <td><?php echo $fetchRD["units"]; ?></td>
      <td><?php echo $fetchRD["subtotal"]; ?></td>
    </tr>
   <?php } ?>
    <tr colspan="4" align="right"><td>No-tax total: $<?php echo $fetchR["total"]*.84; ?></td></tr>
    <tr colspan="4" align="right"><td>Tax: $<?php echo $fetchR["total"]*.16; ?></td></tr>
    <tr colspan="4" align="right"><td>Total: $<?php echo $fetchR["total"]; ?></td></tr>
  </table>
  <p align="center">Thank you for buying, see you soon!</p>
</body>
</html>

现在,我在控制台中获得的唯一响应是一个混乱的字符串。所以,出现了一些问题:

输出缓冲是获取数据的必要条件吗? 我研究了this question,但我发现它使用了旧版本的Dompdf库。任何人都知道从0.5.x到0.7.0的任何变化是否会影响结果?或者我应该使用旧版本的Dompdf进行测试吗?

无论如何直接将生成的PDF发送到票据打印机?

尽快得到任何答复。非常感谢你。

0 个答案:

没有答案