我是TCPDF PHP库的新手,用于创建pdf。我可以打印表格的第一列但无法打印其余表格。这是我的代码
<html>
<head>
<title>Admit Card</title>
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css" rel="stylesheet">
<script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js"></script>
<style>
@media print {
@page { margin: 0; }
body { margin: 1.6cm; }
}
</style>
<script type="text/javascript" src="library/jquery-1.8.3.js" > </script>
<script type="text/javascript">
function PrintElem(elem)
{
Popup($(elem).html());
}
function Popup(data)
{
var mywindow = window.open('', 'admit', 'width=800');
mywindow.document.write('<html><head><title></title>');
/*optional stylesheet*/ //mywindow.document.write('<link rel="stylesheet" href="main.css" type="text/css" />');
mywindow.document.write('</head><body >');
mywindow.document.write(data);
mywindow.document.write('</body></html>');
mywindow.print();
mywindow.close();
return true;
}
</script> </head> <body>
<div id="mydiv">
<?php
ob_start();
session_start();
require_once('tcpdf/config/lang/eng.php');
require_once('tcpdf/tcpdf.php');
//ob_start();
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
//$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'ISO-8859-1', false);
// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Dummy Dummy');
$pdf->SetTitle('Dummy Dummy');
$pdf->SetSubject('Dummy Dummy');
$pdf->SetKeywords('Dummy Dummy');
// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' CIT Kokrajhar', 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 some language-dependent strings
$pdf->setLanguageArray($l);
// set font
$pdf->SetFont('dejavusans', '', 10);
// add a page
$pdf->AddPage();
$html='
<table class="table" border="1"> <tr>
<td>Sl. No.</td>
<td>Name & Father Name</td>
<td>Nos.</td>
<td>Roll Number</td>
<td width="98">Photo</td>
<td>Signature</td>
<td>Remarks</td>
</tr>
';
//$html = ob_start();
$pdf->writeHTML($html, true, false, true, false, '');
?>
<?php
//
$username='root';
$password = '';
$conn = new PDO('mysql:host=localhost;dbname=somedbname',$username, $password);
if(isset($_GET['exam'])){
try{
$center=$_GET['center'];
$exam=$_GET['exam'];
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$strquery="SELECT * FROM dummytable_2013 WHERE `centre1`='".$center."' AND `examtype` LIKE '".$exam."%' ORDER BY RIGHT(`roll_number`, 3) ASC";
$stmt=$conn->prepare($strquery);
$stmt->execute();
//$rs = $stmt -> get_result();
$rows = $stmt -> fetchAll();
$i=0;
//print_r($rows);
foreach($rows as $row){
$i=$i+1;
$form_number=$row['form_number'];
$name=$row['name'];
$roll=$row['roll_number'];
$examtype=$row['examtype'];
$sex=strtoupper($row['sex']);
$dob = $row['dob'];
$category = $row['category'];
$countrycode = $row['nationality'];
$email = $row['email'];
$region = $row['region'];
$examcenter1 =$row['centre1'];
$examcenter2 = $row['centre2'];
$examcenter3 = $row['centre3'];
$fathersname = strtoupper($row['fathersname']);
$mothersname = strtoupper($row['mothersname']);
$paddress = strtoupper($row['paddress']);
$caddress = strtoupper($row['caddress']);
$examname1 = $row['exam1'];
$year1 = $row['year1'];
$grade1 = $row['grade1'];
$percentage1 = $row['percentage1'];
$examname2 = $row['exam2'];
$year2 = $row['year2'];
$grade2 = $row['grade2'];
$percentage2 = $row['percentage2'];
$examname3 = $row['exam3'];
$year3 = $row['year3'];
$grade3 = $row['grade3'];
$percentage3 = $row['percentage3'];
$ddnumber = $row['ddnumber'];
$ddamount = $row['ddamount'];
$dddate = $row['dddate'];
$dddrawnat = $row['dddrawnat'];
$ddbranch = $row['ddbranch'];
$photo = $row['photoname'];
$substr="substr";
if($i%7==0){
$pdf->lastPage();
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Print a table
// add a page
$pdf->AddPage();
$html=<<<EOF
<tr>
<td>{$substr($roll, -3)}</td>
<td>Candidates Name:
Fathers Name:
</td>
<td>{$substr($roll, -3)}</td>
<td></td>
<td><img src="{$photo}" border="1" width="95" height="105">
</td>
<td> {$i}</td>
<td>{$form_number}</td>
</tr>
EOF;
// $html = ob_start();
$pdf->writeHTML($html, true, false, true, false, '');
}
else{
$html=<<<EOF
<tr>
<td>{$substr($roll, -3)}</td>
<td>Candidate's Name:
Fathers Name:
</td>
<td>{$substr($roll, -3)}</td>
<td>{$roll}</td>
<td><img src="{$photo}" border="1" width="95" height="105">
</td>
<td> {$i}</td>
<td> {$form_number}</td>
</tr>
<?php
EOF;
//$html = ob_get_contents();
$pdf->writeHTML($html, true, false, true, false, '');
}
}
//function to send email
}
catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
// reset pointer to the last page
$pdf->lastPage();
// ---------------------------------------------------------
//Close and output PDF document
$pdf->Output('rep/'.$exam.'.pdf', 'F');
ob_clean();
?>
</table>
</div>
<center>
<input value="Print The Sheet" class="btn btn-large btn-success" onclick="PrintElem('#mydiv')" type="button">
</center>
</body>
</html>
<?php
}
else{
echo 'session not set';
}
?>
TCPDF输出文件中的结果是 只有mysql上面的第一个内容才能连接。第一列变量是打印。结果如下
TCPDF Example Dummy Dummy
by Nicola Asuni - Tecnick.com www.tcpdf.org
Sl. No. Name & Father Name Nos. Roll Number Photo Signature Remarks
001
002
003
004
答案 0 :(得分:1)
我想到的问题是由于正确的表格列高度和宽度。在为所有柱子设置适当的高度和宽度之后,即在td字段中,剩余场能够获得值。 如果没有正确的表属性,则Tcpdf不会打印值。问题现在解决了。