diff --git a/table_demo b/table_demo index c34cc17..2f3b779 100755 --- a/table_demo +++ b/table_demo @@ -30,6 +30,12 @@ $outfile = __DIR__ . '/pdflib_table_output.pdf'; $pageTopYPortrait = 750; $pageTopYLandscape = 570; +// table params +$tbl = 0; +$rowmax = 50; +$colmax = 5; +$llx= 50; $lly=50; $urx=550; $ury=800; + // wrap PDFlib usage in a try{} block try { $pdf = new PDFlib(); @@ -57,7 +63,7 @@ try { . "encoding=unicode "; // START PAGE 1 - $pdf->begin_page_ext(0, 0, 'width=letter.width, height=letter.height'); + $pdf->begin_page_ext(0, 0, 'width=letter.width height=letter.height'); // create bookmarks first thing $action = $pdf->create_action("GoTo", "destination={page=1}"); @@ -117,18 +123,61 @@ try { // END PAGE 2 $pdf->end_page_ext(''); - // START PAGE 3 - $pdf->begin_page_ext(0, 0, 'width=letter.width, height=letter.height'); - - // END PAGE 3 - $pdf->end_page_ext(''); + // SET UP THE TABLE + $font = $pdf->load_font("FreeSans", "unicode", ""); + for ($row = 1; $row <= $rowmax; $row++) { + for ($col = 1; $col <= $colmax; $col++) { + $num = "Col " . $col . "/Row " . $row; + $optlist = "colwidth=20% fittextline={font=" . $font . " fontsize=10}"; + $tbl = $pdf->add_table_cell($tbl, $col, $row, $num, $optlist); + if ($tbl == 0) { + die("Error: " . $pdf->get_errmsg()); + } + } + } + + // DRAW THE TABLE + do { + $pdf->begin_page_ext(0, 0, "width=letter.width height=letter.height"); + + /* Shade every other $row; draw lines for all table cells. + * Add "showcells showborder" to visualize cell borders + */ + $optlist = "header=1 rowheightdefault=auto " . + "fill={{area=rowodd fillcolor={gray 0.9}}} " . + "stroke={{line=other}} "; + + /* Place the table instance */ + $result = $pdf->fit_table($tbl, $llx, $lly, $urx, $ury, $optlist); + if ($result == "_error") { + die("Couldn't place table: " . $p->get_errmsg()); + } + + $pdf->end_page_ext(""); + + } while ($result == "_boxfull"); + /* Check the $result; "_stop" means all is ok. */ + if ($result != "_stop") { + if ($result == "_error") { + die("Error when placing table: " . $pdf->get_errmsg()); + } else { + /* Any other return value is a user exit caused by + * the "return" option; this requires dedicated code to + * deal with. + */ + die("User return found in Table"); + } + } + + /* This will also delete Textflow handles used in the table */ + $pdf->delete_table($tbl, ""); // close the document $pdf->end_document(''); } catch (PDFlibException $e) { - die("PDFlib exception occurred in sample:\n" . + die("PDFlib exception occurred:\n" . "[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " . $e->get_errmsg() . "\n"); }