如何限制绘制PDF的自动断行

时间:2013-07-30 02:06:29

标签: php zend-framework pdf zend-pdf cgcontextdrawpdfpage

我使用Zend-pdf绘制从数据库获取的数据。但是当我得到一个长数据时,它会让我绘制重复的数据,如:

enter image description here

对于我自己的想法,我想要限制数据的长度,如果它长于长度我希望它断行<br />,但我不知道该怎么做。所以每个人都可以解决这个问题?我希望很快能看到您的回复!感谢。

1 个答案:

答案 0 :(得分:1)

您可以添加此功能以包装文本

<?php
// include auto-loader class
require_once 'Zend/Loader/Autoloader.php';

// register auto-loader
$loader = Zend_Loader_Autoloader::getInstance();

// define long string
$str = "Mary had a little lamb. It's fleece was white as snow. And everywhere that Mary went, the lamb was sure to go";

try {
  // create PDF
  $pdf = new Zend_Pdf();

  // create A4 page
  $page = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);

  // define font resource
  $font = Zend_Pdf_Font::fontWithPath('/tmp/comic.ttf');

  // set font
  $page->setFont($font, 14);

  // wrap lines of text
  // start at (10,600) and use a block of dimensions 500x500
  $page->drawTextBlock($str, 10, 600, 500, 500, Zend_Pdf_Page::ALIGN_LEFT);  

  // wrap lines of text
  // start at (10,500) and use a block of dimensions 200x300
  $page->setFont($font, 20);
  $page->drawTextBlock($str, 10, 500, 200, 300, Zend_Pdf_Page::ALIGN_RIGHT);  

  // add page to document
  $pdf->pages[] = $page;

  // save as file
  $pdf->save('example.pdf');
  echo 'SUCCESS: Document saved!';  
} catch (Zend_Pdf_Exception $e) {
  die ('PDF error: ' . $e->getMessage());  
} catch (Exception $e) {
  die ('Application error: ' . $e->getMessage());    
}
?>

此外,您可以参考此detail Document来解决您的问题

希望这对您有所帮助。