View Source

<p>This is a list of possible list of enhancements to Zend_Pdf:</p>

<ul>
<li>Drawing features</li>
<li>Additional PDF features support</li>
<li>PDF elements management features</li>
</ul>


<h3>Drawing features</h3>
<p>Drawing features should make drawing tasks easier.<br />
Current set of draw primitives is complete, but some of them are too simple for common drawing operations.</p>
<ul>
<li>Text layout boxes (box of the text or other layout boxes with advanced positioning options).</li>
<li>Tables drawing.</li>
<li>Page headers/footers</li>
<li>Diagrams</li>
<li>Columns drawing<br />
and so on</li>
</ul>


<p>Such enhancements need high level rich text representation and operations model, which is independent from PDF itself.</p>


<h3>Additional PDF features support</h3>
<ul>
<li>Annotations</li>
<li>Bookmarks</li>
<li>Actions</li>
<li>PDF forms</li>
<li>PDF security</li>
</ul>



<h3>PDF elements management features</h3>

<p>Some features can't be described in terms of drawing operations and in terms of PDF features, but may be very useful.</p>

<ul>
<li>text retrieving<br />
Text retrieving may be useful for indexing and search capabilities.<br />
It should be method of PDF objects of a different level (whole document, pages, lower level objects in future):
<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[echo $pdf->getText();]]></ac:plain-text-body></ac:macro>
<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[foreach ($pdf->pages as $page) {
echo $page->getText();
}]]></ac:plain-text-body></ac:macro>
Note: Retrieving text from loaded part of PDF document may be mach more difficult task, then from newly drawn text.</li>
</ul>


<ul>
<li>Unlink page/resource from one pdf to use it with another.<br />
Each PDF object may refer a lot of other objects and resources (fonts, images, content streams and so on).<br />
Thus we can't only get page or resource from one document and add it to another (ex. mix two PDF documents). It's possible to trace down object references and copy object with all dependencies (&quot;deep copy&quot;).</li>
</ul>