• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • PDF_continue_text()

    (PHP 4, PECL pdflib >= 1.0.0)

    Output text in next line

    说明

    PDF_continue_text(resource $p,string $text): bool

    Prints$textat the next line.成功时返回TRUE,或者在失败时返回FALSE

    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.
    Shortest way to wordwrap in pdf_continue_text. There is no problem with new lines. Thnx to GTECHNICS.com...
    <?
    $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++;
      }
    } 
    ?>
    
    // Replace the while loop with this foreach and empty lines 
    // won't be a problem.
    foreach($Arr as $line) {
       pdf_continue_text($pdf,$line);
    }
    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++;
      }
    }
    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.

    上篇:PDF_concat()

    下篇:PDF_create_3dview()