1

我是用于创建 pdf 的 TCPDF PHP 库的新手。我可以打印表格的第一列,但无法打印其余部分。这是我的代码

<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 &amp; 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> &nbsp;{$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&apos;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> &nbsp;{$i}</td>
            <td>&nbsp;{$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 输出文件中的结果是 Only the content of first that is above the mysql connect. 第一列变量正在打印。结果如下

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
4

1 回答 1

1

我想的问题是由于适当的表格列高度和宽度。在为所有列设置适当的高度和宽度后,即在 td 字段中,其余字段能够获取值。如果没有适当的表属性,Tcpdf 不会打印值。现在问题已经解决了。

于 2013-04-24T18:15:52.277 回答