FYI -- PDFlib Lite does not support textflow(s).
(PECL pdflib >= 2.1.0)
PDF_add_textflow — Create Textflow or add text to existing Textflow
$pdfdoc
, int $textflow
, string $text
, string $optlist
) : intCreates a Textflow object, or adds text and explicit options to an existing Textflow.
If you get an error like this:
PHP Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 3072 bytes) in /var/www/html/pdf/starter_textflow.php on line 70
It is because you are sending too much data to the "add_textflow" function. Increasing the memory in the php.ini file won't fix the problem. The solution is to try buffering the data you send to the function.
For example, if this fails:
<?php
$text=
"Lorem ipsum dolor sit amet, consectetur adiÂpiÂsicing elit, sed do eiusÂmod tempor incidiÂdunt ut labore et dolore magna aliÂqua. Ut enim ad minim veÂniam, quis nostrud exerÂcitation ullÂamco laÂboÂris nisi ut aliÂquip ex ea commodo conÂsequat. Duis aute irure dolor in repreÂhenderit in voluptate velit esse cillum dolore eu fugiat nulla pariÂatur. ExcepÂteur sint occaeÂcat cupiÂdatat non proident, sunt in culpa qui officia deseÂrunt mollit anim id est laborum. ";
//send lots of data all at once
$max=100;
for($i=0;$i<$max;$i++)
$text .= $text;
$tf = $p->add_textflow($tf, $text, $optlist1);
?>
Try something like this instead:
<?php
$text=
"Lorem ipsum dolor sit amet, consectetur adiÂpiÂsicing elit, sed do eiusÂmod tempor incidiÂdunt ut labore et dolore magna aliÂqua. Ut enim ad minim veÂniam, quis nostrud exerÂcitation ullÂamco laÂboÂris nisi ut aliÂquip ex ea commodo conÂsequat. Duis aute irure dolor in repreÂhenderit in voluptate velit esse cillum dolore eu fugiat nulla pariÂatur. ExcepÂteur sint occaeÂcat cupiÂdatat non proident, sunt in culpa qui officia deseÂrunt mollit anim id est laborum. ";
//send chunks of data
$max=100;
for($i=0;$i<$max;$i++)
$tf = $p->add_textflow($tf, $text, $optlist1);
?>
In the second example we send less data, but we call the function more often. With the first example, I could only generate 3 or 4 pages of a PDF; with the latter example I could generate 200+ page PDF's.
This took me a while to debug; hope it saves someone else some time. :)