2009-11-25 2 views
4

Поддерживает ли Zend_Pdf автоматическую упаковку текста?Zend PDF word wrapping

Например, я хочу создать текстовый блок и заполнить его текстом. Это очень важная функция, и если у Zend Pdf нет ее, я не могу переключиться с FPDF.

Также я думаю, что Framework, который говорит, что он имеет поддержку в формате PDF, должен иметь возможность предложить своим разработчикам такую ​​функцию.

Или я что-то упустил?

ответ

6

Действительно Zend_Pdf не достаточно зрелый, чтобы сравнить его с обычным компонентом Zend_YouNameIt.

В моей оппоненте Zend_Pdf не должен быть частью Zend. Он очень ограничен и не может использоваться в большинстве случаев, потому что отсутствует или отсутствует функция.

Что касается отсутствующей функции, вам нужно будет проверить Руководство или прочитать код, но в целом я советую использовать что-то еще для генерации PDF до тех пор, пока Zend_Pdf не станет достаточно зрелым.

Я думаю, что лучшим решением было бы для Zend_Pdf быть оберткой для какого-то инструмента командной строки.

+1

Ваш ответ может быть старым, но сейчас я думаю, что Zend_PDF имеет базовый набор функций для обработки 90% случаев. – RageZ

3

Zend pdf не поддерживает автоматическое перенос слов.

1

Вместо этого я могу порекомендовать вам использовать dompdf. Он позволяет вам определять страницу в html и отображать ее в формате pdf. Wordwrap будет обработан отлично!
Он даже позволяет разрывы страниц, поэтому возможны многостраничные PDF-файлы.

5

через пару лет с Zend 1.11 это работает для меня в функции класса PDF

/** 
* puts text box to a page 
* 
* @param integer $offset_x 
* @param integer $offset_y 
*/ 
public function drawTextArea($text, $pos_x, $pos_y, $height, $length = 0, $offset_x = 0, $offset_y = 0)  { 
    $x = $pos_x + $offset_x; 
    $y = $pos_y + $offset_y;); 

    if ($length != 0) { 
     $text = wordwrap($text, $length, "\n", false); 
    } 
    $token = strtok($text, "\n"); 

    while ($token != false) { 
     $this->page->drawText($token, $x, $y); 
     $token = strtok("\n"); 
     $y -= $height; 
    } 
} 

если кто-то любит его использовать это