©
本文档使用
php.cn手册 发布
(PHP 4, PECL pdflib >= 1.0.0)
PDF_continue_text — Output text in next line
$p
, string $text
)
Prints text
at the next line. 成功时返回 TRUE
, 或者在失败时返回 FALSE
。
[#1] cbaltaci at turkisp dot com [2005-09-13 03:59:39]
Shortest way to wordwrap in pdf_continue_text. There is no problem with new lines. Thnx to GTECHNICS.com...
<?php
$text = $_POST['texfield']; ;
$lines = explode("\n",$text);
pdf_set_text_pos($pdfdoc,$x ,$y);
foreach($lines as $line){
$foo = $line;
$foo = wordwrap($foo,122,"|");
$Arrx = explode("|",$foo);
$i = 0;
while ($Arrx[$i] != "") {
pdf_continue_text($pdfdoc,$Arrx[$i]);
$i++;
}
}
?>
[#2] timo dot schmid at gmail dot com [2005-07-01 00:19:39]
I found no possibility to align a Text right. So I wrote a function:
<?php
function pdf_align_right($string, $chars = 10){
$string = str_pad($string, $chars, " ", STR_PAD_LEFT);
// Spaces in PDF-Documents are only the Half of a Normal Letter: So we replace them with 2 Spaces
$string = preg_replace("/ /", " ", $string);
return $string;
}
?>
Note that the 2nd Parameter is NOT the Lenght of the returned String because the Spaces will be replaced with 2 Spaces.
[#3] stephen at thelonecoder dot com [2005-06-27 20:06:35]
For wrapping text in pdf this is the method that I have been using .
It handles variable font and sizes and also variable widths on the paragraph.
<?php
$c = $db->row['content'];
$color = convert_hexcolor_rgbdec($color_hex);
pdf_setcolor($pdf, 'both', 'rgb', $color['r'], $color['g'], $color['b']);
$font = pdf_findfont($pdf, "$fontStyle", "host", 1);
pdf_setfont($pdf, $font, $s);
$par1 = stripslashes($c);
$j = 0;
$n = 0;
while($j < $pw && $c != "") {
$f = substr($par1, $n, 1);
$fWidth = pdf_stringwidth($pdf, "$f", 1, $s);
$j = $j + $fWidth;
$fWidth = 0;
$n++;
}
$wrap = $n;
$lead = $s + 2;
$paragraph = wordwrap($paragraph, $wrap, "***");
$parArr = explode("***", $paragraph);
pdf_show_xy($pdf, "$parArr[0]", $x, $y);
pdf_set_leading($pdf, $lead);
$i = 1;
while($parArr[$i]) {
pdf_continue_text($pdf, "$parArr[$i]");
$i++;
}
}
[#4] marco at elevate dot nl [2002-11-06 07:09:47]
// Replace the while loop with this foreach and empty lines
// won't be a problem.
foreach($Arr as $line) {
pdf_continue_text($pdf,$line);
}
[#5] npoole at binary dot net [2002-07-05 14:34:31]
This is how I wrap text in a PDF file built from database content...
$foo = mysql_result($results,0,"foo");
$foo = wordwrap($foo,72,"|");
$Arr = explode("|",$foo);
$i = 0;
while ($Arr[$i] != "") {
pdf_continue_text($pdf,$Arr[$i]);
$i++;
}
Someone mentioned to me (and rightfully so) that this may be flawed if you have 2 blank lines, and then more text in the variable. Use it for what you will though, you may find it (or an alteration of it) useful.