我会尝试在pdf上打印一个动态生成的html表,试图在PHP文件中复制表格html代码并使用tcpdf示例在pdf上打印它但这不起作用。
这是表table code的html代码的链接。
这是PHP代码:
<?php
// Include the main TCPDF library (search for installation path).
require_once('tcpdf.php');
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Nicola Asuni');
$pdf->SetTitle('TCPDF Example 048');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');
// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 048', PDF_HEADER_STRING);
// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
// set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
// set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
// set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
// set font
$pdf->SetFont('helvetica', 'B', 20);
// add a page
$pdf->AddPage();
$pdf->Write(0, 'Example of HTML tables', '', 0, 'L', true, 0, false, false, 0);
$pdf->SetFont('helvetica', '', 8);
// -----------------------------------------------------------------------------
$tbl =<<<EOD
<table border="1">
<tr>
<td width="100%" colspan="4" class="verde">B. Impianti di generazione di energia
(termica, elettrica, cogenerazione, ...)<br> Aggiungere nuove
colonne in caso l\'impianto sia dotato di più di 4 generatori.
</td>
</tr>
<tr>
<td colspan="2">numero di generatori</td>
<td class="grassetto"> Generatore 12</td>
<td></td>
</tr>
<tr>
<td class="capolinea">B0.</td>
<td class="grassetto">Funzione</td>
<td class="giallo">termico</td>
<td> </td>
</tr>
<tr>
<td class="capolinea">B1.</td>
<td class="grassetto">Potenza termica nominale</td>
<td class="giallo">23</td>
<td class="corsivo">Indicare la potenza termica nominale di ogni generatore [kW]</td>
</tr>
<tr>
<td class="capolinea">B2.</td>
<td class="grassetto">Potenza elettrica nominale</td>
<td class="giallo">23</td>
<td class="corsivo">Indicare la potenza elettrica nominale di ogni generatore [kW]</td>
</tr>
<tr>
<td class="capolinea">B3.</td>
<td class="grassetto">Fonti energetiche utilizzate</td>
<td class="giallo"><ul class="allsin"><li>pellet di legno;</li></ul></td>
<td class="corsivo">Indicare per ogni unità di generazione la/le fonte/fonti utilizzata/e per produzione di energia termica,
rinnovabile o non rinnovabile (in caso di recuperi da processi
industriali, specificare la fonte utilizzata nel processo).
</td>
</tr>
<tr>
<td class="capolinea" rowspan="2">B4.</td>
<td class="grassetto" rowspan="2">Rendimento di conversione medio
dell\'impianto</td>
<td class="giallo">23</td>
<td rowspan="2">specificare se: dichiarato dal costruttore o dato medio ricavato in esercizio</td>
</tr>
<tr>
<td class="giallo">Costruttore</td>
</tr>
<tr>
<td class="capolinea" rowspan="2">B5.</td>
<td class="grassetto" rowspan="2">Rendiemnto di conversione medio
dell\'impianto che produce elettricità</td>
<td class="giallo">23</td>
<td rowspan="2">specificare se: dichiarato dal costruttore o dato medio ricavato
in esercizio</td>
</tr>
<tr>
<td class="giallo">Costruttore</td>
</tr>
<tr>
<td class="capolinea">B6.</td>
<td class="grassetto">Sigla generatore</td>
<td class="giallo">23</td> <td class="corsivo">La sigla del generatore riportata
nell\'autorizzazione alle emissioni in atmosfera (rilasciata dalla
Provincia ai sensi del DPR n. 203 del 1988 o del D.Lgs. n. 152 del
2006), <b>se l\'impianto prevede il rilascio di tale autorizzazione</b>
</td>
</tr>
<tr>
<td class="capolinea">B7.</td>
<td class="grassetto">Ore di funzionamento annue</td>
<td class="giallo">23</td> <td> </td>
</tr>
<tr class="piccolo medio">
<td class="capolinea">B8.</td>
<td class="grassetto">Inquinante; emissione; unità di misura</td>
<td class="giallo"><ul class="allsin"></ul></td>
<td class="corsivo"><b>ogni impianto soggetto ad autorizzazione alle
emissioni</b> deve fare o un autonomo controllo 1 volta l\'anno (si
tratta di certificati analitici: si prega di inviare tali relazioni
in allegato alla presente tabella) o misure in continuo (in questo
caso indicare l\'inquinante, le emissioni corrispondenti e l\'unità di
misura in una singola cella separandoli con un punto e virgola).
Inserire righe aggiuntive se necessario</td>
</tr>
<tr class="piccolo medio">
<td class="capolinea">B9.</td>
<td class="grassetto">Sistema di abbattimento degli inquinanti</td>
<td class="giallo">abbattimento2</td>
<td class="corsivo">Indicare i sistemi di abbattimento degli
inquinanti installati, inserendo lo stesso se più
generatori fanno riferimento ad un unico camino e ad un\'unica linea
fumi</td>
</tr>
</table>
EOD;
$pdf->writeHTML($tbl, true, false, false, false, '');
// -----------------------------------------------------------------------------
$tbl = <<<EOD
<table cellspacing="0" cellpadding="1" border="1">
<tr>
<td rowspan="3">COL 1 - ROW 1<br />COLSPAN 3<br />text line<br />text line<br />text line<br />text line<br />text line<br />text line</td>
<td>COL 2 - ROW 1</td>
<td>COL 3 - ROW 1</td>
</tr>
<tr>
<td colspan="2">COL 2 - ROW 2 - COLSPAN 2<br />text line<br />text
line<br />text
line<br />text line</td>
<td>COL 3 - ROW 2</td>
</tr>
<tr>
<td>COL 3 - ROW 3</td>
</tr>
</table>
EOD;
$pdf->writeHTML($tbl, true, false, false, false, '');
// -----------------------------------------------------------------------------
//Close and output PDF document
$pdf->Output('example_print.pdf', 'I')
?>
但只有第二张表正在打印;
任何帮助或建议都将不胜感激......
答案 0 :(得分:2)
经过长时间的测试后,我发现问题...是UTF-8中带有'à'或'ù'等重音的字母
解决问题改变了行
$pdf->writeHTML($tbl, true, false, false, false, '');
在
$tbl=utf8_encode($tbl);
$pdf->writeHTML($tbl, true, false, false, false, '');
它工作!!!!
答案 1 :(得分:0)
你在最后一行丢失了一个分号。
更改
$pdf->Output('example_print.pdf', 'I')
到
$pdf->Output('example_print.pdf', 'I');
最后,HEREDOC的终止端不应有任何保证金
EOD;
上的HEREDOC部分