Comment mettre les en-têtes de colonnes d'un tableau sur chaque page en tcpdf?
Le code utilisé pour imprimer le fichier pdf est comme suit:
class MYPDF extends TCPDF {
//Load table data from file
public function LoadData($file) {
//Read file lines
$lines = file($file);
$data = array();
foreach($lines as $line) {
$data[] = explode(';', chop($line));
}
return $data;
}
//Colored table
public function ColoredTable($header,$data) {
//Colors, line width and bold font
$this->SetFillColor(233, 136, 64);
$this->SetTextColor(255);
$this->SetDrawColor(128, 0, 0);
$this->SetLineWidth(0.3);
$this->SetFont('', 'B');
//Header
$w = array(10, 40, 20, 20, 20, 20, 20);
$num_headers = count($header);
for($i = 0; $i < $num_headers; ++$i) {
$this->Cell($w[$i], 7, $header[$i], 1, 0, 'C', 1);
}
$this->Ln();
//Color and font restoration
$this->SetFillColor(224, 235, 255);
$this->SetTextColor(0);
$this->SetFont('');
//Data
$fill = 0;
foreach($data as $row) {
$this->Cell($w[0], 6, $row[0], 'LR', 0, 'C', $fill);
$this->Cell($w[1], 6, $row[1], 'LR', 0, 'L', $fill);
$this->Cell($w[2], 6, $row[2], 'LR', 0, 'C', $fill);
$this->Cell($w[3], 6, $row[3], 'LR', 0, 'C', $fill);
$this->Cell($w[4], 6, $row[4], 'LR', 0, 'C', $fill);
$this->Cell($w[5], 6, $row[5], 'LR', 0, 'C', $fill);
$this->Cell($w[6], 6, $row[6], 'LR', 0, 'C', $fill);
$this->Ln();
$fill=!$fill;
}
$this->Cell(array_sum($w), 0, '', 'T');
}
}
//create new PDF document
$pdf = new MYPDF(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 011');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');
//set default header data
$pdf->SetHeaderData(PDF_GYANKUTIR_LOGO, PDF_HEADER_LOGO_WIDTH, 'GyanKutir',
'Jhunjhunu International Wisdom City
Near Khemi Shakti Temple
Jhunjhunu (Rajasthan)-333001');
//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('helvetica', '', 6);
//add a page
$pdf->AddPage();
//Column titles
$header = array('Rank', 'Student', 'Time Used', 'Correct Answers', 'Wrong Answers','Questions Skipped','Final Score');
$final_data = $smarty->fetch($file_to_show);
$file = fopen("text.txt","w+");
file_put_contents($file,"");
fwrite($file,$final_data);
fclose($file);
ob_start();
ob_flush();
//Data loading
$data = $pdf->LoadData('text.txt');
//print colored table
$pdf->ColoredTable($header, $data);
//---------------------------------------------------------
ob_flush();
//Close and output PDF document
$pdf->Output('example_011.pdf', 'I');
//============================================================+
//END OF FILE
//============================================================+
Je veux ajouter les en-têtes des colonnes de tableau sur chaque page. La capture d'écran est joint à la présente question. Dans la première capture d'écran les titres sont s'affiche mais dans la deuxième capture d'écran de la ne se font pas affiché. Comment faire pour afficher les en-têtes de colonne dans les pages suivantes? Merci de m'aider à résoudre ce problème. merci à l'Avance.Cette image est la première page d'un tableau en pdf.
source d'informationauteur PHPLover
Vous devez vous connecter pour publier un commentaire.
Une autre méthode serait de tout simplement utiliser la balise THEAD en html.
Il semble TCPDF répète l'en-tête sur chaque page.
EPB de la Méthode 2 a fonctionné pour moi, mais je l'ai modifié un peu juste et utilisé $pdf->startTransaction(); au lieu de $this->startTransaction(); comme mon script était déjà formaté de cette manière.
Merci beaucoup!