我有一张类似以下发票的表格
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
dir="<?php echo $direction; ?>"
lang="<?php echo $lang; ?>"
xml:lang="<?php echo $lang; ?>">
<head> <title><?php echo $title;
?></title> <link rel="stylesheet"
type="text/css" href="theme/<?php echo
$template;
?>/stylesheet/stylesheet.css" />
<style type="text/css"> body {
background: #FFFFFF; } </style>
</head> <body>
<div style="page-break-after: always;
"> <table width="100%"> <tr>
<td width="auto" align="left"><a href="<?php echo $url_logo; ?>"
title="<?php echo $_name; ?>"><?php
echo "<img src=".$logo." alt=\"Logo
Store\" style=\"border: none;\" />";
?></a></td>
<td width="*" valign="middle"><h1><?php echo
$heading_title; ?></h1></td> </tr>
</table><div class="line"></div>
<div class="div_">
<table width="100%">
<tr>
<td>
<?php echo $_address; ?><br />
<?php if ($telephone) { ?>
<?php echo $store_telephone; ?><br />
<?php } ?>
<?php echo $_email; ?><br /> </td>
<td align="right" valign="top"> <table>
<?php if ($invoice_id) { ?>
<tr>
<td><b><?php echo $txt_invoice_id; ?></b></td>
<td>: <?php echo $invoice_id; ?></td>
</tr>
<?php } ?> <?php if ($historys) { ?> <?php foreach ($historys as $history) { ?
<tr>
<td><b><?php echo $column_date_added; ?></b></td>
<td>: <?php echo $history['date_added']; ?></td>
</tr>
<tr>
<td><b><?php echo $column_status; ?></b></td>
<td>: <?php echo $history['status']; ?></td>
</tr> <?php } ?> <?php } ?>
<tr>
<td><b><?php echo $txt_order_id; ?></b></td>
<td>: <?php echo $order_id; ?></td>
</tr> <?php if ($shipping_method) { ?>
<tr>
<td><b><?php echo $txt_shipping_method; ?></b></td>
<td>: <?php echo $shipping_method; ?></td>
</tr> <?php } ?>
<tr>
<td><b><?php echo $txt_payment_method; ?></b></td>
<td>: <?php echo $payment_method; ?></td>
</tr>
</table>
</td>
</tr>
</table> </div> </div> </body> </html>
通过http://www.mysite.com/index.php?print=page/invoice&id=952访问发票表单 和发票延期是.tpl
我尝试过使用FPDF(http://www.fpdf.org/),但失败了,似乎FPDF与css不匹配,于是我尝试使用tcpdf(http://www.tcpdf.org) )关于来自http://www.tcpdf.org/examples/example_054.phps,但是只有PHP代码可见错误:例如<?php echo $history['status']; ?>
有没有人有经验或有问题?请在这里分享,或者有相同的样品?提前谢谢
答案 0 :(得分:3)
最大的问题是,没有能够很好地处理HTML代码的库。
dom-pdf是一个非常好的,但是嵌套表仍有很大的问题。我猜你应该这样做。它也可以处理一下css。
安全问题: 要解决DOMPDF的安全问题,只需稍微修改DOMPDF以仅在cgi模式下运行,防止来自外部源的任何访问,并且只能从您的应用程序调用。
如果您可以自己创建表,我强烈建议您使用fpdf。你将无法处理任何CSS,但fpdf有很多格式化的可能性。
对于dom-pdf你有一个来自上面的kinjal的链接。和你已经找到的fpdf。
答案 1 :(得分:3)
正如Helle所说,FPDF是一个非常巧妙的工具,用于从PHP生成PDF。虽然使用FPDF,但您必须深入研究其手册,因为它不会将HTML转换为PDF。根据我的经验,FPDF使用起来相当简单,你不应该有太多麻烦。
答案 2 :(得分:1)
wkhtml使用WebKit渲染引擎,因此产生了出色的结果。有关详细信息,请参阅Converting html to pdf in php?上的答案。