|
Depends on document representation model, which should be designed before. Postponed to post-1.0 period I have recently created a class that emulates the FPDF cells. Currently, it is very basic but allows for creating of a cell, positioning the cell, and aligning text inside of the cell. I have attached a diff that creates the functionality. A small example is the following: //create and attach the cell to the first page, and center in the X and Y direction $cell=new Zend_Pdf_Cell($pdf->pages[0],Zend_Pdf_Cell::POSITION_CENTER_X | Zend_Pdf_Cell::POSITION_CENTER_Y); //align the text in the center $cell->addText("The quick brown fox jumped over the lazy dog.",Zend_Pdf_Cell::ALIGN_CENTER); $cell->newLine(); //write the cell to the PDF document $cell->write(); Patch for a cell class that allows simple cell creation and text alignment. I have updated the Cell.php file and fixed a few things. Added borders and word wrapping. I have just finished up a proposal using the Zend_Pdf_Cell, any comments are welcome. The proposal may be viewed at at http://framework.zend.com/wiki/display/ZFPROP/Zend_Pdf_Cell+-+Logan+Buesching Resetting 'fix version priority' and 'fix version' to be re-evaluated for next release. Unassigning Zend_Pdf issues currently assigned to me pending decision on ZF 2.0 release timeframe and potential contribution of comprehensive changeset. Alex, please take a look at this and resolve as necessary. in _wordWrap() I've encountered endless loops resulting in a 500 server error in the following case: I can't explain it any smarter as I'm having trouble with this complex recursion. But I got a quick and dirty fix for this: 173c173 < $maxTextSection=$this->_makeTextSection(array_shift($splitSection)); --- > $maxTextSection=$this->_makeTextSection(array_shift($splitSection) . ' '); 175c175 < $this->addText($maxTextSection['text'].' '); --- > $this->addText($maxTextSection['text']); 177c177 < $maxTextSection=$this->_makeTextSection(array_shift($splitSection)); --- > $maxTextSection=$this->_makeTextSection(array_shift($splitSection) . ' '); 181c181 < $this->addText($maxTextSection['text'].' '.$restOfText); --- > $this->addText($maxTextSection['text'].$restOfText); I have updated the attached Cell.php besides, there was another bug I've fixed long time ago: --- ZF-1254_Cell.php 2009-08-01 11:26:04.000000000 +0200
+++ Cell.php 2009-08-05 09:01:13.000000000 +0200
@@ -601,7 +601,7 @@
for ($x=0;$x<strlen($textSection['text']);$x++) {
$charArray[]=ord(substr($textSection['text'],$x,1));
}
- $charArray=$textSection['font']->cmap->glyphNumbersForCharacters($charArray);
+ $charArray=$textSection['font']->glyphNumbersForCharacters($charArray);
//get the lengths
$lengths=$textSection['font']->widthsForGlyphs($charArray);
$fontGlyphWidth=array_sum($lengths);
I've updated the attached Cell.php I really like the Zend PDF functionality. It's fast and stable. But I think many users would benefit from two key features: Are these types of functionality scheduled to be included in the core framework anytime soon? Without it, most PDF documents will look rather basic. There is a proposal which has some very nice features related to this as well. Maybe an idea to implement that one? |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Assign to Alexander.