MatBoy Posted November 17, 2011 Share Posted November 17, 2011 Hi Guys, I'm trying to accomplish using the following script to make the products array larger and add a new page when the page is filled. This does not work, it seems that I have to do something with my $currY that I need to recalculate, but I can't figure out how. At the moment the script gives with about 40 lines of items also 40 pages where everything is everywhere on all pages and I can't have a clue for this. Is anyone willing to help me out here ? require_once('tcpdf/config/lang/eng.php'); require_once('tcpdf/tcpdf.php'); class MYPDF extends TCPDF { public function Header() { $this->setJPEGQuality(90); $this->Image('logo.png', 120, 10, 75, 0, 'PNG', 'http://www.finalwebsites.com'); } public function Footer() { $this->SetY(-15); $this->SetFont(PDF_FONT_NAME_MAIN, 'I', ; $this->Cell(0, 10, 'finalwebsites.com - PHP Script Resource, PHP classes and code for web developer', 0, false, 'C'); } public function CreateTextBox($textval, $x = 0, $y, $width = 0, $height = 10, $fontsize = 10, $fontstyle = '', $align = 'L') { $this->SetXY($x+20, $y); // 20 = margin left $this->SetFont(PDF_FONT_NAME_MAIN, $fontstyle, $fontsize); $this->Cell($width, $height, $textval, 0, false, $align); } } // create a PDF object $pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); // set document (meta) information $pdf->SetCreator(PDF_CREATOR); $pdf->SetAuthor('Olaf Lederer'); $pdf->SetTitle('TCPDF Example'); $pdf->SetSubject('TCPDF Tutorial'); $pdf->SetKeywords('TCPDF, PDF, example, tutorial'); // add a page $pdf->AddPage(); // create address box $pdf->CreateTextBox('Customer name Inc.', 0, 55, 80, 10, 10, 'B'); $pdf->CreateTextBox('Mr. Tom Cat', 0, 60, 80, 10, 10); $pdf->CreateTextBox('Street address', 0, 65, 80, 10, 10); $pdf->CreateTextBox('Zip, city name', 0, 70, 80, 10, 10); // invoice title / number $pdf->CreateTextBox('Invoice #201012345', 0, 90, 120, 20, 16); // date, order ref $pdf->CreateTextBox('Date: '.date('Y-m-d'), 0, 100, 0, 10, 10, '', 'R'); $pdf->CreateTextBox('Order ref.: #6765765', 0, 105, 0, 10, 10, '', 'R'); // list headers $pdf->CreateTextBox('Quantity', 0, 120, 20, 10, 10, 'B', 'C'); $pdf->CreateTextBox('Product or service', 20, 120, 90, 10, 10, 'B'); $pdf->CreateTextBox('Price', 110, 120, 30, 10, 10, 'B', 'R'); $pdf->CreateTextBox('Amount', 140, 120, 30, 10, 10, 'B', 'R'); $pdf->Line(20, 129, 195, 129); // some example data $orders[] = array('quant' => 5, 'descr' => '.com domain registration', 'price' => 9.95); $orders[] = array('quant' => 3, 'descr' => '.net domain name renewal', 'price' => 11.95); $orders[] = array('quant' => 1, 'descr' => 'SSL certificate 256-Byte encryption', 'price' => 99.95); $orders[] = array('quant' => 1, 'descr' => '25GB VPS Hosting, 200GB Bandwidth', 'price' => 19.95); $orders[] = array('quant' => 5, 'descr' => '.com domain registration', 'price' => 9.95); $orders[] = array('quant' => 3, 'descr' => '.net domain name renewal', 'price' => 11.95); $orders[] = array('quant' => 1, 'descr' => 'SSL certificate 256-Byte encryption', 'price' => 99.95); $orders[] = array('quant' => 1, 'descr' => '25GB VPS Hosting, 200GB Bandwidth', 'price' => 19.95); $orders[] = array('quant' => 5, 'descr' => '.com domain registration', 'price' => 9.95); $orders[] = array('quant' => 3, 'descr' => '.net domain name renewal', 'price' => 11.95); $orders[] = array('quant' => 1, 'descr' => 'SSL certificate 256-Byte encryption', 'price' => 99.95); $orders[] = array('quant' => 1, 'descr' => '25GB VPS Hosting, 200GB Bandwidth', 'price' => 19.95); $orders[] = array('quant' => 5, 'descr' => '.com domain registration', 'price' => 9.95); $orders[] = array('quant' => 3, 'descr' => '.net domain name renewal', 'price' => 11.95); $orders[] = array('quant' => 1, 'descr' => 'SSL certificate 256-Byte encryption', 'price' => 99.95); $orders[] = array('quant' => 1, 'descr' => '25GB VPS Hosting, 200GB Bandwidth', 'price' => 19.95); $orders[] = array('quant' => 5, 'descr' => '.com domain registration', 'price' => 9.95); $orders[] = array('quant' => 3, 'descr' => '.net domain name renewal', 'price' => 11.95); $orders[] = array('quant' => 1, 'descr' => 'SSL certificate 256-Byte encryption', 'price' => 99.95); $orders[] = array('quant' => 1, 'descr' => '25GB VPS Hosting, 200GB Bandwidth', 'price' => 19.95); $orders[] = array('quant' => 5, 'descr' => '.com domain registration', 'price' => 9.95); $orders[] = array('quant' => 3, 'descr' => '.net domain name renewal', 'price' => 11.95); $orders[] = array('quant' => 1, 'descr' => 'SSL certificate 256-Byte encryption', 'price' => 99.95); $orders[] = array('quant' => 1, 'descr' => '25GB VPS Hosting, 200GB Bandwidth', 'price' => 19.95); $orders[] = array('quant' => 5, 'descr' => '.com domain registration', 'price' => 9.95); $orders[] = array('quant' => 3, 'descr' => '.net domain name renewal', 'price' => 11.95); $orders[] = array('quant' => 1, 'descr' => 'SSL certificate 256-Byte encryption', 'price' => 99.95); $orders[] = array('quant' => 1, 'descr' => '25GB VPS Hosting, 200GB Bandwidth', 'price' => 19.95); $currY = 128; $total = 0; foreach ($orders as $row) { $pdf->CreateTextBox($row['quant'], 0, $currY, 20, 10, 10, '', 'C'); $pdf->CreateTextBox($row['descr'], 20, $currY, 90, 10, 10, ''); $pdf->CreateTextBox('$'.$row['price'], 110, $currY, 30, 10, 10, '', 'R'); $amount = $row['quant']*$row['price']; $pdf->CreateTextBox('$'.$amount, 140, $currY, 30, 10, 10, '', 'R'); $currY = $currY+5; $total = $total+$amount; } $pdf->Line(20, $currY+4, 195, $currY+4); // output the total row $pdf->CreateTextBox('Total', 20, $currY+5, 135, 10, 10, 'B', 'R'); $pdf->CreateTextBox('$'.number_format($total, 2, '.', ''), 140, $currY+5, 30, 10, 10, 'B', 'R'); // some payment instructions or information $pdf->setXY(20, $currY+30); $pdf->SetFont(PDF_FONT_NAME_MAIN, '', 10); $pdf->MultiCell(175, 10, '<em>Lorem ipsum dolor sit amet, consectetur adipiscing elit</em>. <br /> Vestibulum sagittis venenatis urna, in pellentesque ipsum pulvinar eu. In nec <a href="http://www.google.com/">nulla libero</a>, eu sagittis diam. Aenean egestas pharetra urna, et tristique metus egestas nec. Aliquam erat volutpat. Fusce pretium dapibus tellus.', 0, 'L', 0, 1, '', '', true, null, true); //Close and output PDF document $pdf->Output('test.pdf', 'F'); Link to comment https://forums.phpfreaks.com/topic/251307-tcpdf-table-over-multiple-pages/ Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.