Intereting Posts

Многострочные проблемы Zend Framework PDF

У меня проблема, с многострочной Zend_PDF, моя проблема в том, что я не могу написать весь текст в pdf. Мой текст выглядит так: http://pastebin.com/f6413f664

Но когда я открываю файл .pdf, текст выглядит так: http://screencast.com/t/1CBjvRodeZQd

И вот мой код:

public function pdfAction() { $this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(); $theID = ($this->_getParam('id') !== NULL) ? (int)$this->_getParam('id') : false; ($theID === false) ? $this->_redirect('/home') : false; //Information $info = $this->artists->artistInfo($theID); // Create new PDF $pdf = new Zend_Pdf(); $pdf->properties['Title'] = "TITLE"; $pdf->properties['Author'] = "AUTHOR"; // Add new page to the document $page = $pdf->newPage(Zend_Pdf_Page::SIZE_A4); $pdf->pages[] = $page; // Set font $page->setFont(Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA), 8); // Draw text foreach (explode("</p>", $info[0]['biography']) as $i => $line) { $page->drawText($line, 0, 820 - $i * 10, 'UTF-8'); } $this->getResponse()->setHeader('Content-type', 'application/x-pdf', true); $this->getResponse()->setHeader('Content-disposition', 'attachment; filename=my-file.pdf', true); $this->getResponse()->setBody($pdf->render()); } 

Я хочу, чтобы каждый <p> имел перерыв ( <br /> \ n) и отображал весь текст.

Любые решения ребята?

Related of "Многострочные проблемы Zend Framework PDF"

Вместо этого:

  // Draw text foreach (explode("</p>", $info[0]['biography']) as $i => $line) { $page->drawText($line, 0, 820 - $i * 10, 'UTF-8'); } 

Попробуйте (не пробовал):

 // Draw text $charsPerLine = 50; $heightPerLine = 10; $text = str_replace('<p>','',$info[0]['biography']); $lines = array(); foreach (explode("</p>", $text) as $line) { $lines = array_merge( $lines, explode( "\n", wordwrap($line, $charsPerLine, "\n") ) ); } foreach ( $lines as $i=>$line ) { $page->drawText($line, 0, 820 - $i * $heightPerLine, 'UTF-8'); } 

Вам, очевидно, нужно играть с этими 2 «константами», чтобы получить наилучшие результаты.

Надеюсь, поможет.