2604 lines
254 KiB
HTML
2604 lines
254 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||
<title>phpcompta: /home/dany/developpement/phpcompta-dev/phpcompta/html/addon/class.pdf.php Source File</title>
|
||
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||
</head><body>
|
||
<!-- Generated by Doxygen 1.4.4 -->
|
||
<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a></div>
|
||
<div class="nav">
|
||
<a class="el" href="dir_000000.html">developpement</a> » <a class="el" href="dir_000001.html">phpcompta-dev</a> » <a class="el" href="dir_000002.html">phpcompta</a> » <a class="el" href="dir_000003.html">html</a> » <a class="el" href="dir_000004.html">addon</a></div>
|
||
<h1>class.pdf.php</h1><a href="class_8pdf_8php.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <?php
|
||
<a name="l00023"></a><a class="code" href="classCpdf.html">00023</a> <span class="keyword">class </span><a class="code" href="classCpdf.html">Cpdf</a> {
|
||
<a name="l00024"></a>00024
|
||
<a name="l00028"></a><a class="code" href="classCpdf.html#o0">00028</a> var <a class="code" href="classCpdf.html#o0">$numObj</a>=0;
|
||
<a name="l00032"></a><a class="code" href="classCpdf.html#o1">00032</a> var <a class="code" href="classCpdf.html#o1">$objects</a> = array();
|
||
<a name="l00036"></a><a class="code" href="classCpdf.html#o2">00036</a> var <a class="code" href="classCpdf.html#o2">$catalogId</a>;
|
||
<a name="l00041"></a><a class="code" href="classCpdf.html#o3">00041</a> var <a class="code" href="classCpdf.html#o3">$fonts</a>=array();
|
||
<a name="l00045"></a><a class="code" href="classCpdf.html#o4">00045</a> var <a class="code" href="classCpdf.html#o4">$currentFont</a>='';
|
||
<a name="l00049"></a><a class="code" href="classCpdf.html#o5">00049</a> var <a class="code" href="classCpdf.html#o5">$currentBaseFont</a>='';
|
||
<a name="l00053"></a><a class="code" href="classCpdf.html#o6">00053</a> var <a class="code" href="classCpdf.html#o6">$currentFontNum</a>=0;
|
||
<a name="l00057"></a><a class="code" href="classCpdf.html#o7">00057</a> var <a class="code" href="classCpdf.html#o7">$currentNode</a>;
|
||
<a name="l00061"></a><a class="code" href="classCpdf.html#o8">00061</a> var <a class="code" href="classCpdf.html#o8">$currentPage</a>;
|
||
<a name="l00065"></a><a class="code" href="classCpdf.html#o9">00065</a> var <a class="code" href="classCpdf.html#o9">$currentContents</a>;
|
||
<a name="l00069"></a><a class="code" href="classCpdf.html#o10">00069</a> var <a class="code" href="classCpdf.html#o10">$numFonts</a>=0;
|
||
<a name="l00073"></a><a class="code" href="classCpdf.html#o11">00073</a> var <a class="code" href="classCpdf.html#o11">$currentColour</a>=array(<span class="charliteral">'r'</span>=>-1,<span class="charliteral">'g'</span>=>-1,<span class="charliteral">'b'</span>=>-1);
|
||
<a name="l00077"></a><a class="code" href="classCpdf.html#o12">00077</a> var <a class="code" href="classCpdf.html#o12">$currentStrokeColour</a>=array(<span class="charliteral">'r'</span>=>-1,<span class="charliteral">'g'</span>=>-1,<span class="charliteral">'b'</span>=>-1);
|
||
<a name="l00081"></a><a class="code" href="classCpdf.html#o13">00081</a> var <a class="code" href="classCpdf.html#o13">$currentLineStyle</a>='';
|
||
<a name="l00086"></a><a class="code" href="classCpdf.html#o14">00086</a> var <a class="code" href="classCpdf.html#o14">$stateStack</a> = array();
|
||
<a name="l00090"></a><a class="code" href="classCpdf.html#o15">00090</a> var <a class="code" href="classCpdf.html#o15">$nStateStack</a> = 0;
|
||
<a name="l00094"></a><a class="code" href="classCpdf.html#o16">00094</a> var <a class="code" href="classCpdf.html#o16">$numPages</a>=0;
|
||
<a name="l00098"></a><a class="code" href="classCpdf.html#o17">00098</a> var <a class="code" href="classCpdf.html#o17">$stack</a>=array();
|
||
<a name="l00102"></a><a class="code" href="classCpdf.html#o18">00102</a> var <a class="code" href="classCpdf.html#o18">$nStack</a>=0;
|
||
<a name="l00107"></a><a class="code" href="classCpdf.html#o19">00107</a> var <a class="code" href="classCpdf.html#o19">$looseObjects</a>=array();
|
||
<a name="l00111"></a><a class="code" href="classCpdf.html#o20">00111</a> var <a class="code" href="classCpdf.html#o20">$addLooseObjects</a>=array();
|
||
<a name="l00116"></a><a class="code" href="classCpdf.html#o21">00116</a> var <a class="code" href="classCpdf.html#o21">$infoObject</a>=0;
|
||
<a name="l00120"></a><a class="code" href="classCpdf.html#o22">00120</a> var <a class="code" href="classCpdf.html#o22">$numImages</a>=0;
|
||
<a name="l00125"></a><a class="code" href="classCpdf.html#o23">00125</a> var <a class="code" href="classCpdf.html#o23">$options</a>=array('compression'=>1);
|
||
<a name="l00129"></a><a class="code" href="classCpdf.html#o24">00129</a> var <a class="code" href="classCpdf.html#o24">$firstPageId</a>;
|
||
<a name="l00134"></a><a class="code" href="classCpdf.html#o25">00134</a> var <a class="code" href="classCpdf.html#o25">$wordSpaceAdjust</a>=0;
|
||
<a name="l00138"></a><a class="code" href="classCpdf.html#o26">00138</a> var <a class="code" href="classCpdf.html#o26">$procsetObjectId</a>;
|
||
<a name="l00144"></a><a class="code" href="classCpdf.html#o27">00144</a> var <a class="code" href="classCpdf.html#o27">$fontFamilies</a> = array();
|
||
<a name="l00148"></a><a class="code" href="classCpdf.html#o28">00148</a> var <a class="code" href="classCpdf.html#o28">$currentTextState</a> = '';
|
||
<a name="l00152"></a><a class="code" href="classCpdf.html#o29">00152</a> var <a class="code" href="classCpdf.html#o29">$messages</a>='';
|
||
<a name="l00156"></a><a class="code" href="classCpdf.html#o30">00156</a> var <a class="code" href="classCpdf.html#o30">$arc4</a>='';
|
||
<a name="l00160"></a><a class="code" href="classCpdf.html#o31">00160</a> var <a class="code" href="classCpdf.html#o31">$arc4_objnum</a>=0;
|
||
<a name="l00164"></a><a class="code" href="classCpdf.html#o32">00164</a> var <a class="code" href="classCpdf.html#o32">$fileIdentifier</a>='';
|
||
<a name="l00168"></a><a class="code" href="classCpdf.html#o33">00168</a> var <a class="code" href="classCpdf.html#o33">$encrypted</a>=0;
|
||
<a name="l00172"></a><a class="code" href="classCpdf.html#o34">00172</a> var <a class="code" href="classCpdf.html#o34">$encryptionKey</a>='';
|
||
<a name="l00176"></a><a class="code" href="classCpdf.html#o35">00176</a> var <a class="code" href="classCpdf.html#o35">$callback</a> = array();
|
||
<a name="l00180"></a><a class="code" href="classCpdf.html#o36">00180</a> var <a class="code" href="classCpdf.html#o36">$nCallback</a> = 0;
|
||
<a name="l00185"></a><a class="code" href="classCpdf.html#o37">00185</a> var <a class="code" href="classCpdf.html#o37">$destinations</a> = array();
|
||
<a name="l00191"></a><a class="code" href="classCpdf.html#o38">00191</a> var <a class="code" href="classCpdf.html#o38">$checkpoint</a> = '';
|
||
<a name="l00197"></a><a class="code" href="classCpdf.html#a0">00197</a> function <a class="code" href="classCpdf.html#a0">Cpdf</a> ($pageSize=array(0,0,612,792)){
|
||
<a name="l00198"></a>00198 $this-><a class="code" href="classCpdf.html#a26">newDocument</a>($pageSize);
|
||
<a name="l00199"></a>00199
|
||
<a name="l00200"></a>00200 <span class="comment">// also initialize the font families that are known about already</span>
|
||
<a name="l00201"></a>00201 $this-><a class="code" href="classCpdf.html#a71">setFontFamily</a>('init');
|
||
<a name="l00202"></a>00202 <span class="comment">// $this->fileIdentifier = md5('xxxxxxxx'.time());</span>
|
||
<a name="l00203"></a>00203
|
||
<a name="l00204"></a>00204 }
|
||
<a name="l00205"></a>00205
|
||
<a name="l00224"></a><a class="code" href="classCpdf.html#a1">00224</a> function <a class="code" href="classCpdf.html#a1">o_destination</a>($<span class="keywordtype">id</span>,$<a class="code" href="classaction.html">action</a>,$options=''){
|
||
<a name="l00225"></a>00225 <span class="keywordflow">if</span> ($<a class="code" href="classaction.html">action</a>!='<span class="keyword">new</span>'){
|
||
<a name="l00226"></a>00226 <a class="code" href="fiche__csv_8php.html#a5">$o</a> =& $this->objects[$id];
|
||
<a name="l00227"></a>00227 }
|
||
<a name="l00228"></a>00228 <span class="keywordflow">switch</span>(<a class="code" href="periode_8inc_8php.html#a1">$action</a>){
|
||
<a name="l00229"></a>00229 <span class="keywordflow">case</span> '<span class="keyword">new</span>':
|
||
<a name="l00230"></a>00230 $this->objects[$id]=array(<span class="charliteral">'t'</span>=>'destination<span class="charliteral">','</span>info'=>array());
|
||
<a name="l00231"></a>00231 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a> = '';
|
||
<a name="l00232"></a>00232 <span class="keywordflow">switch</span> ($options['type']){
|
||
<a name="l00233"></a>00233 <span class="keywordflow">case</span> 'XYZ':
|
||
<a name="l00234"></a>00234 <span class="keywordflow">case</span> 'FitR':
|
||
<a name="l00235"></a>00235 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a> = <span class="charliteral">' '</span>.$options['p3'].$tmp;
|
||
<a name="l00236"></a>00236 <span class="keywordflow">case</span> 'FitH':
|
||
<a name="l00237"></a>00237 <span class="keywordflow">case</span> 'FitV':
|
||
<a name="l00238"></a>00238 <span class="keywordflow">case</span> 'FitBH':
|
||
<a name="l00239"></a>00239 <span class="keywordflow">case</span> 'FitBV':
|
||
<a name="l00240"></a>00240 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a> = <span class="charliteral">' '</span>.$options['p1'].<span class="charliteral">' '</span>.<a class="code" href="classCpdf.html#o23">$options</a>['p2'].$tmp;
|
||
<a name="l00241"></a>00241 <span class="keywordflow">case</span> 'Fit':
|
||
<a name="l00242"></a>00242 <span class="keywordflow">case</span> 'FitB':
|
||
<a name="l00243"></a>00243 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a> = <a class="code" href="classCpdf.html#o23">$options</a>['type'].$tmp;
|
||
<a name="l00244"></a>00244 $this->objects[$id]['info']['string']=<a class="code" href="show__document__modele_8php.html#a5">$tmp</a>;
|
||
<a name="l00245"></a>00245 $this->objects[$id]['info']['page']=<a class="code" href="classCpdf.html#o23">$options</a>['page'];
|
||
<a name="l00246"></a>00246 }
|
||
<a name="l00247"></a>00247 <span class="keywordflow">break</span>;
|
||
<a name="l00248"></a>00248 <span class="keywordflow">case</span> 'out':
|
||
<a name="l00249"></a>00249 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a> = <a class="code" href="fiche__csv_8php.html#a5">$o</a>['info'];
|
||
<a name="l00250"></a>00250 <a class="code" href="pref_8inc_8php.html#a1">$res</a>=<span class="stringliteral">"\n"</span>.$id.<span class="stringliteral">" 0 obj\n"</span>.<span class="charliteral">'['</span>.$tmp['page'].' 0 R /'.$tmp['string'].<span class="stringliteral">"]\nendobj\n"</span>;
|
||
<a name="l00251"></a>00251 <span class="keywordflow">return</span> <a class="code" href="pref_8inc_8php.html#a1">$res</a>;
|
||
<a name="l00252"></a>00252 <span class="keywordflow">break</span>;
|
||
<a name="l00253"></a>00253 }
|
||
<a name="l00254"></a>00254 }
|
||
<a name="l00255"></a>00255
|
||
<a name="l00259"></a><a class="code" href="classCpdf.html#a2">00259</a> function <a class="code" href="classCpdf.html#a2">o_viewerPreferences</a>($<span class="keywordtype">id</span>,$<a class="code" href="classaction.html">action</a>,$options=''){
|
||
<a name="l00260"></a>00260 <span class="keywordflow">if</span> ($<a class="code" href="classaction.html">action</a>!='<span class="keyword">new</span>'){
|
||
<a name="l00261"></a>00261 <a class="code" href="fiche__csv_8php.html#a5">$o</a> =& $this->objects[$id];
|
||
<a name="l00262"></a>00262 }
|
||
<a name="l00263"></a>00263 <span class="keywordflow">switch</span> ($<a class="code" href="classaction.html">action</a>){
|
||
<a name="l00264"></a>00264 <span class="keywordflow">case</span> '<span class="keyword">new</span>':
|
||
<a name="l00265"></a>00265 $this->objects[$id]=array(<span class="charliteral">'t'</span>=>'viewerPreferences<span class="charliteral">','</span>info'=>array());
|
||
<a name="l00266"></a>00266 <span class="keywordflow">break</span>;
|
||
<a name="l00267"></a>00267 <span class="keywordflow">case</span> 'add':
|
||
<a name="l00268"></a>00268 foreach($options as $k=>$v){
|
||
<a name="l00269"></a>00269 <span class="keywordflow">switch</span> ($k){
|
||
<a name="l00270"></a>00270 <span class="keywordflow">case</span> 'HideToolbar':
|
||
<a name="l00271"></a>00271 <span class="keywordflow">case</span> 'HideMenubar':
|
||
<a name="l00272"></a>00272 <span class="keywordflow">case</span> 'HideWindowUI':
|
||
<a name="l00273"></a>00273 <span class="keywordflow">case</span> 'FitWindow':
|
||
<a name="l00274"></a>00274 <span class="keywordflow">case</span> 'CenterWindow':
|
||
<a name="l00275"></a>00275 <span class="keywordflow">case</span> 'NonFullScreenPageMode':
|
||
<a name="l00276"></a>00276 <span class="keywordflow">case</span> 'Direction':
|
||
<a name="l00277"></a>00277 <a class="code" href="fiche__csv_8php.html#a5">$o</a>['info'][$k]=$v;
|
||
<a name="l00278"></a>00278 <span class="keywordflow">break</span>;
|
||
<a name="l00279"></a>00279 }
|
||
<a name="l00280"></a>00280 }
|
||
<a name="l00281"></a>00281 <span class="keywordflow">break</span>;
|
||
<a name="l00282"></a>00282 <span class="keywordflow">case</span> 'out':
|
||
<a name="l00283"></a>00283
|
||
<a name="l00284"></a>00284 <a class="code" href="pref_8inc_8php.html#a1">$res</a>=<span class="stringliteral">"\n"</span>.$id.<span class="stringliteral">" 0 obj\n"</span>.'<< ';
|
||
<a name="l00285"></a>00285 foreach($o['info'] as $k=>$v){
|
||
<a name="l00286"></a>00286 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/"</span>.$k.<span class="charliteral">' '</span>.$v;
|
||
<a name="l00287"></a>00287 }
|
||
<a name="l00288"></a>00288 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n>>\n"</span>;
|
||
<a name="l00289"></a>00289 <span class="keywordflow">return</span> <a class="code" href="pref_8inc_8php.html#a1">$res</a>;
|
||
<a name="l00290"></a>00290 <span class="keywordflow">break</span>;
|
||
<a name="l00291"></a>00291 }
|
||
<a name="l00292"></a>00292 }
|
||
<a name="l00293"></a>00293
|
||
<a name="l00297"></a><a class="code" href="classCpdf.html#a3">00297</a> function <a class="code" href="classCpdf.html#a3">o_catalog</a>($<span class="keywordtype">id</span>,$<a class="code" href="classaction.html">action</a>,$options=''){
|
||
<a name="l00298"></a>00298 <span class="keywordflow">if</span> ($<a class="code" href="classaction.html">action</a>!='<span class="keyword">new</span>'){
|
||
<a name="l00299"></a>00299 <a class="code" href="fiche__csv_8php.html#a5">$o</a> =& $this->objects[$id];
|
||
<a name="l00300"></a>00300 }
|
||
<a name="l00301"></a>00301 <span class="keywordflow">switch</span> ($<a class="code" href="classaction.html">action</a>){
|
||
<a name="l00302"></a>00302 <span class="keywordflow">case</span> '<span class="keyword">new</span>':
|
||
<a name="l00303"></a>00303 $this->objects[$id]=array(<span class="charliteral">'t'</span>=>'catalog<span class="charliteral">','</span>info'=>array());
|
||
<a name="l00304"></a>00304 $this->catalogId=$id;
|
||
<a name="l00305"></a>00305 <span class="keywordflow">break</span>;
|
||
<a name="l00306"></a>00306 <span class="keywordflow">case</span> 'outlines':
|
||
<a name="l00307"></a>00307 <span class="keywordflow">case</span> 'pages':
|
||
<a name="l00308"></a>00308 <span class="keywordflow">case</span> '<a class="code" href="classCpdf.html#a69">openHere</a>':
|
||
<a name="l00309"></a>00309 <a class="code" href="fiche__csv_8php.html#a5">$o</a>['info'][<a class="code" href="periode_8inc_8php.html#a1">$action</a>]=<a class="code" href="classCpdf.html#o23">$options</a>;
|
||
<a name="l00310"></a>00310 <span class="keywordflow">break</span>;
|
||
<a name="l00311"></a>00311 <span class="keywordflow">case</span> 'viewerPreferences':
|
||
<a name="l00312"></a>00312 <span class="keywordflow">if</span> (!isset($o['info']['viewerPreferences'])){
|
||
<a name="l00313"></a>00313 $this->numObj++;
|
||
<a name="l00314"></a>00314 $this-><a class="code" href="classCpdf.html#a2">o_viewerPreferences</a>($this->numObj,'<span class="keyword">new</span>');
|
||
<a name="l00315"></a>00315 <a class="code" href="fiche__csv_8php.html#a5">$o</a>['info']['viewerPreferences']=$this->numObj;
|
||
<a name="l00316"></a>00316 }
|
||
<a name="l00317"></a>00317 $vp = <a class="code" href="fiche__csv_8php.html#a5">$o</a>['info']['viewerPreferences'];
|
||
<a name="l00318"></a>00318 $this-><a class="code" href="classCpdf.html#a2">o_viewerPreferences</a>($vp,'add',$options);
|
||
<a name="l00319"></a>00319 <span class="keywordflow">break</span>;
|
||
<a name="l00320"></a>00320 <span class="keywordflow">case</span> 'out':
|
||
<a name="l00321"></a>00321 <a class="code" href="pref_8inc_8php.html#a1">$res</a>=<span class="stringliteral">"\n"</span>.$id.<span class="stringliteral">" 0 obj\n"</span>.'<< /Type /Catalog';
|
||
<a name="l00322"></a>00322 foreach($o['info'] as $k=>$v){
|
||
<a name="l00323"></a>00323 <span class="keywordflow">switch</span>($k){
|
||
<a name="l00324"></a>00324 <span class="keywordflow">case</span> 'outlines':
|
||
<a name="l00325"></a>00325 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n"</span>.'/Outlines '.$v.' 0 R';
|
||
<a name="l00326"></a>00326 <span class="keywordflow">break</span>;
|
||
<a name="l00327"></a>00327 <span class="keywordflow">case</span> 'pages':
|
||
<a name="l00328"></a>00328 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n"</span>.'/Pages '.$v.' 0 R';
|
||
<a name="l00329"></a>00329 <span class="keywordflow">break</span>;
|
||
<a name="l00330"></a>00330 <span class="keywordflow">case</span> 'viewerPreferences':
|
||
<a name="l00331"></a>00331 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n"</span>.'/ViewerPreferences '.$o['info']['viewerPreferences'].' 0 R';
|
||
<a name="l00332"></a>00332 <span class="keywordflow">break</span>;
|
||
<a name="l00333"></a>00333 <span class="keywordflow">case</span> '<a class="code" href="classCpdf.html#a69">openHere</a>':
|
||
<a name="l00334"></a>00334 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n"</span>.'/OpenAction '.$o['info']['<a class="code" href="classCpdf.html#a69">openHere</a>'].' 0 R';
|
||
<a name="l00335"></a>00335 <span class="keywordflow">break</span>;
|
||
<a name="l00336"></a>00336 }
|
||
<a name="l00337"></a>00337 }
|
||
<a name="l00338"></a>00338 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">" >>\nendobj"</span>;
|
||
<a name="l00339"></a>00339 <span class="keywordflow">return</span> <a class="code" href="pref_8inc_8php.html#a1">$res</a>;
|
||
<a name="l00340"></a>00340 <span class="keywordflow">break</span>;
|
||
<a name="l00341"></a>00341 }
|
||
<a name="l00342"></a>00342 }
|
||
<a name="l00343"></a>00343
|
||
<a name="l00347"></a><a class="code" href="classCpdf.html#a4">00347</a> function <a class="code" href="classCpdf.html#a4">o_pages</a>($<span class="keywordtype">id</span>,$<a class="code" href="classaction.html">action</a>,$options=''){
|
||
<a name="l00348"></a>00348 <span class="keywordflow">if</span> ($<a class="code" href="classaction.html">action</a>!='<span class="keyword">new</span>'){
|
||
<a name="l00349"></a>00349 <a class="code" href="fiche__csv_8php.html#a5">$o</a> =& $this->objects[$id];
|
||
<a name="l00350"></a>00350 }
|
||
<a name="l00351"></a>00351 <span class="keywordflow">switch</span> ($<a class="code" href="classaction.html">action</a>){
|
||
<a name="l00352"></a>00352 <span class="keywordflow">case</span> '<span class="keyword">new</span>':
|
||
<a name="l00353"></a>00353 $this->objects[$id]=array(<span class="charliteral">'t'</span>=>'pages<span class="charliteral">','</span>info'=>array());
|
||
<a name="l00354"></a>00354 $this-><a class="code" href="classCpdf.html#a3">o_catalog</a>($this->catalogId,'pages',$<span class="keywordtype">id</span>);
|
||
<a name="l00355"></a>00355 <span class="keywordflow">break</span>;
|
||
<a name="l00356"></a>00356 <span class="keywordflow">case</span> 'page':
|
||
<a name="l00357"></a>00357 <span class="keywordflow">if</span> (!is_array($options)){
|
||
<a name="l00358"></a>00358 <span class="comment">// then it will just be the id of the new page</span>
|
||
<a name="l00359"></a>00359 <a class="code" href="fiche__csv_8php.html#a5">$o</a>['info']['pages'][]=<a class="code" href="classCpdf.html#o23">$options</a>;
|
||
<a name="l00360"></a>00360 } <span class="keywordflow">else</span> {
|
||
<a name="l00361"></a>00361 <span class="comment">// then it should be an array having 'id','rid','pos', where rid=the page to which this one will be placed relative</span>
|
||
<a name="l00362"></a>00362 <span class="comment">// and pos is either 'before' or 'after', saying where this page will fit.</span>
|
||
<a name="l00363"></a>00363 <span class="keywordflow">if</span> (isset($options['<span class="keywordtype">id</span>']) && isset($options['rid']) && isset($options['pos'])){
|
||
<a name="l00364"></a>00364 <a class="code" href="balance_8php.html#a12">$i</a> = array_search($options['rid'],$o['info']['pages']);
|
||
<a name="l00365"></a>00365 <span class="keywordflow">if</span> (isset($o['info']['pages'][$i]) && $o['info']['pages'][$i]==$options['rid']){
|
||
<a name="l00366"></a>00366 <span class="comment">// then there is a match</span>
|
||
<a name="l00367"></a>00367 <span class="comment">// make a space</span>
|
||
<a name="l00368"></a>00368 <span class="keywordflow">switch</span> ($options['pos']){
|
||
<a name="l00369"></a>00369 <span class="keywordflow">case</span> 'before':
|
||
<a name="l00370"></a>00370 $k = <a class="code" href="balance_8php.html#a12">$i</a>;
|
||
<a name="l00371"></a>00371 <span class="keywordflow">break</span>;
|
||
<a name="l00372"></a>00372 <span class="keywordflow">case</span> 'after':
|
||
<a name="l00373"></a>00373 $k=<a class="code" href="balance_8php.html#a12">$i</a>+1;
|
||
<a name="l00374"></a>00374 <span class="keywordflow">break</span>;
|
||
<a name="l00375"></a>00375 <span class="keywordflow">default</span>:
|
||
<a name="l00376"></a>00376 $k=-1;
|
||
<a name="l00377"></a>00377 <span class="keywordflow">break</span>;
|
||
<a name="l00378"></a>00378 }
|
||
<a name="l00379"></a>00379 <span class="keywordflow">if</span> ($k>=0){
|
||
<a name="l00380"></a>00380 <span class="keywordflow">for</span> ($j=count($o['info']['pages'])-1;$j>=$k;$j--){
|
||
<a name="l00381"></a>00381 <a class="code" href="fiche__csv_8php.html#a5">$o</a>['info']['pages'][$j+1]=<a class="code" href="fiche__csv_8php.html#a5">$o</a>['info']['pages'][$j];
|
||
<a name="l00382"></a>00382 }
|
||
<a name="l00383"></a>00383 <a class="code" href="fiche__csv_8php.html#a5">$o</a>['info']['pages'][$k]=<a class="code" href="classCpdf.html#o23">$options</a>['<span class="keywordtype">id</span>'];
|
||
<a name="l00384"></a>00384 }
|
||
<a name="l00385"></a>00385 }
|
||
<a name="l00386"></a>00386 }
|
||
<a name="l00387"></a>00387 }
|
||
<a name="l00388"></a>00388 <span class="keywordflow">break</span>;
|
||
<a name="l00389"></a>00389 <span class="keywordflow">case</span> 'procset':
|
||
<a name="l00390"></a>00390 <a class="code" href="fiche__csv_8php.html#a5">$o</a>['info']['procset']=<a class="code" href="classCpdf.html#o23">$options</a>;
|
||
<a name="l00391"></a>00391 <span class="keywordflow">break</span>;
|
||
<a name="l00392"></a>00392 <span class="keywordflow">case</span> 'mediaBox':
|
||
<a name="l00393"></a>00393 <a class="code" href="fiche__csv_8php.html#a5">$o</a>['info']['mediaBox']=<a class="code" href="classCpdf.html#o23">$options</a>; <span class="comment">// which should be an array of 4 numbers</span>
|
||
<a name="l00394"></a>00394 <span class="keywordflow">break</span>;
|
||
<a name="l00395"></a>00395 <span class="keywordflow">case</span> 'font':
|
||
<a name="l00396"></a>00396 <a class="code" href="fiche__csv_8php.html#a5">$o</a>['info']['fonts'][]=array('objNum'=>$options['objNum'],'fontNum'=>$options['fontNum']);
|
||
<a name="l00397"></a>00397 <span class="keywordflow">break</span>;
|
||
<a name="l00398"></a>00398 <span class="keywordflow">case</span> 'xObject':
|
||
<a name="l00399"></a>00399 <a class="code" href="fiche__csv_8php.html#a5">$o</a>['info']['xObjects'][]=array('objNum'=>$options['objNum'],'<a class="code" href="action_8inc_8php.html#a7">label</a>'=>$options['<a class="code" href="action_8inc_8php.html#a7">label</a>']);
|
||
<a name="l00400"></a>00400 <span class="keywordflow">break</span>;
|
||
<a name="l00401"></a>00401 <span class="keywordflow">case</span> 'out':
|
||
<a name="l00402"></a>00402 <span class="keywordflow">if</span> (count($o['info']['pages'])){
|
||
<a name="l00403"></a>00403 <a class="code" href="pref_8inc_8php.html#a1">$res</a>=<span class="stringliteral">"\n"</span>.$id.<span class="stringliteral">" 0 obj\n<< /Type /Pages\n/Kids ["</span>;
|
||
<a name="l00404"></a>00404 foreach($o['info']['pages'] as $k=>$v){
|
||
<a name="l00405"></a>00405 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=$v.<span class="stringliteral">" 0 R\n"</span>;
|
||
<a name="l00406"></a>00406 }
|
||
<a name="l00407"></a>00407 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"]\n/Count "</span>.count($this->objects[$<span class="keywordtype">id</span>]['info']['pages']);
|
||
<a name="l00408"></a>00408 <span class="keywordflow">if</span> ((isset($o['info']['fonts']) && count($o['info']['fonts'])) || isset($o['info']['procset'])){
|
||
<a name="l00409"></a>00409 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/Resources <<"</span>;
|
||
<a name="l00410"></a>00410 <span class="keywordflow">if</span> (isset($o['info']['procset'])){
|
||
<a name="l00411"></a>00411 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/ProcSet "</span>.$o['info']['procset'].<span class="stringliteral">" 0 R"</span>;
|
||
<a name="l00412"></a>00412 }
|
||
<a name="l00413"></a>00413 <span class="keywordflow">if</span> (isset($o['info']['fonts']) && count($o['info']['fonts'])){
|
||
<a name="l00414"></a>00414 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/Font << "</span>;
|
||
<a name="l00415"></a>00415 foreach($o['info']['fonts'] as $finfo){
|
||
<a name="l00416"></a>00416 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/F"</span>.$finfo['fontNum'].<span class="stringliteral">" "</span>.$finfo['objNum'].<span class="stringliteral">" 0 R"</span>;
|
||
<a name="l00417"></a>00417 }
|
||
<a name="l00418"></a>00418 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">" >>"</span>;
|
||
<a name="l00419"></a>00419 }
|
||
<a name="l00420"></a>00420 <span class="keywordflow">if</span> (isset($o['info']['xObjects']) && count($o['info']['xObjects'])){
|
||
<a name="l00421"></a>00421 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/XObject << "</span>;
|
||
<a name="l00422"></a>00422 foreach($o['info']['xObjects'] as $finfo){
|
||
<a name="l00423"></a>00423 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/"</span>.$finfo['label'].<span class="stringliteral">" "</span>.$finfo['objNum'].<span class="stringliteral">" 0 R"</span>;
|
||
<a name="l00424"></a>00424 }
|
||
<a name="l00425"></a>00425 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">" >>"</span>;
|
||
<a name="l00426"></a>00426 }
|
||
<a name="l00427"></a>00427 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n>>"</span>;
|
||
<a name="l00428"></a>00428 <span class="keywordflow">if</span> (isset($o['info']['mediaBox'])){
|
||
<a name="l00429"></a>00429 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a>=<a class="code" href="fiche__csv_8php.html#a5">$o</a>['info']['mediaBox'];
|
||
<a name="l00430"></a>00430 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/MediaBox ["</span>.sprintf('%.3f',$tmp[0]).<span class="charliteral">' '</span>.sprintf('%.3f',$tmp[1]).<span class="charliteral">' '</span>.sprintf('%.3f',$tmp[2]).<span class="charliteral">' '</span>.sprintf('%.3f',$tmp[3]).<span class="charliteral">']'</span>;
|
||
<a name="l00431"></a>00431 }
|
||
<a name="l00432"></a>00432 }
|
||
<a name="l00433"></a>00433 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n >>\nendobj"</span>;
|
||
<a name="l00434"></a>00434 } <span class="keywordflow">else</span> {
|
||
<a name="l00435"></a>00435 <a class="code" href="pref_8inc_8php.html#a1">$res</a>=<span class="stringliteral">"\n"</span>.$id.<span class="stringliteral">" 0 obj\n<< /Type /Pages\n/Count 0\n>>\nendobj"</span>;
|
||
<a name="l00436"></a>00436 }
|
||
<a name="l00437"></a>00437 <span class="keywordflow">return</span> <a class="code" href="pref_8inc_8php.html#a1">$res</a>;
|
||
<a name="l00438"></a>00438 <span class="keywordflow">break</span>;
|
||
<a name="l00439"></a>00439 }
|
||
<a name="l00440"></a>00440 }
|
||
<a name="l00441"></a>00441
|
||
<a name="l00445"></a><a class="code" href="classCpdf.html#a5">00445</a> function <a class="code" href="classCpdf.html#a5">o_outlines</a>($<span class="keywordtype">id</span>,$<a class="code" href="classaction.html">action</a>,$options=''){
|
||
<a name="l00446"></a>00446 <span class="keywordflow">if</span> ($<a class="code" href="classaction.html">action</a>!='<span class="keyword">new</span>'){
|
||
<a name="l00447"></a>00447 <a class="code" href="fiche__csv_8php.html#a5">$o</a> =& $this->objects[$id];
|
||
<a name="l00448"></a>00448 }
|
||
<a name="l00449"></a>00449 <span class="keywordflow">switch</span> ($<a class="code" href="classaction.html">action</a>){
|
||
<a name="l00450"></a>00450 <span class="keywordflow">case</span> '<span class="keyword">new</span>':
|
||
<a name="l00451"></a>00451 $this->objects[$id]=array(<span class="charliteral">'t'</span>=>'outlines<span class="charliteral">','</span>info'=>array('outlines'=>array()));
|
||
<a name="l00452"></a>00452 $this-><a class="code" href="classCpdf.html#a3">o_catalog</a>($this->catalogId,'outlines',$<span class="keywordtype">id</span>);
|
||
<a name="l00453"></a>00453 <span class="keywordflow">break</span>;
|
||
<a name="l00454"></a>00454 <span class="keywordflow">case</span> 'outline':
|
||
<a name="l00455"></a>00455 <a class="code" href="fiche__csv_8php.html#a5">$o</a>['info']['outlines'][]=<a class="code" href="classCpdf.html#o23">$options</a>;
|
||
<a name="l00456"></a>00456 <span class="keywordflow">break</span>;
|
||
<a name="l00457"></a>00457 <span class="keywordflow">case</span> 'out':
|
||
<a name="l00458"></a>00458 <span class="keywordflow">if</span> (count($o['info']['outlines'])){
|
||
<a name="l00459"></a>00459 <a class="code" href="pref_8inc_8php.html#a1">$res</a>=<span class="stringliteral">"\n"</span>.$id.<span class="stringliteral">" 0 obj\n<< /Type /Outlines /Kids ["</span>;
|
||
<a name="l00460"></a>00460 foreach($o['info']['outlines'] as $k=>$v){
|
||
<a name="l00461"></a>00461 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=$v.<span class="stringliteral">" 0 R "</span>;
|
||
<a name="l00462"></a>00462 }
|
||
<a name="l00463"></a>00463 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"] /Count "</span>.count($o['info']['outlines']).<span class="stringliteral">" >>\nendobj"</span>;
|
||
<a name="l00464"></a>00464 } <span class="keywordflow">else</span> {
|
||
<a name="l00465"></a>00465 <a class="code" href="pref_8inc_8php.html#a1">$res</a>=<span class="stringliteral">"\n"</span>.$id.<span class="stringliteral">" 0 obj\n<< /Type /Outlines /Count 0 >>\nendobj"</span>;
|
||
<a name="l00466"></a>00466 }
|
||
<a name="l00467"></a>00467 <span class="keywordflow">return</span> <a class="code" href="pref_8inc_8php.html#a1">$res</a>;
|
||
<a name="l00468"></a>00468 <span class="keywordflow">break</span>;
|
||
<a name="l00469"></a>00469 }
|
||
<a name="l00470"></a>00470 }
|
||
<a name="l00471"></a>00471
|
||
<a name="l00475"></a><a class="code" href="classCpdf.html#a6">00475</a> function <a class="code" href="classCpdf.html#a6">o_font</a>($<span class="keywordtype">id</span>,$<a class="code" href="classaction.html">action</a>,$options=''){
|
||
<a name="l00476"></a>00476 <span class="keywordflow">if</span> ($<a class="code" href="classaction.html">action</a>!='<span class="keyword">new</span>'){
|
||
<a name="l00477"></a>00477 <a class="code" href="fiche__csv_8php.html#a5">$o</a> =& $this->objects[$id];
|
||
<a name="l00478"></a>00478 }
|
||
<a name="l00479"></a>00479 <span class="keywordflow">switch</span> ($<a class="code" href="classaction.html">action</a>){
|
||
<a name="l00480"></a>00480 <span class="keywordflow">case</span> '<span class="keyword">new</span>':
|
||
<a name="l00481"></a>00481 $this->objects[$id]=array(<span class="charliteral">'t'</span>=>'font<span class="charliteral">','</span>info'=>array('<a class="code" href="action_8inc_8php.html#a4">name</a>'=>$options['<a class="code" href="action_8inc_8php.html#a4">name</a>'],'SubType'=>'Type1'));
|
||
<a name="l00482"></a>00482 $fontNum=$this->numFonts;
|
||
<a name="l00483"></a>00483 $this->objects[$id]['info']['fontNum']=$fontNum;
|
||
<a name="l00484"></a>00484 <span class="comment">// deal with the encoding and the differences</span>
|
||
<a name="l00485"></a>00485 <span class="keywordflow">if</span> (isset($options['differences'])){
|
||
<a name="l00486"></a>00486 <span class="comment">// then we'll need an encoding dictionary</span>
|
||
<a name="l00487"></a>00487 $this->numObj++;
|
||
<a name="l00488"></a>00488 $this-><a class="code" href="classCpdf.html#a8">o_fontEncoding</a>($this->numObj,'<span class="keyword">new</span>',$options);
|
||
<a name="l00489"></a>00489 $this->objects[$id]['info']['encodingDictionary']=$this->numObj;
|
||
<a name="l00490"></a>00490 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isset($options['encoding'])){
|
||
<a name="l00491"></a>00491 <span class="comment">// we can specify encoding here</span>
|
||
<a name="l00492"></a>00492 <span class="keywordflow">switch</span>(<a class="code" href="classCpdf.html#o23">$options</a>['encoding']){
|
||
<a name="l00493"></a>00493 <span class="keywordflow">case</span> 'WinAnsiEncoding':
|
||
<a name="l00494"></a>00494 <span class="keywordflow">case</span> 'MacRomanEncoding':
|
||
<a name="l00495"></a>00495 <span class="keywordflow">case</span> 'MacExpertEncoding':
|
||
<a name="l00496"></a>00496 $this->objects[$id]['info']['encoding']=<a class="code" href="classCpdf.html#o23">$options</a>['encoding'];
|
||
<a name="l00497"></a>00497 <span class="keywordflow">break</span>;
|
||
<a name="l00498"></a>00498 <span class="keywordflow">case</span> 'none':
|
||
<a name="l00499"></a>00499 <span class="keywordflow">break</span>;
|
||
<a name="l00500"></a>00500 <span class="keywordflow">default</span>:
|
||
<a name="l00501"></a>00501 $this->objects[$id]['info']['encoding']='WinAnsiEncoding';
|
||
<a name="l00502"></a>00502 <span class="keywordflow">break</span>;
|
||
<a name="l00503"></a>00503 }
|
||
<a name="l00504"></a>00504 } <span class="keywordflow">else</span> {
|
||
<a name="l00505"></a>00505 $this->objects[$id]['info']['encoding']='WinAnsiEncoding';
|
||
<a name="l00506"></a>00506 }
|
||
<a name="l00507"></a>00507 <span class="comment">// also tell the pages node about the new font</span>
|
||
<a name="l00508"></a>00508 $this-><a class="code" href="classCpdf.html#a4">o_pages</a>($this->currentNode,'font',array('fontNum'=>$fontNum,'objNum'=>$<span class="keywordtype">id</span>));
|
||
<a name="l00509"></a>00509 <span class="keywordflow">break</span>;
|
||
<a name="l00510"></a>00510 <span class="keywordflow">case</span> 'add':
|
||
<a name="l00511"></a>00511 foreach ($options as $k=>$v){
|
||
<a name="l00512"></a>00512 <span class="keywordflow">switch</span> ($k){
|
||
<a name="l00513"></a>00513 <span class="keywordflow">case</span> 'BaseFont':
|
||
<a name="l00514"></a>00514 <a class="code" href="fiche__csv_8php.html#a5">$o</a>['info']['name'] = $v;
|
||
<a name="l00515"></a>00515 <span class="keywordflow">break</span>;
|
||
<a name="l00516"></a>00516 <span class="keywordflow">case</span> 'FirstChar':
|
||
<a name="l00517"></a>00517 <span class="keywordflow">case</span> 'LastChar':
|
||
<a name="l00518"></a>00518 <span class="keywordflow">case</span> 'Widths':
|
||
<a name="l00519"></a>00519 <span class="keywordflow">case</span> 'FontDescriptor':
|
||
<a name="l00520"></a>00520 <span class="keywordflow">case</span> 'SubType':
|
||
<a name="l00521"></a>00521 $this-><a class="code" href="classCpdf.html#a72">addMessage</a>('<a class="code" href="classCpdf.html#a6">o_font</a> '.$k.<span class="stringliteral">" : "</span>.$v);
|
||
<a name="l00522"></a>00522 <a class="code" href="fiche__csv_8php.html#a5">$o</a>['info'][$k] = $v;
|
||
<a name="l00523"></a>00523 <span class="keywordflow">break</span>;
|
||
<a name="l00524"></a>00524 }
|
||
<a name="l00525"></a>00525 }
|
||
<a name="l00526"></a>00526 <span class="keywordflow">break</span>;
|
||
<a name="l00527"></a>00527 <span class="keywordflow">case</span> 'out':
|
||
<a name="l00528"></a>00528 <a class="code" href="pref_8inc_8php.html#a1">$res</a>=<span class="stringliteral">"\n"</span>.$id.<span class="stringliteral">" 0 obj\n<< /Type /Font\n/Subtype /"</span>.<a class="code" href="fiche__csv_8php.html#a5">$o</a>['info']['SubType'].<span class="stringliteral">"\n"</span>;
|
||
<a name="l00529"></a>00529 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"/Name /F"</span>.$o['info']['fontNum'].<span class="stringliteral">"\n"</span>;
|
||
<a name="l00530"></a>00530 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"/BaseFont /"</span>.$o['info']['name'].<span class="stringliteral">"\n"</span>;
|
||
<a name="l00531"></a>00531 <span class="keywordflow">if</span> (isset($o['info']['encodingDictionary'])){
|
||
<a name="l00532"></a>00532 <span class="comment">// then place a reference to the dictionary</span>
|
||
<a name="l00533"></a>00533 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"/Encoding "</span>.$o['info']['encodingDictionary'].<span class="stringliteral">" 0 R\n"</span>;
|
||
<a name="l00534"></a>00534 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isset($o['info']['encoding'])){
|
||
<a name="l00535"></a>00535 <span class="comment">// use the specified encoding</span>
|
||
<a name="l00536"></a>00536 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"/Encoding /"</span>.$o['info']['encoding'].<span class="stringliteral">"\n"</span>;
|
||
<a name="l00537"></a>00537 }
|
||
<a name="l00538"></a>00538 <span class="keywordflow">if</span> (isset($o['info']['FirstChar'])){
|
||
<a name="l00539"></a>00539 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"/FirstChar "</span>.$o['info']['FirstChar'].<span class="stringliteral">"\n"</span>;
|
||
<a name="l00540"></a>00540 }
|
||
<a name="l00541"></a>00541 <span class="keywordflow">if</span> (isset($o['info']['LastChar'])){
|
||
<a name="l00542"></a>00542 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"/LastChar "</span>.$o['info']['LastChar'].<span class="stringliteral">"\n"</span>;
|
||
<a name="l00543"></a>00543 }
|
||
<a name="l00544"></a>00544 <span class="keywordflow">if</span> (isset($o['info']['Widths'])){
|
||
<a name="l00545"></a>00545 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"/Widths "</span>.$o['info']['Widths'].<span class="stringliteral">" 0 R\n"</span>;
|
||
<a name="l00546"></a>00546 }
|
||
<a name="l00547"></a>00547 <span class="keywordflow">if</span> (isset($o['info']['FontDescriptor'])){
|
||
<a name="l00548"></a>00548 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"/FontDescriptor "</span>.$o['info']['FontDescriptor'].<span class="stringliteral">" 0 R\n"</span>;
|
||
<a name="l00549"></a>00549 }
|
||
<a name="l00550"></a>00550 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">">>\nendobj"</span>;
|
||
<a name="l00551"></a>00551 <span class="keywordflow">return</span> <a class="code" href="pref_8inc_8php.html#a1">$res</a>;
|
||
<a name="l00552"></a>00552 <span class="keywordflow">break</span>;
|
||
<a name="l00553"></a>00553 }
|
||
<a name="l00554"></a>00554 }
|
||
<a name="l00555"></a>00555
|
||
<a name="l00559"></a><a class="code" href="classCpdf.html#a7">00559</a> function <a class="code" href="classCpdf.html#a7">o_fontDescriptor</a>($<span class="keywordtype">id</span>,$<a class="code" href="classaction.html">action</a>,$options=''){
|
||
<a name="l00560"></a>00560 <span class="keywordflow">if</span> ($<a class="code" href="classaction.html">action</a>!='<span class="keyword">new</span>'){
|
||
<a name="l00561"></a>00561 <a class="code" href="fiche__csv_8php.html#a5">$o</a> =& $this->objects[$id];
|
||
<a name="l00562"></a>00562 }
|
||
<a name="l00563"></a>00563 <span class="keywordflow">switch</span> ($<a class="code" href="classaction.html">action</a>){
|
||
<a name="l00564"></a>00564 <span class="keywordflow">case</span> '<span class="keyword">new</span>':
|
||
<a name="l00565"></a>00565 $this->objects[$id]=array(<span class="charliteral">'t'</span>=>'fontDescriptor<span class="charliteral">','</span>info'=>$options);
|
||
<a name="l00566"></a>00566 <span class="keywordflow">break</span>;
|
||
<a name="l00567"></a>00567 <span class="keywordflow">case</span> 'out':
|
||
<a name="l00568"></a>00568 <a class="code" href="pref_8inc_8php.html#a1">$res</a>=<span class="stringliteral">"\n"</span>.$id.<span class="stringliteral">" 0 obj\n<< /Type /FontDescriptor\n"</span>;
|
||
<a name="l00569"></a>00569 foreach ($o['info'] as $<a class="code" href="action_8inc_8php.html#a7">label</a> => $<a class="code" href="action_8inc_8php.html#a5">value</a>){
|
||
<a name="l00570"></a>00570 <span class="keywordflow">switch</span> ($<a class="code" href="action_8inc_8php.html#a7">label</a>){
|
||
<a name="l00571"></a>00571 <span class="keywordflow">case</span> 'Ascent':
|
||
<a name="l00572"></a>00572 <span class="keywordflow">case</span> 'CapHeight':
|
||
<a name="l00573"></a>00573 <span class="keywordflow">case</span> 'Descent':
|
||
<a name="l00574"></a>00574 <span class="keywordflow">case</span> 'Flags':
|
||
<a name="l00575"></a>00575 <span class="keywordflow">case</span> 'ItalicAngle':
|
||
<a name="l00576"></a>00576 <span class="keywordflow">case</span> 'StemV':
|
||
<a name="l00577"></a>00577 <span class="keywordflow">case</span> 'AvgWidth':
|
||
<a name="l00578"></a>00578 <span class="keywordflow">case</span> 'Leading':
|
||
<a name="l00579"></a>00579 <span class="keywordflow">case</span> 'MaxWidth':
|
||
<a name="l00580"></a>00580 <span class="keywordflow">case</span> 'MissingWidth':
|
||
<a name="l00581"></a>00581 <span class="keywordflow">case</span> 'StemH':
|
||
<a name="l00582"></a>00582 <span class="keywordflow">case</span> 'XHeight':
|
||
<a name="l00583"></a>00583 <span class="keywordflow">case</span> 'CharSet':
|
||
<a name="l00584"></a>00584 <span class="keywordflow">if</span> (strlen($<a class="code" href="action_8inc_8php.html#a5">value</a>)){
|
||
<a name="l00585"></a>00585 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="charliteral">'/'</span>.$label.<span class="charliteral">' '</span>.$value.<span class="stringliteral">"\n"</span>;
|
||
<a name="l00586"></a>00586 }
|
||
<a name="l00587"></a>00587 <span class="keywordflow">break</span>;
|
||
<a name="l00588"></a>00588 <span class="keywordflow">case</span> 'FontFile':
|
||
<a name="l00589"></a>00589 <span class="keywordflow">case</span> 'FontFile2':
|
||
<a name="l00590"></a>00590 <span class="keywordflow">case</span> 'FontFile3':
|
||
<a name="l00591"></a>00591 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="charliteral">'/'</span>.$label.<span class="charliteral">' '</span>.$value.<span class="stringliteral">" 0 R\n"</span>;
|
||
<a name="l00592"></a>00592 <span class="keywordflow">break</span>;
|
||
<a name="l00593"></a>00593 <span class="keywordflow">case</span> 'FontBBox':
|
||
<a name="l00594"></a>00594 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="charliteral">'/'</span>.$label.' ['.$value[0].<span class="charliteral">' '</span>.$value[1].<span class="charliteral">' '</span>.$value[2].<span class="charliteral">' '</span>.$value[3].<span class="stringliteral">"]\n"</span>;
|
||
<a name="l00595"></a>00595 <span class="keywordflow">break</span>;
|
||
<a name="l00596"></a>00596 <span class="keywordflow">case</span> 'FontName':
|
||
<a name="l00597"></a>00597 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="charliteral">'/'</span>.$label.' /'.$value.<span class="stringliteral">"\n"</span>;
|
||
<a name="l00598"></a>00598 <span class="keywordflow">break</span>;
|
||
<a name="l00599"></a>00599 }
|
||
<a name="l00600"></a>00600 }
|
||
<a name="l00601"></a>00601 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">">>\nendobj"</span>;
|
||
<a name="l00602"></a>00602 <span class="keywordflow">return</span> <a class="code" href="pref_8inc_8php.html#a1">$res</a>;
|
||
<a name="l00603"></a>00603 <span class="keywordflow">break</span>;
|
||
<a name="l00604"></a>00604 }
|
||
<a name="l00605"></a>00605 }
|
||
<a name="l00606"></a>00606
|
||
<a name="l00610"></a><a class="code" href="classCpdf.html#a8">00610</a> function <a class="code" href="classCpdf.html#a8">o_fontEncoding</a>($<span class="keywordtype">id</span>,$<a class="code" href="classaction.html">action</a>,$options=''){
|
||
<a name="l00611"></a>00611 <span class="keywordflow">if</span> ($<a class="code" href="classaction.html">action</a>!='<span class="keyword">new</span>'){
|
||
<a name="l00612"></a>00612 <a class="code" href="fiche__csv_8php.html#a5">$o</a> =& $this->objects[$id];
|
||
<a name="l00613"></a>00613 }
|
||
<a name="l00614"></a>00614 <span class="keywordflow">switch</span> ($<a class="code" href="classaction.html">action</a>){
|
||
<a name="l00615"></a>00615 <span class="keywordflow">case</span> '<span class="keyword">new</span>':
|
||
<a name="l00616"></a>00616 <span class="comment">// the options array should contain 'differences' and maybe 'encoding'</span>
|
||
<a name="l00617"></a>00617 $this->objects[$id]=array(<span class="charliteral">'t'</span>=>'fontEncoding<span class="charliteral">','</span>info'=>$options);
|
||
<a name="l00618"></a>00618 <span class="keywordflow">break</span>;
|
||
<a name="l00619"></a>00619 <span class="keywordflow">case</span> 'out':
|
||
<a name="l00620"></a>00620 <a class="code" href="pref_8inc_8php.html#a1">$res</a>=<span class="stringliteral">"\n"</span>.$id.<span class="stringliteral">" 0 obj\n<< /Type /Encoding\n"</span>;
|
||
<a name="l00621"></a>00621 <span class="keywordflow">if</span> (!isset($o['info']['encoding'])){
|
||
<a name="l00622"></a>00622 <a class="code" href="fiche__csv_8php.html#a5">$o</a>['info']['encoding']='WinAnsiEncoding';
|
||
<a name="l00623"></a>00623 }
|
||
<a name="l00624"></a>00624 <span class="keywordflow">if</span> ($o['info']['encoding']!='none'){
|
||
<a name="l00625"></a>00625 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"/BaseEncoding /"</span>.$o['info']['encoding'].<span class="stringliteral">"\n"</span>;
|
||
<a name="l00626"></a>00626 }
|
||
<a name="l00627"></a>00627 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"/Differences \n["</span>;
|
||
<a name="l00628"></a>00628 $onum=-100;
|
||
<a name="l00629"></a>00629 foreach($o['info']['differences'] as $num=>$<a class="code" href="action_8inc_8php.html#a7">label</a>){
|
||
<a name="l00630"></a>00630 <span class="keywordflow">if</span> ($num!=$onum+1){
|
||
<a name="l00631"></a>00631 <span class="comment">// we cannot make use of consecutive numbering</span>
|
||
<a name="l00632"></a>00632 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.= <span class="stringliteral">"\n"</span>.$num.<span class="stringliteral">" /"</span>.<a class="code" href="pref_8inc_8php.html#a6">$label</a>;
|
||
<a name="l00633"></a>00633 } <span class="keywordflow">else</span> {
|
||
<a name="l00634"></a>00634 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.= <span class="stringliteral">" /"</span>.$label;
|
||
<a name="l00635"></a>00635 }
|
||
<a name="l00636"></a>00636 $onum=<a class="code" href="jrn__add_8php.html#a17">$num</a>;
|
||
<a name="l00637"></a>00637 }
|
||
<a name="l00638"></a>00638 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n]\n>>\nendobj"</span>;
|
||
<a name="l00639"></a>00639 <span class="keywordflow">return</span> <a class="code" href="pref_8inc_8php.html#a1">$res</a>;
|
||
<a name="l00640"></a>00640 <span class="keywordflow">break</span>;
|
||
<a name="l00641"></a>00641 }
|
||
<a name="l00642"></a>00642 }
|
||
<a name="l00643"></a>00643
|
||
<a name="l00647"></a><a class="code" href="classCpdf.html#a9">00647</a> function <a class="code" href="classCpdf.html#a9">o_procset</a>($<span class="keywordtype">id</span>,$<a class="code" href="classaction.html">action</a>,$options=''){
|
||
<a name="l00648"></a>00648 <span class="keywordflow">if</span> ($<a class="code" href="classaction.html">action</a>!='<span class="keyword">new</span>'){
|
||
<a name="l00649"></a>00649 <a class="code" href="fiche__csv_8php.html#a5">$o</a> =& $this->objects[$id];
|
||
<a name="l00650"></a>00650 }
|
||
<a name="l00651"></a>00651 <span class="keywordflow">switch</span> ($<a class="code" href="classaction.html">action</a>){
|
||
<a name="l00652"></a>00652 <span class="keywordflow">case</span> '<span class="keyword">new</span>':
|
||
<a name="l00653"></a>00653 $this->objects[$id]=array(<span class="charliteral">'t'</span>=>'procset<span class="charliteral">','</span>info'=>array('PDF'=>1,'Text'=>1));
|
||
<a name="l00654"></a>00654 $this-><a class="code" href="classCpdf.html#a4">o_pages</a>($this->currentNode,'procset',$<span class="keywordtype">id</span>);
|
||
<a name="l00655"></a>00655 $this->procsetObjectId=$id;
|
||
<a name="l00656"></a>00656 <span class="keywordflow">break</span>;
|
||
<a name="l00657"></a>00657 <span class="keywordflow">case</span> 'add':
|
||
<a name="l00658"></a>00658 <span class="comment">// this is to add new items to the procset list, despite the fact that this is considered</span>
|
||
<a name="l00659"></a>00659 <span class="comment">// obselete, the items are required for printing to some postscript printers</span>
|
||
<a name="l00660"></a>00660 <span class="keywordflow">switch</span> ($options) {
|
||
<a name="l00661"></a>00661 <span class="keywordflow">case</span> 'ImageB':
|
||
<a name="l00662"></a>00662 <span class="keywordflow">case</span> 'ImageC':
|
||
<a name="l00663"></a>00663 <span class="keywordflow">case</span> 'ImageI':
|
||
<a name="l00664"></a>00664 <a class="code" href="fiche__csv_8php.html#a5">$o</a>['info'][<a class="code" href="classCpdf.html#o23">$options</a>]=1;
|
||
<a name="l00665"></a>00665 <span class="keywordflow">break</span>;
|
||
<a name="l00666"></a>00666 }
|
||
<a name="l00667"></a>00667 <span class="keywordflow">break</span>;
|
||
<a name="l00668"></a>00668 <span class="keywordflow">case</span> 'out':
|
||
<a name="l00669"></a>00669 <a class="code" href="pref_8inc_8php.html#a1">$res</a>=<span class="stringliteral">"\n"</span>.$id.<span class="stringliteral">" 0 obj\n["</span>;
|
||
<a name="l00670"></a>00670 foreach ($o['info'] as $<a class="code" href="action_8inc_8php.html#a7">label</a>=>$val){
|
||
<a name="l00671"></a>00671 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="charliteral">'/'</span>.$label.<span class="charliteral">' '</span>;
|
||
<a name="l00672"></a>00672 }
|
||
<a name="l00673"></a>00673 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"]\nendobj"</span>;
|
||
<a name="l00674"></a>00674 <span class="keywordflow">return</span> <a class="code" href="pref_8inc_8php.html#a1">$res</a>;
|
||
<a name="l00675"></a>00675 <span class="keywordflow">break</span>;
|
||
<a name="l00676"></a>00676 }
|
||
<a name="l00677"></a>00677 }
|
||
<a name="l00678"></a>00678
|
||
<a name="l00682"></a><a class="code" href="classCpdf.html#a10">00682</a> function <a class="code" href="classCpdf.html#a10">o_info</a>($<span class="keywordtype">id</span>,$<a class="code" href="classaction.html">action</a>,$options=''){
|
||
<a name="l00683"></a>00683 <span class="keywordflow">if</span> ($<a class="code" href="classaction.html">action</a>!='<span class="keyword">new</span>'){
|
||
<a name="l00684"></a>00684 <a class="code" href="fiche__csv_8php.html#a5">$o</a> =& $this->objects[$id];
|
||
<a name="l00685"></a>00685 }
|
||
<a name="l00686"></a>00686 <span class="keywordflow">switch</span> ($<a class="code" href="classaction.html">action</a>){
|
||
<a name="l00687"></a>00687 <span class="keywordflow">case</span> '<span class="keyword">new</span>':
|
||
<a name="l00688"></a>00688 $this->infoObject=$id;
|
||
<a name="l00689"></a>00689 $date='D:'.date('Ymd');
|
||
<a name="l00690"></a>00690 $this->objects[$id]=array(<span class="charliteral">'t'</span>=>'info<span class="charliteral">','</span>info'=>array('Creator'=>'R and OS php pdf writer, http:<span class="comment">//www.ros.co.nz','CreationDate'=>$date));</span>
|
||
<a name="l00691"></a>00691 <span class="keywordflow">break</span>;
|
||
<a name="l00692"></a>00692 <span class="keywordflow">case</span> 'Title':
|
||
<a name="l00693"></a>00693 <span class="keywordflow">case</span> 'Author':
|
||
<a name="l00694"></a>00694 <span class="keywordflow">case</span> 'Subject':
|
||
<a name="l00695"></a>00695 <span class="keywordflow">case</span> 'Keywords':
|
||
<a name="l00696"></a>00696 <span class="keywordflow">case</span> 'Creator':
|
||
<a name="l00697"></a>00697 <span class="keywordflow">case</span> 'Producer':
|
||
<a name="l00698"></a>00698 <span class="keywordflow">case</span> 'CreationDate':
|
||
<a name="l00699"></a>00699 <span class="keywordflow">case</span> 'ModDate':
|
||
<a name="l00700"></a>00700 <span class="keywordflow">case</span> 'Trapped':
|
||
<a name="l00701"></a>00701 $o['info'][$<a class="code" href="classaction.html">action</a>]=$options;
|
||
<a name="l00702"></a>00702 <span class="keywordflow">break</span>;
|
||
<a name="l00703"></a>00703 <span class="keywordflow">case</span> 'out':
|
||
<a name="l00704"></a>00704 <span class="keywordflow">if</span> ($this->encrypted){
|
||
<a name="l00705"></a>00705 $this->encryptInit($<span class="keywordtype">id</span>);
|
||
<a name="l00706"></a>00706 }
|
||
<a name="l00707"></a>00707 <a class="code" href="pref_8inc_8php.html#a1">$res</a>=<span class="stringliteral">"\n"</span>.$id.<span class="stringliteral">" 0 obj\n<<\n"</span>;
|
||
<a name="l00708"></a>00708 foreach ($o['info'] as $k=>$v){
|
||
<a name="l00709"></a>00709 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="charliteral">'/'</span>.$k.' (';
|
||
<a name="l00710"></a>00710 <span class="keywordflow">if</span> ($this->encrypted){
|
||
<a name="l00711"></a>00711 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=$this-><a class="code" href="classCpdf.html#a47">filterText</a>($this->ARC4($v));
|
||
<a name="l00712"></a>00712 } <span class="keywordflow">else</span> {
|
||
<a name="l00713"></a>00713 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=$this-><a class="code" href="classCpdf.html#a47">filterText</a>($v);
|
||
<a name="l00714"></a>00714 }
|
||
<a name="l00715"></a>00715 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">")\n"</span>;
|
||
<a name="l00716"></a>00716 }
|
||
<a name="l00717"></a>00717 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">">>\nendobj"</span>;
|
||
<a name="l00718"></a>00718 <span class="keywordflow">return</span> <a class="code" href="pref_8inc_8php.html#a1">$res</a>;
|
||
<a name="l00719"></a>00719 <span class="keywordflow">break</span>;
|
||
<a name="l00720"></a>00720 }
|
||
<a name="l00721"></a>00721 }
|
||
<a name="l00722"></a>00722
|
||
<a name="l00726"></a><a class="code" href="classCpdf.html#a11">00726</a> function o_action($<span class="keywordtype">id</span>,$<a class="code" href="classaction.html">action</a>,$options=''){
|
||
<a name="l00727"></a>00727 <span class="keywordflow">if</span> ($<a class="code" href="classaction.html">action</a>!='<span class="keyword">new</span>'){
|
||
<a name="l00728"></a>00728 <a class="code" href="fiche__csv_8php.html#a5">$o</a> =& $this->objects[$id];
|
||
<a name="l00729"></a>00729 }
|
||
<a name="l00730"></a>00730 <span class="keywordflow">switch</span> ($<a class="code" href="classaction.html">action</a>){
|
||
<a name="l00731"></a>00731 <span class="keywordflow">case</span> '<span class="keyword">new</span>':
|
||
<a name="l00732"></a>00732 <span class="keywordflow">if</span> (is_array($options)){
|
||
<a name="l00733"></a>00733 $this->objects[$id]=array(<span class="charliteral">'t'</span>=>'<a class="code" href="classaction.html">action</a><span class="charliteral">','</span>info'=>$options,'type'=>$options['type']);
|
||
<a name="l00734"></a>00734 } <span class="keywordflow">else</span> {
|
||
<a name="l00735"></a>00735 <span class="comment">// then assume a URI action</span>
|
||
<a name="l00736"></a>00736 $this->objects[$id]=array(<span class="charliteral">'t'</span>=>'<a class="code" href="classaction.html">action</a><span class="charliteral">','</span>info'=>$options,'type'=>'URI');
|
||
<a name="l00737"></a>00737 }
|
||
<a name="l00738"></a>00738 <span class="keywordflow">break</span>;
|
||
<a name="l00739"></a>00739 <span class="keywordflow">case</span> 'out':
|
||
<a name="l00740"></a>00740 <span class="keywordflow">if</span> ($this->encrypted){
|
||
<a name="l00741"></a>00741 $this->encryptInit($<span class="keywordtype">id</span>);
|
||
<a name="l00742"></a>00742 }
|
||
<a name="l00743"></a>00743 <a class="code" href="pref_8inc_8php.html#a1">$res</a>=<span class="stringliteral">"\n"</span>.$id.<span class="stringliteral">" 0 obj\n<< /Type /Action"</span>;
|
||
<a name="l00744"></a>00744 <span class="keywordflow">switch</span>(<a class="code" href="fiche__csv_8php.html#a5">$o</a>['type']){
|
||
<a name="l00745"></a>00745 <span class="keywordflow">case</span> 'ilink':
|
||
<a name="l00746"></a>00746 <span class="comment">// there will be an 'label' setting, this is the name of the destination</span>
|
||
<a name="l00747"></a>00747 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/S /GoTo\n/D "</span>.$this->destinations[(string)<a class="code" href="fiche__csv_8php.html#a5">$o</a>['info']['<a class="code" href="action_8inc_8php.html#a7">label</a>']].<span class="stringliteral">" 0 R"</span>;
|
||
<a name="l00748"></a>00748 <span class="keywordflow">break</span>;
|
||
<a name="l00749"></a>00749 <span class="keywordflow">case</span> 'URI':
|
||
<a name="l00750"></a>00750 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/S /URI\n/URI ("</span>;
|
||
<a name="l00751"></a>00751 <span class="keywordflow">if</span> ($this->encrypted){
|
||
<a name="l00752"></a>00752 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=$this->filterText($this->ARC4($o['info']));
|
||
<a name="l00753"></a>00753 } <span class="keywordflow">else</span> {
|
||
<a name="l00754"></a>00754 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=$this->filterText($o['info']);
|
||
<a name="l00755"></a>00755 }
|
||
<a name="l00756"></a>00756 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">")"</span>;
|
||
<a name="l00757"></a>00757 <span class="keywordflow">break</span>;
|
||
<a name="l00758"></a>00758 }
|
||
<a name="l00759"></a>00759 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n>>\nendobj"</span>;
|
||
<a name="l00760"></a>00760 <span class="keywordflow">return</span> <a class="code" href="pref_8inc_8php.html#a1">$res</a>;
|
||
<a name="l00761"></a>00761 <span class="keywordflow">break</span>;
|
||
<a name="l00762"></a>00762 }
|
||
<a name="l00763"></a>00763 }
|
||
<a name="l00764"></a>00764
|
||
<a name="l00769"></a><a class="code" href="classCpdf.html#a12">00769</a> function o_annotation($<span class="keywordtype">id</span>,$<a class="code" href="classaction.html">action</a>,$options=''){
|
||
<a name="l00770"></a>00770 <span class="keywordflow">if</span> ($<a class="code" href="classaction.html">action</a>!='<span class="keyword">new</span>'){
|
||
<a name="l00771"></a>00771 <a class="code" href="fiche__csv_8php.html#a5">$o</a> =& $this->objects[$id];
|
||
<a name="l00772"></a>00772 }
|
||
<a name="l00773"></a>00773 <span class="keywordflow">switch</span> ($<a class="code" href="classaction.html">action</a>){
|
||
<a name="l00774"></a>00774 <span class="keywordflow">case</span> '<span class="keyword">new</span>':
|
||
<a name="l00775"></a>00775 <span class="comment">// add the annotation to the current page</span>
|
||
<a name="l00776"></a>00776 $pageId = $this->currentPage;
|
||
<a name="l00777"></a>00777 $this->o_page($pageId,'annot',$<span class="keywordtype">id</span>);
|
||
<a name="l00778"></a>00778 <span class="comment">// and add the action object which is going to be required</span>
|
||
<a name="l00779"></a>00779 <span class="keywordflow">switch</span>($options['type']){
|
||
<a name="l00780"></a>00780 <span class="keywordflow">case</span> 'link':
|
||
<a name="l00781"></a>00781 $this->objects[$id]=array(<span class="charliteral">'t'</span>=>'annotation<span class="charliteral">','</span>info'=>$options);
|
||
<a name="l00782"></a>00782 $this->numObj++;
|
||
<a name="l00783"></a>00783 $this->o_action($this->numObj,'<span class="keyword">new</span>',$options['url']);
|
||
<a name="l00784"></a>00784 $this->objects[$id]['info']['actionId']=$this->numObj;
|
||
<a name="l00785"></a>00785 <span class="keywordflow">break</span>;
|
||
<a name="l00786"></a>00786 <span class="keywordflow">case</span> 'ilink':
|
||
<a name="l00787"></a>00787 <span class="comment">// this is to a named internal link</span>
|
||
<a name="l00788"></a>00788 <a class="code" href="pref_8inc_8php.html#a6">$label</a> = $options['<a class="code" href="action_8inc_8php.html#a7">label</a>'];
|
||
<a name="l00789"></a>00789 $this->objects[$id]=array(<span class="charliteral">'t'</span>=>'annotation<span class="charliteral">','</span>info'=>$options);
|
||
<a name="l00790"></a>00790 $this->numObj++;
|
||
<a name="l00791"></a>00791 $this->o_action($this->numObj,'<span class="keyword">new</span>',array('type'=>'ilink<span class="charliteral">','</span><a class="code" href="action_8inc_8php.html#a7">label</a>'=>$<a class="code" href="action_8inc_8php.html#a7">label</a>));
|
||
<a name="l00792"></a>00792 $this->objects[$id]['info']['actionId']=$this->numObj;
|
||
<a name="l00793"></a>00793 <span class="keywordflow">break</span>;
|
||
<a name="l00794"></a>00794 }
|
||
<a name="l00795"></a>00795 <span class="keywordflow">break</span>;
|
||
<a name="l00796"></a>00796 <span class="keywordflow">case</span> 'out':
|
||
<a name="l00797"></a>00797 <a class="code" href="pref_8inc_8php.html#a1">$res</a>=<span class="stringliteral">"\n"</span>.$id.<span class="stringliteral">" 0 obj\n<< /Type /Annot"</span>;
|
||
<a name="l00798"></a>00798 <span class="keywordflow">switch</span>(<a class="code" href="fiche__csv_8php.html#a5">$o</a>['info']['type']){
|
||
<a name="l00799"></a>00799 <span class="keywordflow">case</span> 'link':
|
||
<a name="l00800"></a>00800 <span class="keywordflow">case</span> 'ilink':
|
||
<a name="l00801"></a>00801 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.= <span class="stringliteral">"\n/Subtype /Link"</span>;
|
||
<a name="l00802"></a>00802 <span class="keywordflow">break</span>;
|
||
<a name="l00803"></a>00803 }
|
||
<a name="l00804"></a>00804 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/A "</span>.$o['info']['actionId'].<span class="stringliteral">" 0 R"</span>;
|
||
<a name="l00805"></a>00805 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/Border [0 0 0]"</span>;
|
||
<a name="l00806"></a>00806 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/H /I"</span>;
|
||
<a name="l00807"></a>00807 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/Rect [ "</span>;
|
||
<a name="l00808"></a>00808 foreach($o['info']['rect'] as $v){
|
||
<a name="l00809"></a>00809 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.= sprintf(<span class="stringliteral">"%.4f "</span>,$v);
|
||
<a name="l00810"></a>00810 }
|
||
<a name="l00811"></a>00811 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"]"</span>;
|
||
<a name="l00812"></a>00812 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n>>\nendobj"</span>;
|
||
<a name="l00813"></a>00813 <span class="keywordflow">return</span> <a class="code" href="pref_8inc_8php.html#a1">$res</a>;
|
||
<a name="l00814"></a>00814 <span class="keywordflow">break</span>;
|
||
<a name="l00815"></a>00815 }
|
||
<a name="l00816"></a>00816 }
|
||
<a name="l00817"></a>00817
|
||
<a name="l00821"></a><a class="code" href="classCpdf.html#a13">00821</a> function o_page($<span class="keywordtype">id</span>,$<a class="code" href="classaction.html">action</a>,$options=''){
|
||
<a name="l00822"></a>00822 <span class="keywordflow">if</span> ($<a class="code" href="classaction.html">action</a>!='<span class="keyword">new</span>'){
|
||
<a name="l00823"></a>00823 <a class="code" href="fiche__csv_8php.html#a5">$o</a> =& $this->objects[$id];
|
||
<a name="l00824"></a>00824 }
|
||
<a name="l00825"></a>00825 <span class="keywordflow">switch</span> ($<a class="code" href="classaction.html">action</a>){
|
||
<a name="l00826"></a>00826 <span class="keywordflow">case</span> '<span class="keyword">new</span>':
|
||
<a name="l00827"></a>00827 $this->numPages++;
|
||
<a name="l00828"></a>00828 $this->objects[$id]=array(<span class="charliteral">'t'</span>=>'page<span class="charliteral">','</span>info'=>array('parent'=>$this->currentNode,'pageNum'=>$this->numPages));
|
||
<a name="l00829"></a>00829 <span class="keywordflow">if</span> (is_array($options)){
|
||
<a name="l00830"></a>00830 <span class="comment">// then this must be a page insertion, array shoudl contain 'rid','pos'=[before|after]</span>
|
||
<a name="l00831"></a>00831 $options['<span class="keywordtype">id</span>']=$id;
|
||
<a name="l00832"></a>00832 $this->o_pages($this->currentNode,'page',$options);
|
||
<a name="l00833"></a>00833 } <span class="keywordflow">else</span> {
|
||
<a name="l00834"></a>00834 $this->o_pages($this->currentNode,'page',$<span class="keywordtype">id</span>);
|
||
<a name="l00835"></a>00835 }
|
||
<a name="l00836"></a>00836 $this->currentPage=$id;
|
||
<a name="l00837"></a>00837 <span class="comment">//make a contents object to go with this page</span>
|
||
<a name="l00838"></a>00838 $this->numObj++;
|
||
<a name="l00839"></a>00839 $this->o_contents($this->numObj,'<span class="keyword">new</span>',$<span class="keywordtype">id</span>);
|
||
<a name="l00840"></a>00840 $this->currentContents=$this->numObj;
|
||
<a name="l00841"></a>00841 $this->objects[$id]['info']['contents']=array();
|
||
<a name="l00842"></a>00842 $this->objects[$id]['info']['contents'][]=$this->numObj;
|
||
<a name="l00843"></a>00843 $match = ($this->numPages%2 ? 'odd' : 'even');
|
||
<a name="l00844"></a>00844 foreach($this->addLooseObjects as $oId=>$target){
|
||
<a name="l00845"></a>00845 <span class="keywordflow">if</span> ($target=='all' || $match==$target){
|
||
<a name="l00846"></a>00846 $this->objects[$id]['info']['contents'][]=$oId;
|
||
<a name="l00847"></a>00847 }
|
||
<a name="l00848"></a>00848 }
|
||
<a name="l00849"></a>00849 <span class="keywordflow">break</span>;
|
||
<a name="l00850"></a>00850 <span class="keywordflow">case</span> 'content':
|
||
<a name="l00851"></a>00851 <a class="code" href="fiche__csv_8php.html#a5">$o</a>['info']['contents'][]=$options;
|
||
<a name="l00852"></a>00852 <span class="keywordflow">break</span>;
|
||
<a name="l00853"></a>00853 <span class="keywordflow">case</span> 'annot':
|
||
<a name="l00854"></a>00854 <span class="comment">// add an annotation to this page</span>
|
||
<a name="l00855"></a>00855 <span class="keywordflow">if</span> (!isset($o['info']['annot'])){
|
||
<a name="l00856"></a>00856 <a class="code" href="fiche__csv_8php.html#a5">$o</a>['info']['annot']=array();
|
||
<a name="l00857"></a>00857 }
|
||
<a name="l00858"></a>00858 <span class="comment">// $options should contain the id of the annotation dictionary</span>
|
||
<a name="l00859"></a>00859 <a class="code" href="fiche__csv_8php.html#a5">$o</a>['info']['annot'][]=$options;
|
||
<a name="l00860"></a>00860 <span class="keywordflow">break</span>;
|
||
<a name="l00861"></a>00861 <span class="keywordflow">case</span> 'out':
|
||
<a name="l00862"></a>00862 <a class="code" href="pref_8inc_8php.html#a1">$res</a>=<span class="stringliteral">"\n"</span>.$id.<span class="stringliteral">" 0 obj\n<< /Type /Page"</span>;
|
||
<a name="l00863"></a>00863 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/Parent "</span>.$o['info']['parent'].<span class="stringliteral">" 0 R"</span>;
|
||
<a name="l00864"></a>00864 <span class="keywordflow">if</span> (isset($o['info']['annot'])){
|
||
<a name="l00865"></a>00865 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/Annots ["</span>;
|
||
<a name="l00866"></a>00866 foreach($o['info']['annot'] as $aId){
|
||
<a name="l00867"></a>00867 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">" "</span>.$aId.<span class="stringliteral">" 0 R"</span>;
|
||
<a name="l00868"></a>00868 }
|
||
<a name="l00869"></a>00869 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">" ]"</span>;
|
||
<a name="l00870"></a>00870 }
|
||
<a name="l00871"></a>00871 <a class="code" href="admin__repo_8php.html#a13">$count</a> = count($o['info']['contents']);
|
||
<a name="l00872"></a>00872 <span class="keywordflow">if</span> ($count==1){
|
||
<a name="l00873"></a>00873 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/Contents "</span>.$o['info']['contents'][0].<span class="stringliteral">" 0 R"</span>;
|
||
<a name="l00874"></a>00874 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ($count>1){
|
||
<a name="l00875"></a>00875 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/Contents [\n"</span>;
|
||
<a name="l00876"></a>00876 foreach ($o['info']['contents'] as $cId){
|
||
<a name="l00877"></a>00877 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=$cId.<span class="stringliteral">" 0 R\n"</span>;
|
||
<a name="l00878"></a>00878 }
|
||
<a name="l00879"></a>00879 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"]"</span>;
|
||
<a name="l00880"></a>00880 }
|
||
<a name="l00881"></a>00881 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n>>\nendobj"</span>;
|
||
<a name="l00882"></a>00882 <span class="keywordflow">return</span> <a class="code" href="pref_8inc_8php.html#a1">$res</a>;
|
||
<a name="l00883"></a>00883 <span class="keywordflow">break</span>;
|
||
<a name="l00884"></a>00884 }
|
||
<a name="l00885"></a>00885 }
|
||
<a name="l00886"></a>00886
|
||
<a name="l00890"></a><a class="code" href="classCpdf.html#a14">00890</a> function o_contents($<span class="keywordtype">id</span>,$<a class="code" href="classaction.html">action</a>,$options=''){
|
||
<a name="l00891"></a>00891 <span class="keywordflow">if</span> ($<a class="code" href="classaction.html">action</a>!='<span class="keyword">new</span>'){
|
||
<a name="l00892"></a>00892 <a class="code" href="fiche__csv_8php.html#a5">$o</a> =& $this->objects[$id];
|
||
<a name="l00893"></a>00893 }
|
||
<a name="l00894"></a>00894 <span class="keywordflow">switch</span> ($<a class="code" href="classaction.html">action</a>){
|
||
<a name="l00895"></a>00895 <span class="keywordflow">case</span> '<span class="keyword">new</span>':
|
||
<a name="l00896"></a>00896 $this->objects[$id]=array(<span class="charliteral">'t'</span>=>'contents<span class="charliteral">','</span>c'=>'<span class="charliteral">','</span>info'=>array());
|
||
<a name="l00897"></a>00897 <span class="keywordflow">if</span> (strlen($options) && intval($options)){
|
||
<a name="l00898"></a>00898 <span class="comment">// then this contents is the primary for a page</span>
|
||
<a name="l00899"></a>00899 $this->objects[$id]['onPage']=$options;
|
||
<a name="l00900"></a>00900 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ($options=='raw'){
|
||
<a name="l00901"></a>00901 <span class="comment">// then this page contains some other type of system object</span>
|
||
<a name="l00902"></a>00902 $this->objects[$id]['raw']=1;
|
||
<a name="l00903"></a>00903 }
|
||
<a name="l00904"></a>00904 <span class="keywordflow">break</span>;
|
||
<a name="l00905"></a>00905 <span class="keywordflow">case</span> 'add':
|
||
<a name="l00906"></a>00906 <span class="comment">// add more options to the decleration</span>
|
||
<a name="l00907"></a>00907 foreach ($options as $k=>$v){
|
||
<a name="l00908"></a>00908 <a class="code" href="fiche__csv_8php.html#a5">$o</a>['info'][$k]=$v;
|
||
<a name="l00909"></a>00909 }
|
||
<a name="l00910"></a>00910 <span class="keywordflow">case</span> 'out':
|
||
<a name="l00911"></a>00911 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a>=<a class="code" href="fiche__csv_8php.html#a5">$o</a>[<span class="charliteral">'c'</span>];
|
||
<a name="l00912"></a>00912 <a class="code" href="pref_8inc_8php.html#a1">$res</a>= <span class="stringliteral">"\n"</span>.$id.<span class="stringliteral">" 0 obj\n"</span>;
|
||
<a name="l00913"></a>00913 <span class="keywordflow">if</span> (isset($this->objects[$<span class="keywordtype">id</span>]['raw'])){
|
||
<a name="l00914"></a>00914 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<a class="code" href="show__document__modele_8php.html#a5">$tmp</a>;
|
||
<a name="l00915"></a>00915 } <span class="keywordflow">else</span> {
|
||
<a name="l00916"></a>00916 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.= <span class="stringliteral">"<<"</span>;
|
||
<a name="l00917"></a>00917 <span class="keywordflow">if</span> (function_exists('gzcompress') && $this->options['compression']){
|
||
<a name="l00918"></a>00918 <span class="comment">// then implement ZLIB based compression on this content stream</span>
|
||
<a name="l00919"></a>00919 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">" /Filter /FlateDecode"</span>;
|
||
<a name="l00920"></a>00920 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a> = gzcompress($tmp);
|
||
<a name="l00921"></a>00921 }
|
||
<a name="l00922"></a>00922 <span class="keywordflow">if</span> ($this->encrypted){
|
||
<a name="l00923"></a>00923 $this->encryptInit($<span class="keywordtype">id</span>);
|
||
<a name="l00924"></a>00924 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a> = $this->ARC4($tmp);
|
||
<a name="l00925"></a>00925 }
|
||
<a name="l00926"></a>00926 foreach($o['info'] as $k=>$v){
|
||
<a name="l00927"></a>00927 <a class="code" href="pref_8inc_8php.html#a1">$res</a> .= <span class="stringliteral">"\n/"</span>.$k.<span class="charliteral">' '</span>.$v;
|
||
<a name="l00928"></a>00928 }
|
||
<a name="l00929"></a>00929 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/Length "</span>.strlen($tmp).<span class="stringliteral">" >>\nstream\n"</span>.<a class="code" href="show__document__modele_8php.html#a5">$tmp</a>.<span class="stringliteral">"\nendstream"</span>;
|
||
<a name="l00930"></a>00930 }
|
||
<a name="l00931"></a>00931 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\nendobj\n"</span>;
|
||
<a name="l00932"></a>00932 <span class="keywordflow">return</span> <a class="code" href="pref_8inc_8php.html#a1">$res</a>;
|
||
<a name="l00933"></a>00933 <span class="keywordflow">break</span>;
|
||
<a name="l00934"></a>00934 }
|
||
<a name="l00935"></a>00935 }
|
||
<a name="l00936"></a>00936
|
||
<a name="l00940"></a><a class="code" href="classCpdf.html#a15">00940</a> function o_image($<span class="keywordtype">id</span>,$<a class="code" href="classaction.html">action</a>,$options=''){
|
||
<a name="l00941"></a>00941 <span class="keywordflow">if</span> ($<a class="code" href="classaction.html">action</a>!='<span class="keyword">new</span>'){
|
||
<a name="l00942"></a>00942 <a class="code" href="fiche__csv_8php.html#a5">$o</a> =& $this->objects[$id];
|
||
<a name="l00943"></a>00943 }
|
||
<a name="l00944"></a>00944 <span class="keywordflow">switch</span>(<a class="code" href="periode_8inc_8php.html#a1">$action</a>){
|
||
<a name="l00945"></a>00945 <span class="keywordflow">case</span> '<span class="keyword">new</span>':
|
||
<a name="l00946"></a>00946 <span class="comment">// make the new object</span>
|
||
<a name="l00947"></a>00947 $this->objects[$id]=array(<span class="charliteral">'t'</span>=>'image<span class="charliteral">','</span>data'=>$options['data'],'info'=>array());
|
||
<a name="l00948"></a>00948 $this->objects[$id]['info']['Type']='/XObject';
|
||
<a name="l00949"></a>00949 $this->objects[$id]['info']['Subtype']='/Image';
|
||
<a name="l00950"></a>00950 $this->objects[$id]['info']['Width']=$options['iw'];
|
||
<a name="l00951"></a>00951 $this->objects[$id]['info']['Height']=$options['ih'];
|
||
<a name="l00952"></a>00952 <span class="keywordflow">if</span> (!isset($options['type']) || $options['type']=='jpg'){
|
||
<a name="l00953"></a>00953 <span class="keywordflow">if</span> (!isset($options['channels'])){
|
||
<a name="l00954"></a>00954 $options['channels']=3;
|
||
<a name="l00955"></a>00955 }
|
||
<a name="l00956"></a>00956 <span class="keywordflow">switch</span>($options['channels']){
|
||
<a name="l00957"></a>00957 <span class="keywordflow">case</span> 1:
|
||
<a name="l00958"></a>00958 $this->objects[$id]['info']['ColorSpace']='/DeviceGray';
|
||
<a name="l00959"></a>00959 <span class="keywordflow">break</span>;
|
||
<a name="l00960"></a>00960 <span class="keywordflow">default</span>:
|
||
<a name="l00961"></a>00961 $this->objects[$id]['info']['ColorSpace']='/DeviceRGB';
|
||
<a name="l00962"></a>00962 <span class="keywordflow">break</span>;
|
||
<a name="l00963"></a>00963 }
|
||
<a name="l00964"></a>00964 $this->objects[$id]['info']['Filter']='/DCTDecode';
|
||
<a name="l00965"></a>00965 $this->objects[$id]['info']['BitsPerComponent']=8;
|
||
<a name="l00966"></a>00966 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ($options['type']=='png'){
|
||
<a name="l00967"></a>00967 $this->objects[$id]['info']['Filter']='/FlateDecode';
|
||
<a name="l00968"></a>00968 $this->objects[$id]['info']['DecodeParms']='<< /Predictor 15 /Colors '.$options['ncolor'].' /Columns '.$options['iw'].' /BitsPerComponent '.$options['bitsPerComponent'].'>>';
|
||
<a name="l00969"></a>00969 <span class="keywordflow">if</span> (strlen($options['pdata'])){
|
||
<a name="l00970"></a>00970 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a> = ' [ /Indexed /DeviceRGB '.(strlen($options['pdata'])/3-1).<span class="charliteral">' '</span>;
|
||
<a name="l00971"></a>00971 $this->numObj++;
|
||
<a name="l00972"></a>00972 $this->o_contents($this->numObj,'<span class="keyword">new</span>');
|
||
<a name="l00973"></a>00973 $this->objects[$this->numObj][<span class="charliteral">'c'</span>]=$options['pdata'];
|
||
<a name="l00974"></a>00974 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a>.=$this->numObj.' 0 R';
|
||
<a name="l00975"></a>00975 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a> .=' ]';
|
||
<a name="l00976"></a>00976 $this->objects[$id]['info']['ColorSpace'] = <a class="code" href="show__document__modele_8php.html#a5">$tmp</a>;
|
||
<a name="l00977"></a>00977 <span class="keywordflow">if</span> (isset($options['transparency'])){
|
||
<a name="l00978"></a>00978 <span class="keywordflow">switch</span>($options['transparency']['type']){
|
||
<a name="l00979"></a>00979 <span class="keywordflow">case</span> 'indexed':
|
||
<a name="l00980"></a>00980 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a>=' [ '.$options['transparency']['data'].<span class="charliteral">' '</span>.$options['transparency']['data'].'] ';
|
||
<a name="l00981"></a>00981 $this->objects[$id]['info']['Mask'] = <a class="code" href="show__document__modele_8php.html#a5">$tmp</a>;
|
||
<a name="l00982"></a>00982 <span class="keywordflow">break</span>;
|
||
<a name="l00983"></a>00983 }
|
||
<a name="l00984"></a>00984 }
|
||
<a name="l00985"></a>00985 } <span class="keywordflow">else</span> {
|
||
<a name="l00986"></a>00986 $this->objects[$id]['info']['ColorSpace']=<span class="charliteral">'/'</span>.$options['color'];
|
||
<a name="l00987"></a>00987 }
|
||
<a name="l00988"></a>00988 $this->objects[$id]['info']['BitsPerComponent']=$options['bitsPerComponent'];
|
||
<a name="l00989"></a>00989 }
|
||
<a name="l00990"></a>00990 <span class="comment">// assign it a place in the named resource dictionary as an external object, according to</span>
|
||
<a name="l00991"></a>00991 <span class="comment">// the label passed in with it.</span>
|
||
<a name="l00992"></a>00992 $this->o_pages($this->currentNode,'xObject',array('<a class="code" href="action_8inc_8php.html#a7">label</a>'=>$options['<a class="code" href="action_8inc_8php.html#a7">label</a>'],'objNum'=>$<span class="keywordtype">id</span>));
|
||
<a name="l00993"></a>00993 <span class="comment">// also make sure that we have the right procset object for it.</span>
|
||
<a name="l00994"></a>00994 $this->o_procset($this->procsetObjectId,'add<span class="charliteral">','</span>ImageC');
|
||
<a name="l00995"></a>00995 <span class="keywordflow">break</span>;
|
||
<a name="l00996"></a>00996 <span class="keywordflow">case</span> 'out':
|
||
<a name="l00997"></a>00997 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a>=<a class="code" href="fiche__csv_8php.html#a5">$o</a>['data'];
|
||
<a name="l00998"></a>00998 <a class="code" href="pref_8inc_8php.html#a1">$res</a>= <span class="stringliteral">"\n"</span>.$id.<span class="stringliteral">" 0 obj\n<<"</span>;
|
||
<a name="l00999"></a>00999 foreach($o['info'] as $k=>$v){
|
||
<a name="l01000"></a>01000 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/"</span>.$k.<span class="charliteral">' '</span>.$v;
|
||
<a name="l01001"></a>01001 }
|
||
<a name="l01002"></a>01002 <span class="keywordflow">if</span> ($this->encrypted){
|
||
<a name="l01003"></a>01003 $this->encryptInit($<span class="keywordtype">id</span>);
|
||
<a name="l01004"></a>01004 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a> = $this->ARC4($tmp);
|
||
<a name="l01005"></a>01005 }
|
||
<a name="l01006"></a>01006 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/Length "</span>.strlen($tmp).<span class="stringliteral">" >>\nstream\n"</span>.<a class="code" href="show__document__modele_8php.html#a5">$tmp</a>.<span class="stringliteral">"\nendstream\nendobj\n"</span>;
|
||
<a name="l01007"></a>01007 <span class="keywordflow">return</span> <a class="code" href="pref_8inc_8php.html#a1">$res</a>;
|
||
<a name="l01008"></a>01008 <span class="keywordflow">break</span>;
|
||
<a name="l01009"></a>01009 }
|
||
<a name="l01010"></a>01010 }
|
||
<a name="l01011"></a>01011
|
||
<a name="l01015"></a><a class="code" href="classCpdf.html#a16">01015</a> function o_encryption($<span class="keywordtype">id</span>,$<a class="code" href="classaction.html">action</a>,$options=''){
|
||
<a name="l01016"></a>01016 <span class="keywordflow">if</span> ($<a class="code" href="classaction.html">action</a>!='<span class="keyword">new</span>'){
|
||
<a name="l01017"></a>01017 <a class="code" href="fiche__csv_8php.html#a5">$o</a> =& $this->objects[$id];
|
||
<a name="l01018"></a>01018 }
|
||
<a name="l01019"></a>01019 <span class="keywordflow">switch</span>(<a class="code" href="periode_8inc_8php.html#a1">$action</a>){
|
||
<a name="l01020"></a>01020 <span class="keywordflow">case</span> '<span class="keyword">new</span>':
|
||
<a name="l01021"></a>01021 <span class="comment">// make the new object</span>
|
||
<a name="l01022"></a>01022 $this->objects[$id]=array(<span class="charliteral">'t'</span>=>'encryption<span class="charliteral">','</span>info'=>$options);
|
||
<a name="l01023"></a>01023 $this->arc4_objnum=$id;
|
||
<a name="l01024"></a>01024 <span class="comment">// figure out the additional paramaters required</span>
|
||
<a name="l01025"></a>01025 $pad = chr(0x28).chr(0xBF).chr(0x4E).chr(0x5E).chr(0x4E).chr(0x75).chr(0x8A).chr(0x41).chr(0x64).chr(0x00).chr(0x4E).chr(0x56).chr(0xFF).chr(0xFA).chr(0x01).chr(0x08).chr(0x2E).chr(0x2E).chr(0x00).chr(0xB6).chr(0xD0).chr(0x68).chr(0x3E).chr(0x80).chr(0x2F).chr(0x0C).chr(0xA9).chr(0xFE).chr(0x64).chr(0x53).chr(0x69).chr(0x7A);
|
||
<a name="l01026"></a>01026 $len = strlen($options['owner']);
|
||
<a name="l01027"></a>01027 <span class="keywordflow">if</span> ($len>32){
|
||
<a name="l01028"></a>01028 $owner = substr($options['owner'],0,32);
|
||
<a name="l01029"></a>01029 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ($len<32){
|
||
<a name="l01030"></a>01030 $owner = $options['owner'].substr($pad,0,32-$len);
|
||
<a name="l01031"></a>01031 } <span class="keywordflow">else</span> {
|
||
<a name="l01032"></a>01032 $owner = $options['owner'];
|
||
<a name="l01033"></a>01033 }
|
||
<a name="l01034"></a>01034 $len = strlen($options['user']);
|
||
<a name="l01035"></a>01035 <span class="keywordflow">if</span> ($len>32){
|
||
<a name="l01036"></a>01036 $user = substr($options['user'],0,32);
|
||
<a name="l01037"></a>01037 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ($len<32){
|
||
<a name="l01038"></a>01038 $user = $options['user'].substr($pad,0,32-$len);
|
||
<a name="l01039"></a>01039 } <span class="keywordflow">else</span> {
|
||
<a name="l01040"></a>01040 $user = $options['user'];
|
||
<a name="l01041"></a>01041 }
|
||
<a name="l01042"></a>01042 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a> = $this->md5_16($owner);
|
||
<a name="l01043"></a>01043 $okey = substr($tmp,0,5);
|
||
<a name="l01044"></a>01044 $this->ARC4_init($okey);
|
||
<a name="l01045"></a>01045 $ovalue=$this->ARC4($user);
|
||
<a name="l01046"></a>01046 $this->objects[$id]['info'][<span class="charliteral">'O'</span>]=$ovalue;
|
||
<a name="l01047"></a>01047 <span class="comment">// now make the u value, phew.</span>
|
||
<a name="l01048"></a>01048 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a> = $this->md5_16($user.$ovalue.chr($options[<span class="charliteral">'p'</span>]).chr(255).chr(255).chr(255).$this->fileIdentifier);
|
||
<a name="l01049"></a>01049 $ukey = substr($tmp,0,5);
|
||
<a name="l01050"></a>01050
|
||
<a name="l01051"></a>01051 $this->ARC4_init($ukey);
|
||
<a name="l01052"></a>01052 $this->encryptionKey = $ukey;
|
||
<a name="l01053"></a>01053 $this->encrypted=1;
|
||
<a name="l01054"></a>01054 $uvalue=$this->ARC4($pad);
|
||
<a name="l01055"></a>01055
|
||
<a name="l01056"></a>01056 $this->objects[$id]['info'][<span class="charliteral">'U'</span>]=$uvalue;
|
||
<a name="l01057"></a>01057 $this->encryptionKey=$ukey;
|
||
<a name="l01058"></a>01058
|
||
<a name="l01059"></a>01059 <span class="comment">// initialize the arc4 array</span>
|
||
<a name="l01060"></a>01060 <span class="keywordflow">break</span>;
|
||
<a name="l01061"></a>01061 <span class="keywordflow">case</span> 'out':
|
||
<a name="l01062"></a>01062 <a class="code" href="pref_8inc_8php.html#a1">$res</a>= <span class="stringliteral">"\n"</span>.$id.<span class="stringliteral">" 0 obj\n<<"</span>;
|
||
<a name="l01063"></a>01063 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/Filter /Standard"</span>;
|
||
<a name="l01064"></a>01064 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/V 1"</span>;
|
||
<a name="l01065"></a>01065 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/R 2"</span>;
|
||
<a name="l01066"></a>01066 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/O ("</span>.$this->filterText($o['info'][<span class="charliteral">'O'</span>]).<span class="charliteral">')'</span>;
|
||
<a name="l01067"></a>01067 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/U ("</span>.$this->filterText($o['info'][<span class="charliteral">'U'</span>]).<span class="charliteral">')'</span>;
|
||
<a name="l01068"></a>01068 <span class="comment">// and the p-value needs to be converted to account for the twos-complement approach</span>
|
||
<a name="l01069"></a>01069 <a class="code" href="fiche__csv_8php.html#a5">$o</a>['info'][<span class="charliteral">'p'</span>] = ((<a class="code" href="fiche__csv_8php.html#a5">$o</a>['info'][<span class="charliteral">'p'</span>]^255)+1)*-1;
|
||
<a name="l01070"></a>01070 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n/P "</span>.($o['info'][<span class="charliteral">'p'</span>]);
|
||
<a name="l01071"></a>01071 <a class="code" href="pref_8inc_8php.html#a1">$res</a>.=<span class="stringliteral">"\n>>\nendobj\n"</span>;
|
||
<a name="l01072"></a>01072
|
||
<a name="l01073"></a>01073 <span class="keywordflow">return</span> <a class="code" href="pref_8inc_8php.html#a1">$res</a>;
|
||
<a name="l01074"></a>01074 <span class="keywordflow">break</span>;
|
||
<a name="l01075"></a>01075 }
|
||
<a name="l01076"></a>01076 }
|
||
<a name="l01077"></a>01077
|
||
<a name="l01086"></a><a class="code" href="classCpdf.html#a17">01086</a> function md5_16($string){
|
||
<a name="l01087"></a>01087 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a> = md5($string);
|
||
<a name="l01088"></a>01088 $out='';
|
||
<a name="l01089"></a>01089 <span class="keywordflow">for</span> ($i=0;$i<=30;$i=$i+2){
|
||
<a name="l01090"></a>01090 $out.=chr(hexdec(substr($tmp,$i,2)));
|
||
<a name="l01091"></a>01091 }
|
||
<a name="l01092"></a>01092 <span class="keywordflow">return</span> $out;
|
||
<a name="l01093"></a>01093 }
|
||
<a name="l01094"></a>01094
|
||
<a name="l01098"></a><a class="code" href="classCpdf.html#a18">01098</a> function encryptInit($<span class="keywordtype">id</span>){
|
||
<a name="l01099"></a>01099 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a> = $this->encryptionKey;
|
||
<a name="l01100"></a>01100 $hex = dechex($<span class="keywordtype">id</span>);
|
||
<a name="l01101"></a>01101 <span class="keywordflow">if</span> (strlen($hex)<6){
|
||
<a name="l01102"></a>01102 $hex = substr('000000',0,6-strlen($hex)).$hex;
|
||
<a name="l01103"></a>01103 }
|
||
<a name="l01104"></a>01104 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a>.= chr(hexdec(substr($hex,4,2))).chr(hexdec(substr($hex,2,2))).chr(hexdec(substr($hex,0,2))).chr(0).chr(0);
|
||
<a name="l01105"></a>01105 $key = $this->md5_16($tmp);
|
||
<a name="l01106"></a>01106 $this->ARC4_init(substr($key,0,10));
|
||
<a name="l01107"></a>01107 }
|
||
<a name="l01108"></a>01108
|
||
<a name="l01112"></a><a class="code" href="classCpdf.html#a19">01112</a> function ARC4_init($key=''){
|
||
<a name="l01113"></a>01113 $this->arc4 = '';
|
||
<a name="l01114"></a>01114 <span class="comment">// setup the control array</span>
|
||
<a name="l01115"></a>01115 <span class="keywordflow">if</span> (strlen($key)==0){
|
||
<a name="l01116"></a>01116 <span class="keywordflow">return</span>;
|
||
<a name="l01117"></a>01117 }
|
||
<a name="l01118"></a>01118 $k = '';
|
||
<a name="l01119"></a>01119 <span class="keywordflow">while</span>(strlen($k)<256){
|
||
<a name="l01120"></a>01120 $k.=$key;
|
||
<a name="l01121"></a>01121 }
|
||
<a name="l01122"></a>01122 $k=substr($k,0,256);
|
||
<a name="l01123"></a>01123 <span class="keywordflow">for</span> ($i=0;$i<256;$i++){
|
||
<a name="l01124"></a>01124 $this->arc4 .= chr($i);
|
||
<a name="l01125"></a>01125 }
|
||
<a name="l01126"></a>01126 $j=0;
|
||
<a name="l01127"></a>01127 <span class="keywordflow">for</span> ($i=0;$i<256;$i++){
|
||
<a name="l01128"></a>01128 <a class="code" href="impress__rapport_8php.html#a3">$t</a> = $this->arc4[<a class="code" href="balance_8php.html#a12">$i</a>];
|
||
<a name="l01129"></a>01129 $j = ($j + ord($t) + ord($k[$i]))%256;
|
||
<a name="l01130"></a>01130 $this->arc4[<a class="code" href="balance_8php.html#a12">$i</a>]=$this->arc4[$j];
|
||
<a name="l01131"></a>01131 $this->arc4[$j]=<a class="code" href="impress__rapport_8php.html#a3">$t</a>;
|
||
<a name="l01132"></a>01132 }
|
||
<a name="l01133"></a>01133 }
|
||
<a name="l01134"></a>01134
|
||
<a name="l01138"></a><a class="code" href="classCpdf.html#a20">01138</a> function ARC4($text){
|
||
<a name="l01139"></a>01139 $len=strlen($text);
|
||
<a name="l01140"></a>01140 <a class="code" href="action_8inc_8php.html#a16">$a</a>=0;
|
||
<a name="l01141"></a>01141 <a class="code" href="balance_8php.html#a11">$b</a>=0;
|
||
<a name="l01142"></a>01142 <a class="code" href="admin_8inc_8php.html#a2">$c</a> = $this->arc4;
|
||
<a name="l01143"></a>01143 $out='';
|
||
<a name="l01144"></a>01144 <span class="keywordflow">for</span> ($i=0;$i<$len;$i++){
|
||
<a name="l01145"></a>01145 <a class="code" href="action_8inc_8php.html#a16">$a</a> = (<a class="code" href="action_8inc_8php.html#a16">$a</a>+1)%256;
|
||
<a name="l01146"></a>01146 <a class="code" href="impress__rapport_8php.html#a3">$t</a>= <a class="code" href="admin_8inc_8php.html#a2">$c</a>[<a class="code" href="action_8inc_8php.html#a16">$a</a>];
|
||
<a name="l01147"></a>01147 <a class="code" href="balance_8php.html#a11">$b</a> = (<a class="code" href="balance_8php.html#a11">$b</a>+ord($t))%256;
|
||
<a name="l01148"></a>01148 <a class="code" href="admin_8inc_8php.html#a2">$c</a>[<a class="code" href="action_8inc_8php.html#a16">$a</a>]=<a class="code" href="admin_8inc_8php.html#a2">$c</a>[<a class="code" href="balance_8php.html#a11">$b</a>];
|
||
<a name="l01149"></a>01149 <a class="code" href="admin_8inc_8php.html#a2">$c</a>[<a class="code" href="balance_8php.html#a11">$b</a>]=<a class="code" href="impress__rapport_8php.html#a3">$t</a>;
|
||
<a name="l01150"></a>01150 $k = ord($c[(ord($c[$a])+ord($c[$b]))%256]);
|
||
<a name="l01151"></a>01151 $out.=chr(ord($text[$i]) ^ $k);
|
||
<a name="l01152"></a>01152 }
|
||
<a name="l01153"></a>01153
|
||
<a name="l01154"></a>01154 <span class="keywordflow">return</span> $out;
|
||
<a name="l01155"></a>01155 }
|
||
<a name="l01156"></a>01156
|
||
<a name="l01164"></a><a class="code" href="classCpdf.html#a21">01164</a> function addLink($url,$x0,$y0,$x1,$y1){
|
||
<a name="l01165"></a>01165 $this->numObj++;
|
||
<a name="l01166"></a>01166 $info = array('type'=>'link<span class="charliteral">','</span>url'=>$url,'rect'=>array($x0,$y0,$x1,$y1));
|
||
<a name="l01167"></a>01167 $this->o_annotation($this->numObj,'<span class="keyword">new</span>',$info);
|
||
<a name="l01168"></a>01168 }
|
||
<a name="l01169"></a>01169
|
||
<a name="l01173"></a><a class="code" href="classCpdf.html#a22">01173</a> function addInternalLink($<a class="code" href="action_8inc_8php.html#a7">label</a>,$x0,$y0,$x1,$y1){
|
||
<a name="l01174"></a>01174 $this->numObj++;
|
||
<a name="l01175"></a>01175 $info = array('type'=>'ilink<span class="charliteral">','</span><a class="code" href="action_8inc_8php.html#a7">label</a>'=>$<a class="code" href="action_8inc_8php.html#a7">label</a>,'rect'=>array($x0,$y0,$x1,$y1));
|
||
<a name="l01176"></a>01176 $this->o_annotation($this->numObj,'<span class="keyword">new</span>',$info);
|
||
<a name="l01177"></a>01177 }
|
||
<a name="l01178"></a>01178
|
||
<a name="l01184"></a><a class="code" href="classCpdf.html#a23">01184</a> function setEncryption($userPass='',$ownerPass='',$pc=array()){
|
||
<a name="l01185"></a>01185 <a class="code" href="line__update_8php.html#a10">$p</a>=bindec(11000000);
|
||
<a name="l01186"></a>01186
|
||
<a name="l01187"></a>01187 $options = array(
|
||
<a name="l01188"></a>01188 '<a class="code" href="impress__bilan_8php.html#a3">print</a>'=>4
|
||
<a name="l01189"></a>01189 ,'modify'=>8
|
||
<a name="l01190"></a>01190 ,'copy'=>16
|
||
<a name="l01191"></a>01191 ,'add'=>32
|
||
<a name="l01192"></a>01192 );
|
||
<a name="l01193"></a>01193 foreach($pc as $k=>$v){
|
||
<a name="l01194"></a>01194 <span class="keywordflow">if</span> ($v && isset($options[$k])){
|
||
<a name="l01195"></a>01195 <a class="code" href="line__update_8php.html#a10">$p</a>+=$options[$k];
|
||
<a name="l01196"></a>01196 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isset($options[$v])){
|
||
<a name="l01197"></a>01197 <a class="code" href="line__update_8php.html#a10">$p</a>+=$options[$v];
|
||
<a name="l01198"></a>01198 }
|
||
<a name="l01199"></a>01199 }
|
||
<a name="l01200"></a>01200 <span class="comment">// implement encryption on the document</span>
|
||
<a name="l01201"></a>01201 <span class="keywordflow">if</span> ($this->arc4_objnum == 0){
|
||
<a name="l01202"></a>01202 <span class="comment">// then the block does not exist already, add it.</span>
|
||
<a name="l01203"></a>01203 $this->numObj++;
|
||
<a name="l01204"></a>01204 <span class="keywordflow">if</span> (strlen($ownerPass)==0){
|
||
<a name="l01205"></a>01205 $ownerPass=$userPass;
|
||
<a name="l01206"></a>01206 }
|
||
<a name="l01207"></a>01207 $this->o_encryption($this->numObj,'<span class="keyword">new</span>',array('user'=>$userPass,'owner'=>$ownerPass,<span class="charliteral">'p'</span>=>$p));
|
||
<a name="l01208"></a>01208 }
|
||
<a name="l01209"></a>01209 }
|
||
<a name="l01210"></a>01210
|
||
<a name="l01214"></a><a class="code" href="classCpdf.html#a24">01214</a> function checkAllHere(){
|
||
<a name="l01215"></a>01215 }
|
||
<a name="l01216"></a>01216
|
||
<a name="l01220"></a><a class="code" href="classCpdf.html#a25">01220</a> function output($debug=0){
|
||
<a name="l01221"></a>01221
|
||
<a name="l01222"></a>01222 <span class="keywordflow">if</span> ($debug){
|
||
<a name="l01223"></a>01223 <span class="comment">// turn compression off</span>
|
||
<a name="l01224"></a>01224 $this->options['compression']=0;
|
||
<a name="l01225"></a>01225 }
|
||
<a name="l01226"></a>01226
|
||
<a name="l01227"></a>01227 <span class="keywordflow">if</span> ($this->arc4_objnum){
|
||
<a name="l01228"></a>01228 $this->ARC4_init($this->encryptionKey);
|
||
<a name="l01229"></a>01229 }
|
||
<a name="l01230"></a>01230
|
||
<a name="l01231"></a>01231 $this->checkAllHere();
|
||
<a name="l01232"></a>01232
|
||
<a name="l01233"></a>01233 $xref=array();
|
||
<a name="l01234"></a>01234 $content=<span class="stringliteral">"%PDF-1.3\n%<25><><EFBFBD><EFBFBD>\n"</span>;
|
||
<a name="l01235"></a>01235 <span class="comment">// $content="%PDF-1.3\n";</span>
|
||
<a name="l01236"></a>01236 $pos=strlen($content);
|
||
<a name="l01237"></a>01237 foreach($this->objects as $k=>$v){
|
||
<a name="l01238"></a>01238 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a>='o_'.$v[<span class="charliteral">'t'</span>];
|
||
<a name="l01239"></a>01239 $cont=$this-><a class="code" href="show__document__modele_8php.html#a5">$tmp</a>($k,'out');
|
||
<a name="l01240"></a>01240 $content.=$cont;
|
||
<a name="l01241"></a>01241 $xref[]=$pos;
|
||
<a name="l01242"></a>01242 $pos+=strlen($cont);
|
||
<a name="l01243"></a>01243 }
|
||
<a name="l01244"></a>01244 $content.=<span class="stringliteral">"\nxref\n0 "</span>.(count($xref)+1).<span class="stringliteral">"\n0000000000 65535 f \n"</span>;
|
||
<a name="l01245"></a>01245 foreach($xref as $p){
|
||
<a name="l01246"></a>01246 $content.=substr('0000000000',0,10-strlen($p)).$p.<span class="stringliteral">" 00000 n \n"</span>;
|
||
<a name="l01247"></a>01247 }
|
||
<a name="l01248"></a>01248 $content.=<span class="stringliteral">"\ntrailer\n << /Size "</span>.(count($xref)+1).<span class="stringliteral">"\n /Root 1 0 R\n /Info "</span>.$this->infoObject.<span class="stringliteral">" 0 R\n"</span>;
|
||
<a name="l01249"></a>01249 <span class="comment">// if encryption has been applied to this document then add the marker for this dictionary</span>
|
||
<a name="l01250"></a>01250 <span class="keywordflow">if</span> ($this->arc4_objnum > 0){
|
||
<a name="l01251"></a>01251 $content .= <span class="stringliteral">"/Encrypt "</span>.$this->arc4_objnum.<span class="stringliteral">" 0 R\n"</span>;
|
||
<a name="l01252"></a>01252 }
|
||
<a name="l01253"></a>01253 <span class="keywordflow">if</span> (strlen($this->fileIdentifier)){
|
||
<a name="l01254"></a>01254 $content .= <span class="stringliteral">"/ID[<"</span>.$this->fileIdentifier.<span class="stringliteral">"><"</span>.$this->fileIdentifier.<span class="stringliteral">">]\n"</span>;
|
||
<a name="l01255"></a>01255 }
|
||
<a name="l01256"></a>01256 $content .= <span class="stringliteral">" >>\nstartxref\n"</span>.$pos.<span class="stringliteral">"\n%%EOF\n"</span>;
|
||
<a name="l01257"></a>01257 <span class="keywordflow">return</span> $content;
|
||
<a name="l01258"></a>01258 }
|
||
<a name="l01259"></a>01259
|
||
<a name="l01267"></a><a class="code" href="classCpdf.html#a26">01267</a> function newDocument($pageSize=array(0,0,612,792)){
|
||
<a name="l01268"></a>01268 $this->numObj=0;
|
||
<a name="l01269"></a>01269 $this->objects = array();
|
||
<a name="l01270"></a>01270
|
||
<a name="l01271"></a>01271 $this->numObj++;
|
||
<a name="l01272"></a>01272 $this->o_catalog($this->numObj,'<span class="keyword">new</span>');
|
||
<a name="l01273"></a>01273
|
||
<a name="l01274"></a>01274 $this->numObj++;
|
||
<a name="l01275"></a>01275 $this->o_outlines($this->numObj,'<span class="keyword">new</span>');
|
||
<a name="l01276"></a>01276
|
||
<a name="l01277"></a>01277 $this->numObj++;
|
||
<a name="l01278"></a>01278 $this->o_pages($this->numObj,'<span class="keyword">new</span>');
|
||
<a name="l01279"></a>01279
|
||
<a name="l01280"></a>01280 $this->o_pages($this->numObj,'mediaBox',$pageSize);
|
||
<a name="l01281"></a>01281 $this->currentNode = 3;
|
||
<a name="l01282"></a>01282
|
||
<a name="l01283"></a>01283 $this->numObj++;
|
||
<a name="l01284"></a>01284 $this->o_procset($this->numObj,'<span class="keyword">new</span>');
|
||
<a name="l01285"></a>01285
|
||
<a name="l01286"></a>01286 $this->numObj++;
|
||
<a name="l01287"></a>01287 $this->o_info($this->numObj,'<span class="keyword">new</span>');
|
||
<a name="l01288"></a>01288
|
||
<a name="l01289"></a>01289 $this->numObj++;
|
||
<a name="l01290"></a>01290 $this->o_page($this->numObj,'<span class="keyword">new</span>');
|
||
<a name="l01291"></a>01291
|
||
<a name="l01292"></a>01292 <span class="comment">// need to store the first page id as there is no way to get it to the user during </span>
|
||
<a name="l01293"></a>01293 <span class="comment">// startup</span>
|
||
<a name="l01294"></a>01294 $this->firstPageId = $this->currentContents;
|
||
<a name="l01295"></a>01295 }
|
||
<a name="l01296"></a>01296
|
||
<a name="l01306"></a><a class="code" href="classCpdf.html#a27">01306</a> function openFont($font){
|
||
<a name="l01307"></a>01307 <span class="comment">// assume that $font contains both the path and perhaps the extension to the file, split them</span>
|
||
<a name="l01308"></a>01308 $pos=strrpos($font,<span class="charliteral">'/'</span>);
|
||
<a name="l01309"></a>01309 <span class="keywordflow">if</span> ($pos===<span class="keyword">false</span>){
|
||
<a name="l01310"></a>01310 $dir = './';
|
||
<a name="l01311"></a>01311 $name = $font;
|
||
<a name="l01312"></a>01312 } <span class="keywordflow">else</span> {
|
||
<a name="l01313"></a>01313 $dir=substr($font,0,$pos+1);
|
||
<a name="l01314"></a>01314 $name=substr($font,$pos+1);
|
||
<a name="l01315"></a>01315 }
|
||
<a name="l01316"></a>01316
|
||
<a name="l01317"></a>01317 <span class="keywordflow">if</span> (substr($<a class="code" href="action_8inc_8php.html#a4">name</a>,-4)=='.afm'){
|
||
<a name="l01318"></a>01318 $name=substr($<a class="code" href="action_8inc_8php.html#a4">name</a>,0,strlen($<a class="code" href="action_8inc_8php.html#a4">name</a>)-4);
|
||
<a name="l01319"></a>01319 }
|
||
<a name="l01320"></a>01320 $this->addMessage('openFont: '.$font.' - '.$name);
|
||
<a name="l01321"></a>01321 <span class="keywordflow">if</span> (file_exists($dir.'php_'.$name.'.afm')){
|
||
<a name="l01322"></a>01322 $this->addMessage('openFont: php file exists '.$dir.'php_'.$name.'.afm');
|
||
<a name="l01323"></a>01323 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a> = file($dir.'php_'.$name.'.afm');
|
||
<a name="l01324"></a>01324 $this->fonts[$font]=unserialize($tmp[0]);
|
||
<a name="l01325"></a>01325 <span class="keywordflow">if</span> (!isset($this->fonts[$font]['_version_']) || $this->fonts[$font]['_version_']<1){
|
||
<a name="l01326"></a>01326 <span class="comment">// if the font file is old, then clear it out and prepare for re-creation</span>
|
||
<a name="l01327"></a>01327 $this->addMessage('openFont: clear out, make way <span class="keywordflow">for</span> <span class="keyword">new</span> version.');
|
||
<a name="l01328"></a>01328 unset($this->fonts[$font]);
|
||
<a name="l01329"></a>01329 }
|
||
<a name="l01330"></a>01330 }
|
||
<a name="l01331"></a>01331 <span class="keywordflow">if</span> (!isset($this->fonts[$font]) && file_exists($dir.$name.'.afm')){
|
||
<a name="l01332"></a>01332 <span class="comment">// then rebuild the php_<font>.afm file from the <font>.afm file</span>
|
||
<a name="l01333"></a>01333 $this->addMessage('openFont: build php file from '.$dir.$name.'.afm');
|
||
<a name="l01334"></a>01334 <a class="code" href="readme_8php.html#a4">$data</a> = array();
|
||
<a name="l01335"></a>01335 <a class="code" href="show__document__modele_8php.html#a6">$file</a> = file($dir.$name.'.afm');
|
||
<a name="l01336"></a>01336 foreach ($file as $rowA){
|
||
<a name="l01337"></a>01337 <a class="code" href="cbc__be_8inc_8php.html#a0">$row</a>=trim($rowA);
|
||
<a name="l01338"></a>01338 $pos=strpos($row,<span class="charliteral">' '</span>);
|
||
<a name="l01339"></a>01339 <span class="keywordflow">if</span> ($pos){
|
||
<a name="l01340"></a>01340 <span class="comment">// then there must be some keyword</span>
|
||
<a name="l01341"></a>01341 $key = substr($row,0,$pos);
|
||
<a name="l01342"></a>01342 <span class="keywordflow">switch</span> ($key){
|
||
<a name="l01343"></a>01343 <span class="keywordflow">case</span> 'FontName':
|
||
<a name="l01344"></a>01344 <span class="keywordflow">case</span> 'FullName':
|
||
<a name="l01345"></a>01345 <span class="keywordflow">case</span> 'FamilyName':
|
||
<a name="l01346"></a>01346 <span class="keywordflow">case</span> 'Weight':
|
||
<a name="l01347"></a>01347 <span class="keywordflow">case</span> 'ItalicAngle':
|
||
<a name="l01348"></a>01348 <span class="keywordflow">case</span> 'IsFixedPitch':
|
||
<a name="l01349"></a>01349 <span class="keywordflow">case</span> 'CharacterSet':
|
||
<a name="l01350"></a>01350 <span class="keywordflow">case</span> 'UnderlinePosition':
|
||
<a name="l01351"></a>01351 <span class="keywordflow">case</span> 'UnderlineThickness':
|
||
<a name="l01352"></a>01352 <span class="keywordflow">case</span> 'Version':
|
||
<a name="l01353"></a>01353 <span class="keywordflow">case</span> 'EncodingScheme':
|
||
<a name="l01354"></a>01354 <span class="keywordflow">case</span> 'CapHeight':
|
||
<a name="l01355"></a>01355 <span class="keywordflow">case</span> 'XHeight':
|
||
<a name="l01356"></a>01356 <span class="keywordflow">case</span> 'Ascender':
|
||
<a name="l01357"></a>01357 <span class="keywordflow">case</span> 'Descender':
|
||
<a name="l01358"></a>01358 <span class="keywordflow">case</span> 'StdHW':
|
||
<a name="l01359"></a>01359 <span class="keywordflow">case</span> 'StdVW':
|
||
<a name="l01360"></a>01360 <span class="keywordflow">case</span> 'StartCharMetrics':
|
||
<a name="l01361"></a>01361 <a class="code" href="readme_8php.html#a4">$data</a>[$key]=trim(substr($row,$pos));
|
||
<a name="l01362"></a>01362 <span class="keywordflow">break</span>;
|
||
<a name="l01363"></a>01363 <span class="keywordflow">case</span> 'FontBBox':
|
||
<a name="l01364"></a>01364 <a class="code" href="readme_8php.html#a4">$data</a>[$key]=explode(<span class="charliteral">' '</span>,trim(substr($row,$pos)));
|
||
<a name="l01365"></a>01365 <span class="keywordflow">break</span>;
|
||
<a name="l01366"></a>01366 <span class="keywordflow">case</span> <span class="charliteral">'C'</span>:
|
||
<a name="l01367"></a>01367 <span class="comment">//C 39 ; WX 222 ; N quoteright ; B 53 463 157 718 ;</span>
|
||
<a name="l01368"></a>01368 <a class="code" href="readme_8php.html#a7">$bits</a>=explode(<span class="charliteral">';'</span>,trim($row));
|
||
<a name="l01369"></a>01369 $dtmp=array();
|
||
<a name="l01370"></a>01370 foreach($bits as $bit){
|
||
<a name="l01371"></a>01371 $bits2 = explode(<span class="charliteral">' '</span>,trim($bit));
|
||
<a name="l01372"></a>01372 <span class="keywordflow">if</span> (strlen($bits2[0])){
|
||
<a name="l01373"></a>01373 <span class="keywordflow">if</span> (count($bits2)>2){
|
||
<a name="l01374"></a>01374 $dtmp[$bits2[0]]=array();
|
||
<a name="l01375"></a>01375 <span class="keywordflow">for</span> ($i=1;$i<count($bits2);$i++){
|
||
<a name="l01376"></a>01376 $dtmp[$bits2[0]][]=$bits2[<a class="code" href="balance_8php.html#a12">$i</a>];
|
||
<a name="l01377"></a>01377 }
|
||
<a name="l01378"></a>01378 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (count($bits2)==2){
|
||
<a name="l01379"></a>01379 $dtmp[$bits2[0]]=$bits2[1];
|
||
<a name="l01380"></a>01380 }
|
||
<a name="l01381"></a>01381 }
|
||
<a name="l01382"></a>01382 }
|
||
<a name="l01383"></a>01383 <span class="keywordflow">if</span> ($dtmp[<span class="charliteral">'C'</span>]>=0){
|
||
<a name="l01384"></a>01384 <a class="code" href="readme_8php.html#a4">$data</a>[<span class="charliteral">'C'</span>][$dtmp[<span class="charliteral">'C'</span>]]=$dtmp;
|
||
<a name="l01385"></a>01385 <a class="code" href="readme_8php.html#a4">$data</a>[<span class="charliteral">'C'</span>][$dtmp[<span class="charliteral">'N'</span>]]=$dtmp;
|
||
<a name="l01386"></a>01386 } <span class="keywordflow">else</span> {
|
||
<a name="l01387"></a>01387 <a class="code" href="readme_8php.html#a4">$data</a>[<span class="charliteral">'C'</span>][$dtmp[<span class="charliteral">'N'</span>]]=$dtmp;
|
||
<a name="l01388"></a>01388 }
|
||
<a name="l01389"></a>01389 <span class="keywordflow">break</span>;
|
||
<a name="l01390"></a>01390 <span class="keywordflow">case</span> 'KPX':
|
||
<a name="l01391"></a>01391 <span class="comment">//KPX Adieresis yacute -40</span>
|
||
<a name="l01392"></a>01392 <a class="code" href="readme_8php.html#a7">$bits</a>=explode(<span class="charliteral">' '</span>,trim($row));
|
||
<a name="l01393"></a>01393 <a class="code" href="readme_8php.html#a4">$data</a>['KPX'][<a class="code" href="readme_8php.html#a7">$bits</a>[1]][<a class="code" href="readme_8php.html#a7">$bits</a>[2]]=$bits[3];
|
||
<a name="l01394"></a>01394 <span class="keywordflow">break</span>;
|
||
<a name="l01395"></a>01395 }
|
||
<a name="l01396"></a>01396 }
|
||
<a name="l01397"></a>01397 }
|
||
<a name="l01398"></a>01398 <a class="code" href="readme_8php.html#a4">$data</a>['_version_']=1;
|
||
<a name="l01399"></a>01399 $this->fonts[$font]=<a class="code" href="readme_8php.html#a4">$data</a>;
|
||
<a name="l01400"></a>01400 $fp = fopen($dir.'php_'.$name.'.afm<span class="charliteral">','</span>w');
|
||
<a name="l01401"></a>01401 fwrite($fp,serialize($data));
|
||
<a name="l01402"></a>01402 fclose($fp);
|
||
<a name="l01403"></a>01403 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!isset($this->fonts[$font])){
|
||
<a name="l01404"></a>01404 $this->addMessage('openFont: no font file found');
|
||
<a name="l01405"></a>01405 <span class="comment">// echo 'Font not Found '.$font;</span>
|
||
<a name="l01406"></a>01406 }
|
||
<a name="l01407"></a>01407 }
|
||
<a name="l01408"></a>01408
|
||
<a name="l01417"></a><a class="code" href="classCpdf.html#a28">01417</a> function selectFont($fontName,$encoding='',$set=1){
|
||
<a name="l01418"></a>01418 <span class="keywordflow">if</span> (!isset($this->fonts[$fontName])){
|
||
<a name="l01419"></a>01419 <span class="comment">// load the file</span>
|
||
<a name="l01420"></a>01420 $this->openFont($fontName);
|
||
<a name="l01421"></a>01421 <span class="keywordflow">if</span> (isset($this->fonts[$fontName])){
|
||
<a name="l01422"></a>01422 $this->numObj++;
|
||
<a name="l01423"></a>01423 $this->numFonts++;
|
||
<a name="l01424"></a>01424 $pos=strrpos($fontName,<span class="charliteral">'/'</span>);
|
||
<a name="l01425"></a>01425 <span class="comment">// $dir=substr($fontName,0,$pos+1);</span>
|
||
<a name="l01426"></a>01426 $name=substr($fontName,$pos+1);
|
||
<a name="l01427"></a>01427 <span class="keywordflow">if</span> (substr($<a class="code" href="action_8inc_8php.html#a4">name</a>,-4)=='.afm'){
|
||
<a name="l01428"></a>01428 $name=substr($<a class="code" href="action_8inc_8php.html#a4">name</a>,0,strlen($<a class="code" href="action_8inc_8php.html#a4">name</a>)-4);
|
||
<a name="l01429"></a>01429 }
|
||
<a name="l01430"></a>01430 $options=array('<a class="code" href="action_8inc_8php.html#a4">name</a>'=>$<a class="code" href="action_8inc_8php.html#a4">name</a>);
|
||
<a name="l01431"></a>01431 <span class="keywordflow">if</span> (is_array($encoding)){
|
||
<a name="l01432"></a>01432 <span class="comment">// then encoding and differences might be set</span>
|
||
<a name="l01433"></a>01433 <span class="keywordflow">if</span> (isset($encoding['encoding'])){
|
||
<a name="l01434"></a>01434 $options['encoding']=$encoding['encoding'];
|
||
<a name="l01435"></a>01435 }
|
||
<a name="l01436"></a>01436 <span class="keywordflow">if</span> (isset($encoding['differences'])){
|
||
<a name="l01437"></a>01437 $options['differences']=$encoding['differences'];
|
||
<a name="l01438"></a>01438 }
|
||
<a name="l01439"></a>01439 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (strlen($encoding)){
|
||
<a name="l01440"></a>01440 <span class="comment">// then perhaps only the encoding has been set</span>
|
||
<a name="l01441"></a>01441 $options['encoding']=$encoding;
|
||
<a name="l01442"></a>01442 }
|
||
<a name="l01443"></a>01443 $fontObj = $this->numObj;
|
||
<a name="l01444"></a>01444 $this->o_font($this->numObj,'<span class="keyword">new</span>',$options);
|
||
<a name="l01445"></a>01445 $this->fonts[$fontName]['fontNum']=$this->numFonts;
|
||
<a name="l01446"></a>01446 <span class="comment">// if this is a '.afm' font, and there is a '.pfa' file to go with it ( as there</span>
|
||
<a name="l01447"></a>01447 <span class="comment">// should be for all non-basic fonts), then load it into an object and put the</span>
|
||
<a name="l01448"></a>01448 <span class="comment">// references into the font object</span>
|
||
<a name="l01449"></a>01449 $basefile = substr($fontName,0,strlen($fontName)-4);
|
||
<a name="l01450"></a>01450 <span class="keywordflow">if</span> (file_exists($basefile.'.pfb')){
|
||
<a name="l01451"></a>01451 $fbtype = 'pfb';
|
||
<a name="l01452"></a>01452 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (file_exists($basefile.'.ttf')){
|
||
<a name="l01453"></a>01453 $fbtype = 'ttf';
|
||
<a name="l01454"></a>01454 } <span class="keywordflow">else</span> {
|
||
<a name="l01455"></a>01455 $fbtype='';
|
||
<a name="l01456"></a>01456 }
|
||
<a name="l01457"></a>01457 $fbfile = $basefile.<span class="charliteral">'.'</span>.$fbtype;
|
||
<a name="l01458"></a>01458
|
||
<a name="l01459"></a>01459 <span class="comment">// $pfbfile = substr($fontName,0,strlen($fontName)-4).'.pfb';</span>
|
||
<a name="l01460"></a>01460 <span class="comment">// $ttffile = substr($fontName,0,strlen($fontName)-4).'.ttf';</span>
|
||
<a name="l01461"></a>01461 $this->addMessage('selectFont: checking <span class="keywordflow">for</span> - '.$fbfile);
|
||
<a name="l01462"></a>01462 <span class="keywordflow">if</span> (substr($fontName,-4)=='.afm' && strlen($fbtype) ){
|
||
<a name="l01463"></a>01463 $adobeFontName = $this->fonts[$fontName]['FontName'];
|
||
<a name="l01464"></a>01464 <span class="comment">// $fontObj = $this->numObj;</span>
|
||
<a name="l01465"></a>01465 $this->addMessage('selectFont: adding font file - '.$fbfile.' - '.$adobeFontName);
|
||
<a name="l01466"></a>01466 <span class="comment">// find the array of fond widths, and put that into an object.</span>
|
||
<a name="l01467"></a>01467 $firstChar = -1;
|
||
<a name="l01468"></a>01468 $lastChar = 0;
|
||
<a name="l01469"></a>01469 $widths = array();
|
||
<a name="l01470"></a>01470 foreach ($this->fonts[$fontName][<span class="charliteral">'C'</span>] as $num=>$d){
|
||
<a name="l01471"></a>01471 <span class="keywordflow">if</span> (intval($num)>0 || $num==<span class="charliteral">'0'</span>){
|
||
<a name="l01472"></a>01472 <span class="keywordflow">if</span> ($lastChar>0 && $num>$lastChar+1){
|
||
<a name="l01473"></a>01473 <span class="keywordflow">for</span>(<a class="code" href="balance_8php.html#a12">$i</a>=$lastChar+1;<a class="code" href="balance_8php.html#a12">$i</a><<a class="code" href="jrn__add_8php.html#a17">$num</a>;<a class="code" href="balance_8php.html#a12">$i</a>++){
|
||
<a name="l01474"></a>01474 $widths[] = 0;
|
||
<a name="l01475"></a>01475 }
|
||
<a name="l01476"></a>01476 }
|
||
<a name="l01477"></a>01477 $widths[] = <a class="code" href="impress__jrn_8php.html#a1">$d</a>['WX'];
|
||
<a name="l01478"></a>01478 <span class="keywordflow">if</span> ($firstChar==-1){
|
||
<a name="l01479"></a>01479 $firstChar = <a class="code" href="jrn__add_8php.html#a17">$num</a>;
|
||
<a name="l01480"></a>01480 }
|
||
<a name="l01481"></a>01481 $lastChar = <a class="code" href="jrn__add_8php.html#a17">$num</a>;
|
||
<a name="l01482"></a>01482 }
|
||
<a name="l01483"></a>01483 }
|
||
<a name="l01484"></a>01484 <span class="comment">// also need to adjust the widths for the differences array</span>
|
||
<a name="l01485"></a>01485 <span class="keywordflow">if</span> (isset($options['differences'])){
|
||
<a name="l01486"></a>01486 foreach($options['differences'] as $charNum=>$charName){
|
||
<a name="l01487"></a>01487 <span class="keywordflow">if</span> ($charNum>$lastChar){
|
||
<a name="l01488"></a>01488 <span class="keywordflow">for</span>(<a class="code" href="balance_8php.html#a12">$i</a>=$lastChar+1;<a class="code" href="balance_8php.html#a12">$i</a><=$charNum;<a class="code" href="balance_8php.html#a12">$i</a>++){
|
||
<a name="l01489"></a>01489 $widths[]=0;
|
||
<a name="l01490"></a>01490 }
|
||
<a name="l01491"></a>01491 $lastChar=$charNum;
|
||
<a name="l01492"></a>01492 }
|
||
<a name="l01493"></a>01493 <span class="keywordflow">if</span> (isset($this->fonts[$fontName][<span class="charliteral">'C'</span>][$charName])){
|
||
<a name="l01494"></a>01494 $widths[$charNum-$firstChar]=$this->fonts[$fontName][<span class="charliteral">'C'</span>][$charName]['WX'];
|
||
<a name="l01495"></a>01495 }
|
||
<a name="l01496"></a>01496 }
|
||
<a name="l01497"></a>01497 }
|
||
<a name="l01498"></a>01498 $this->addMessage('selectFont: FirstChar='.$firstChar);
|
||
<a name="l01499"></a>01499 $this->addMessage('selectFont: LastChar='.$lastChar);
|
||
<a name="l01500"></a>01500 $this->numObj++;
|
||
<a name="l01501"></a>01501 $this->o_contents($this->numObj,'<span class="keyword">new</span><span class="charliteral">','</span>raw');
|
||
<a name="l01502"></a>01502 $this->objects[$this->numObj][<span class="charliteral">'c'</span>].=<span class="charliteral">'['</span>;
|
||
<a name="l01503"></a>01503 foreach($widths as $<a class="code" href="tva_8inc_8php.html#a17">width</a>){
|
||
<a name="l01504"></a>01504 $this->objects[$this->numObj][<span class="charliteral">'c'</span>].=<span class="charliteral">' '</span>.$width;
|
||
<a name="l01505"></a>01505 }
|
||
<a name="l01506"></a>01506 $this->objects[$this->numObj][<span class="charliteral">'c'</span>].=' ]';
|
||
<a name="l01507"></a>01507 $widthid = $this->numObj;
|
||
<a name="l01508"></a>01508
|
||
<a name="l01509"></a>01509 <span class="comment">// load the pfb file, and put that into an object too.</span>
|
||
<a name="l01510"></a>01510 <span class="comment">// note that pdf supports only binary format type 1 font files, though there is a </span>
|
||
<a name="l01511"></a>01511 <span class="comment">// simple utility to convert them from pfa to pfb.</span>
|
||
<a name="l01512"></a>01512 $fp = fopen($fbfile,'rb');
|
||
<a name="l01513"></a>01513 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a> = get_magic_quotes_runtime();
|
||
<a name="l01514"></a>01514 set_magic_quotes_runtime(0);
|
||
<a name="l01515"></a>01515 <a class="code" href="readme_8php.html#a4">$data</a> = fread($fp,filesize($fbfile));
|
||
<a name="l01516"></a>01516 set_magic_quotes_runtime($tmp);
|
||
<a name="l01517"></a>01517 fclose($fp);
|
||
<a name="l01518"></a>01518
|
||
<a name="l01519"></a>01519 <span class="comment">// create the font descriptor</span>
|
||
<a name="l01520"></a>01520 $this->numObj++;
|
||
<a name="l01521"></a>01521 $fontDescriptorId = $this->numObj;
|
||
<a name="l01522"></a>01522 $this->numObj++;
|
||
<a name="l01523"></a>01523 $pfbid = $this->numObj;
|
||
<a name="l01524"></a>01524 <span class="comment">// determine flags (more than a little flakey, hopefully will not matter much)</span>
|
||
<a name="l01525"></a>01525 $flags=0;
|
||
<a name="l01526"></a>01526 <span class="keywordflow">if</span> ($this->fonts[$fontName]['ItalicAngle']!=0){ $flags+=pow(2,6); }
|
||
<a name="l01527"></a>01527 <span class="keywordflow">if</span> ($this->fonts[$fontName]['IsFixedPitch']=='<span class="keyword">true</span>'){ $flags+=1; }
|
||
<a name="l01528"></a>01528 $flags+=pow(2,5); <span class="comment">// assume non-sybolic</span>
|
||
<a name="l01529"></a>01529
|
||
<a name="l01530"></a>01530 <a class="code" href="fiche__new_8php.html#a7">$list</a> = array('Ascent'=>'Ascender<span class="charliteral">','</span>CapHeight'=>'CapHeight<span class="charliteral">','</span>Descent'=>'Descender<span class="charliteral">','</span>FontBBox'=>'FontBBox<span class="charliteral">','</span>ItalicAngle'=>'ItalicAngle');
|
||
<a name="l01531"></a>01531 $fdopt = array(
|
||
<a name="l01532"></a>01532 'Flags'=>$flags
|
||
<a name="l01533"></a>01533 ,'FontName'=>$adobeFontName
|
||
<a name="l01534"></a>01534 ,'StemV'=>100 <span class="comment">// don't know what the value for this should be!</span>
|
||
<a name="l01535"></a>01535 );
|
||
<a name="l01536"></a>01536 foreach($list as $k=>$v){
|
||
<a name="l01537"></a>01537 <span class="keywordflow">if</span> (isset($this->fonts[$fontName][$v])){
|
||
<a name="l01538"></a>01538 $fdopt[$k]=$this->fonts[$fontName][$v];
|
||
<a name="l01539"></a>01539 }
|
||
<a name="l01540"></a>01540 }
|
||
<a name="l01541"></a>01541
|
||
<a name="l01542"></a>01542 <span class="keywordflow">if</span> ($fbtype=='pfb'){
|
||
<a name="l01543"></a>01543 $fdopt['FontFile']=$pfbid;
|
||
<a name="l01544"></a>01544 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ($fbtype=='ttf'){
|
||
<a name="l01545"></a>01545 $fdopt['FontFile2']=$pfbid;
|
||
<a name="l01546"></a>01546 }
|
||
<a name="l01547"></a>01547 $this->o_fontDescriptor($fontDescriptorId,'<span class="keyword">new</span>',$fdopt);
|
||
<a name="l01548"></a>01548
|
||
<a name="l01549"></a>01549 <span class="comment">// embed the font program</span>
|
||
<a name="l01550"></a>01550 $this->o_contents($this->numObj,'<span class="keyword">new</span>');
|
||
<a name="l01551"></a>01551 $this->objects[$pfbid][<span class="charliteral">'c'</span>].=<a class="code" href="readme_8php.html#a4">$data</a>;
|
||
<a name="l01552"></a>01552 <span class="comment">// determine the cruicial lengths within this file</span>
|
||
<a name="l01553"></a>01553 <span class="keywordflow">if</span> ($fbtype=='pfb'){
|
||
<a name="l01554"></a>01554 $l1 = strpos($data,'eexec')+6;
|
||
<a name="l01555"></a>01555 $l2 = strpos($data,'00000000')-$l1;
|
||
<a name="l01556"></a>01556 $l3 = strlen($data)-$l2-$l1;
|
||
<a name="l01557"></a>01557 $this->o_contents($this->numObj,'add',array('Length1'=>$l1,'Length2'=>$l2,'Length3'=>$l3));
|
||
<a name="l01558"></a>01558 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ($fbtype=='ttf'){
|
||
<a name="l01559"></a>01559 $l1 = strlen($data);
|
||
<a name="l01560"></a>01560 $this->o_contents($this->numObj,'add',array('Length1'=>$l1));
|
||
<a name="l01561"></a>01561 }
|
||
<a name="l01562"></a>01562
|
||
<a name="l01563"></a>01563
|
||
<a name="l01564"></a>01564 <span class="comment">// tell the font object about all this new stuff</span>
|
||
<a name="l01565"></a>01565 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a> = array('BaseFont'=>$adobeFontName,'Widths'=>$widthid
|
||
<a name="l01566"></a>01566 ,'FirstChar'=>$firstChar,'LastChar'=>$lastChar
|
||
<a name="l01567"></a>01567 ,'FontDescriptor'=>$fontDescriptorId);
|
||
<a name="l01568"></a>01568 <span class="keywordflow">if</span> ($fbtype=='ttf'){
|
||
<a name="l01569"></a>01569 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a>['SubType']='TrueType';
|
||
<a name="l01570"></a>01570 }
|
||
<a name="l01571"></a>01571 $this->addMessage('adding <a class="code" href="action_8inc_8php.html#a8">extra</a> info to font.('.$fontObj.<span class="charliteral">')'</span>);
|
||
<a name="l01572"></a>01572 foreach($tmp as $fk=>$fv){
|
||
<a name="l01573"></a>01573 $this->addMessage($fk.<span class="stringliteral">" : "</span>.$fv);
|
||
<a name="l01574"></a>01574 }
|
||
<a name="l01575"></a>01575 $this->o_font($fontObj,'add',$tmp);
|
||
<a name="l01576"></a>01576
|
||
<a name="l01577"></a>01577 } <span class="keywordflow">else</span> {
|
||
<a name="l01578"></a>01578 $this->addMessage('selectFont: pfb or ttf file not found, ok <span class="keywordflow">if</span> <span class="keyword">this</span> is one of the 14 standard fonts');
|
||
<a name="l01579"></a>01579 }
|
||
<a name="l01580"></a>01580
|
||
<a name="l01581"></a>01581
|
||
<a name="l01582"></a>01582 <span class="comment">// also set the differences here, note that this means that these will take effect only the </span>
|
||
<a name="l01583"></a>01583 <span class="comment">//first time that a font is selected, else they are ignored</span>
|
||
<a name="l01584"></a>01584 <span class="keywordflow">if</span> (isset($options['differences'])){
|
||
<a name="l01585"></a>01585 $this->fonts[$fontName]['differences']=$options['differences'];
|
||
<a name="l01586"></a>01586 }
|
||
<a name="l01587"></a>01587 }
|
||
<a name="l01588"></a>01588 }
|
||
<a name="l01589"></a>01589 <span class="keywordflow">if</span> ($set && isset($this->fonts[$fontName])){
|
||
<a name="l01590"></a>01590 <span class="comment">// so if for some reason the font was not set in the last one then it will not be selected</span>
|
||
<a name="l01591"></a>01591 $this->currentBaseFont=$fontName;
|
||
<a name="l01592"></a>01592 <span class="comment">// the next line means that if a new font is selected, then the current text state will be</span>
|
||
<a name="l01593"></a>01593 <span class="comment">// applied to it as well.</span>
|
||
<a name="l01594"></a>01594 $this->setCurrentFont();
|
||
<a name="l01595"></a>01595 }
|
||
<a name="l01596"></a>01596 <span class="keywordflow">return</span> $this->currentFontNum;
|
||
<a name="l01597"></a>01597 }
|
||
<a name="l01598"></a>01598
|
||
<a name="l01611"></a><a class="code" href="classCpdf.html#a29">01611</a> function setCurrentFont(){
|
||
<a name="l01612"></a>01612 <span class="keywordflow">if</span> (strlen($this->currentBaseFont)==0){
|
||
<a name="l01613"></a>01613 <span class="comment">// then assume an initial font</span>
|
||
<a name="l01614"></a>01614 $this->selectFont('./fonts/Helvetica.afm');
|
||
<a name="l01615"></a>01615 }
|
||
<a name="l01616"></a>01616 $cf = substr($this->currentBaseFont,strrpos($this->currentBaseFont,<span class="charliteral">'/'</span>)+1);
|
||
<a name="l01617"></a>01617 <span class="keywordflow">if</span> (strlen($this->currentTextState)
|
||
<a name="l01618"></a>01618 && isset($this->fontFamilies[$cf])
|
||
<a name="l01619"></a>01619 && isset($this->fontFamilies[$cf][$this->currentTextState])){
|
||
<a name="l01620"></a>01620 <span class="comment">// then we are in some state or another</span>
|
||
<a name="l01621"></a>01621 <span class="comment">// and this font has a family, and the current setting exists within it</span>
|
||
<a name="l01622"></a>01622 <span class="comment">// select the font, then return it</span>
|
||
<a name="l01623"></a>01623 $nf = substr($this->currentBaseFont,0,strrpos($this->currentBaseFont,<span class="charliteral">'/'</span>)+1).$this->fontFamilies[$cf][$this->currentTextState];
|
||
<a name="l01624"></a>01624 $this->selectFont($nf,'',0);
|
||
<a name="l01625"></a>01625 $this->currentFont = $nf;
|
||
<a name="l01626"></a>01626 $this->currentFontNum = $this->fonts[$nf]['fontNum'];
|
||
<a name="l01627"></a>01627 } <span class="keywordflow">else</span> {
|
||
<a name="l01628"></a>01628 <span class="comment">// the this font must not have the right family member for the current state</span>
|
||
<a name="l01629"></a>01629 <span class="comment">// simply assume the base font</span>
|
||
<a name="l01630"></a>01630 $this->currentFont = $this->currentBaseFont;
|
||
<a name="l01631"></a>01631 $this->currentFontNum = $this->fonts[$this->currentFont]['fontNum'];
|
||
<a name="l01632"></a>01632 }
|
||
<a name="l01633"></a>01633 }
|
||
<a name="l01634"></a>01634
|
||
<a name="l01639"></a><a class="code" href="classCpdf.html#a30">01639</a> function getFirstPageId(){
|
||
<a name="l01640"></a>01640 <span class="keywordflow">return</span> $this->firstPageId;
|
||
<a name="l01641"></a>01641 }
|
||
<a name="l01642"></a>01642
|
||
<a name="l01648"></a><a class="code" href="classCpdf.html#a31">01648</a> function addContent($content){
|
||
<a name="l01649"></a>01649 $this->objects[$this->currentContents][<span class="charliteral">'c'</span>].=$content;
|
||
<a name="l01650"></a>01650 }
|
||
<a name="l01651"></a>01651
|
||
<a name="l01655"></a><a class="code" href="classCpdf.html#a32">01655</a> function setColor($r,$g,$b,$force=0){
|
||
<a name="l01656"></a>01656 <span class="keywordflow">if</span> ($r>=0 && ($force || $r!=$this->currentColour[<span class="charliteral">'r'</span>] || $g!=$this->currentColour[<span class="charliteral">'g'</span>] || $b!=$this->currentColour[<span class="charliteral">'b'</span>])){
|
||
<a name="l01657"></a>01657 $this->objects[$this->currentContents][<span class="charliteral">'c'</span>].=<span class="stringliteral">"\n"</span>.sprintf('%.3f',$r).<span class="charliteral">' '</span>.sprintf('%.3f',$g).<span class="charliteral">' '</span>.sprintf('%.3f',$b).' rg';
|
||
<a name="l01658"></a>01658 $this->currentColour=array(<span class="charliteral">'r'</span>=>$r,<span class="charliteral">'g'</span>=>$g,<span class="charliteral">'b'</span>=>$b);
|
||
<a name="l01659"></a>01659 }
|
||
<a name="l01660"></a>01660 }
|
||
<a name="l01661"></a>01661
|
||
<a name="l01665"></a><a class="code" href="classCpdf.html#a33">01665</a> function setStrokeColor($r,$g,$b,$force=0){
|
||
<a name="l01666"></a>01666 <span class="keywordflow">if</span> ($r>=0 && ($force || $r!=$this->currentStrokeColour[<span class="charliteral">'r'</span>] || $g!=$this->currentStrokeColour[<span class="charliteral">'g'</span>] || $b!=$this->currentStrokeColour[<span class="charliteral">'b'</span>])){
|
||
<a name="l01667"></a>01667 $this->objects[$this->currentContents][<span class="charliteral">'c'</span>].=<span class="stringliteral">"\n"</span>.sprintf('%.3f',$r).<span class="charliteral">' '</span>.sprintf('%.3f',$g).<span class="charliteral">' '</span>.sprintf('%.3f',$b).' RG';
|
||
<a name="l01668"></a>01668 $this->currentStrokeColour=array(<span class="charliteral">'r'</span>=>$r,<span class="charliteral">'g'</span>=>$g,<span class="charliteral">'b'</span>=>$b);
|
||
<a name="l01669"></a>01669 }
|
||
<a name="l01670"></a>01670 }
|
||
<a name="l01671"></a>01671
|
||
<a name="l01675"></a><a class="code" href="classCpdf.html#a34">01675</a> function line($x1,$y1,$x2,$y2){
|
||
<a name="l01676"></a>01676 $this->objects[$this->currentContents][<span class="charliteral">'c'</span>].=<span class="stringliteral">"\n"</span>.sprintf('%.3f',$x1).<span class="charliteral">' '</span>.sprintf('%.3f',$y1).' m '.sprintf('%.3f',$x2).<span class="charliteral">' '</span>.sprintf('%.3f',$y2).' l S';
|
||
<a name="l01677"></a>01677 }
|
||
<a name="l01678"></a>01678
|
||
<a name="l01682"></a><a class="code" href="classCpdf.html#a35">01682</a> function curve($x0,$y0,$x1,$y1,$x2,$y2,$x3,$y3){
|
||
<a name="l01683"></a>01683 <span class="comment">// in the current line style, draw a bezier curve from (x0,y0) to (x3,y3) using the other two points</span>
|
||
<a name="l01684"></a>01684 <span class="comment">// as the control points for the curve.</span>
|
||
<a name="l01685"></a>01685 $this->objects[$this->currentContents][<span class="charliteral">'c'</span>].=<span class="stringliteral">"\n"</span>.sprintf('%.3f',$x0).<span class="charliteral">' '</span>.sprintf('%.3f',$y0).' m '.sprintf('%.3f',$x1).<span class="charliteral">' '</span>.sprintf('%.3f',$y1);
|
||
<a name="l01686"></a>01686 $this->objects[$this->currentContents][<span class="charliteral">'c'</span>].= <span class="charliteral">' '</span>.sprintf('%.3f',$x2).<span class="charliteral">' '</span>.sprintf('%.3f',$y2).<span class="charliteral">' '</span>.sprintf('%.3f',$x3).<span class="charliteral">' '</span>.sprintf('%.3f',$y3).' c S';
|
||
<a name="l01687"></a>01687 }
|
||
<a name="l01688"></a>01688
|
||
<a name="l01692"></a><a class="code" href="classCpdf.html#a36">01692</a> function partEllipse($x0,$y0,$astart,$afinish,$r1,$r2=0,$angle=0,$nSeg=8){
|
||
<a name="l01693"></a>01693 $this->ellipse($x0,$y0,$r1,$r2,$angle,$nSeg,$astart,$afinish,0);
|
||
<a name="l01694"></a>01694 }
|
||
<a name="l01695"></a>01695
|
||
<a name="l01699"></a><a class="code" href="classCpdf.html#a37">01699</a> function filledEllipse($x0,$y0,$r1,$r2=0,$angle=0,$nSeg=8,$astart=0,$afinish=360){
|
||
<a name="l01700"></a>01700 <span class="keywordflow">return</span> $this->ellipse($x0,$y0,$r1,$r2=0,$angle,$nSeg,$astart,$afinish,1,1);
|
||
<a name="l01701"></a>01701 }
|
||
<a name="l01702"></a>01702
|
||
<a name="l01713"></a><a class="code" href="classCpdf.html#a38">01713</a> function ellipse($x0,$y0,$r1,$r2=0,$angle=0,$nSeg=8,$astart=0,$afinish=360,$close=1,$fill=0){
|
||
<a name="l01714"></a>01714 <span class="keywordflow">if</span> ($r1==0){
|
||
<a name="l01715"></a>01715 <span class="keywordflow">return</span>;
|
||
<a name="l01716"></a>01716 }
|
||
<a name="l01717"></a>01717 <span class="keywordflow">if</span> ($r2==0){
|
||
<a name="l01718"></a>01718 $r2=$r1;
|
||
<a name="l01719"></a>01719 }
|
||
<a name="l01720"></a>01720 <span class="keywordflow">if</span> ($nSeg<2){
|
||
<a name="l01721"></a>01721 $nSeg=2;
|
||
<a name="l01722"></a>01722 }
|
||
<a name="l01723"></a>01723
|
||
<a name="l01724"></a>01724 $astart = deg2rad((<span class="keywordtype">float</span>)$astart);
|
||
<a name="l01725"></a>01725 $afinish = deg2rad((<span class="keywordtype">float</span>)$afinish);
|
||
<a name="l01726"></a>01726 $totalAngle =$afinish-$astart;
|
||
<a name="l01727"></a>01727
|
||
<a name="l01728"></a>01728 $dt = $totalAngle/$nSeg;
|
||
<a name="l01729"></a>01729 $dtm = $dt/3;
|
||
<a name="l01730"></a>01730
|
||
<a name="l01731"></a>01731 <span class="keywordflow">if</span> ($angle != 0){
|
||
<a name="l01732"></a>01732 <a class="code" href="action_8inc_8php.html#a16">$a</a> = -1*deg2rad((<span class="keywordtype">float</span>)$angle);
|
||
<a name="l01733"></a>01733 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a> = <span class="stringliteral">"\n q "</span>;
|
||
<a name="l01734"></a>01734 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a> .= sprintf('%.3f',cos($a)).<span class="charliteral">' '</span>.sprintf('%.3f',(-1.0*sin($a))).<span class="charliteral">' '</span>.sprintf('%.3f',sin($a)).<span class="charliteral">' '</span>.sprintf('%.3f',cos($a)).<span class="charliteral">' '</span>;
|
||
<a name="l01735"></a>01735 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a> .= sprintf('%.3f',$x0).<span class="charliteral">' '</span>.sprintf('%.3f',$y0).' cm';
|
||
<a name="l01736"></a>01736 $this->objects[$this->currentContents][<span class="charliteral">'c'</span>].= <a class="code" href="show__document__modele_8php.html#a5">$tmp</a>;
|
||
<a name="l01737"></a>01737 $x0=0;
|
||
<a name="l01738"></a>01738 $y0=0;
|
||
<a name="l01739"></a>01739 }
|
||
<a name="l01740"></a>01740
|
||
<a name="l01741"></a>01741 $t1 = $astart;
|
||
<a name="l01742"></a>01742 $a0 = $x0+$r1*cos($t1);
|
||
<a name="l01743"></a>01743 $b0 = $y0+$r2*sin($t1);
|
||
<a name="l01744"></a>01744 $c0 = -$r1*sin($t1);
|
||
<a name="l01745"></a>01745 $d0 = $r2*cos($t1);
|
||
<a name="l01746"></a>01746
|
||
<a name="l01747"></a>01747 $this->objects[$this->currentContents][<span class="charliteral">'c'</span>].=<span class="stringliteral">"\n"</span>.sprintf('%.3f',$a0).<span class="charliteral">' '</span>.sprintf('%.3f',$b0).' m ';
|
||
<a name="l01748"></a>01748 <span class="keywordflow">for</span> ($i=1;$i<=$nSeg;$i++){
|
||
<a name="l01749"></a>01749 <span class="comment">// draw this bit of the total curve</span>
|
||
<a name="l01750"></a>01750 $t1 = <a class="code" href="balance_8php.html#a12">$i</a>*$dt+$astart;
|
||
<a name="l01751"></a>01751 $a1 = $x0+$r1*cos($t1);
|
||
<a name="l01752"></a>01752 $b1 = $y0+$r2*sin($t1);
|
||
<a name="l01753"></a>01753 <a class="code" href="poste__search_8php.html#a2">$c1</a> = -$r1*sin($t1);
|
||
<a name="l01754"></a>01754 $d1 = $r2*cos($t1);
|
||
<a name="l01755"></a>01755 $this->objects[$this->currentContents][<span class="charliteral">'c'</span>].=<span class="stringliteral">"\n"</span>.sprintf('%.3f',($a0+$c0*$dtm)).<span class="charliteral">' '</span>.sprintf('%.3f',($b0+$d0*$dtm));
|
||
<a name="l01756"></a>01756 $this->objects[$this->currentContents][<span class="charliteral">'c'</span>].= <span class="charliteral">' '</span>.sprintf('%.3f',($a1-$c1*$dtm)).<span class="charliteral">' '</span>.sprintf('%.3f',($b1-$d1*$dtm)).<span class="charliteral">' '</span>.sprintf('%.3f',$a1).<span class="charliteral">' '</span>.sprintf('%.3f',$b1).' c';
|
||
<a name="l01757"></a>01757 $a0=$a1;
|
||
<a name="l01758"></a>01758 $b0=$b1;
|
||
<a name="l01759"></a>01759 $c0=<a class="code" href="poste__search_8php.html#a2">$c1</a>;
|
||
<a name="l01760"></a>01760 $d0=$d1;
|
||
<a name="l01761"></a>01761 }
|
||
<a name="l01762"></a>01762 <span class="keywordflow">if</span> ($fill){
|
||
<a name="l01763"></a>01763 $this->objects[$this->currentContents][<span class="charliteral">'c'</span>].=' f';
|
||
<a name="l01764"></a>01764 } <span class="keywordflow">else</span> {
|
||
<a name="l01765"></a>01765 <span class="keywordflow">if</span> ($close){
|
||
<a name="l01766"></a>01766 $this->objects[$this->currentContents][<span class="charliteral">'c'</span>].=' s'; <span class="comment">// small 's' signifies closing the path as well</span>
|
||
<a name="l01767"></a>01767 } <span class="keywordflow">else</span> {
|
||
<a name="l01768"></a>01768 $this->objects[$this->currentContents][<span class="charliteral">'c'</span>].=' S';
|
||
<a name="l01769"></a>01769 }
|
||
<a name="l01770"></a>01770 }
|
||
<a name="l01771"></a>01771 <span class="keywordflow">if</span> ($angle !=0){
|
||
<a name="l01772"></a>01772 $this->objects[$this->currentContents][<span class="charliteral">'c'</span>].=' Q';
|
||
<a name="l01773"></a>01773 }
|
||
<a name="l01774"></a>01774 }
|
||
<a name="l01775"></a>01775
|
||
<a name="l01789"></a><a class="code" href="classCpdf.html#a39">01789</a> function setLineStyle($<a class="code" href="tva_8inc_8php.html#a17">width</a>=1,$cap='',$join='',$dash='',$phase=0){
|
||
<a name="l01790"></a>01790
|
||
<a name="l01791"></a>01791 <span class="comment">// this is quite inefficient in that it sets all the parameters whenever 1 is changed, but will fix another day</span>
|
||
<a name="l01792"></a>01792 $string = '';
|
||
<a name="l01793"></a>01793 <span class="keywordflow">if</span> ($<a class="code" href="tva_8inc_8php.html#a17">width</a>>0){
|
||
<a name="l01794"></a>01794 $string.= $width.' w';
|
||
<a name="l01795"></a>01795 }
|
||
<a name="l01796"></a>01796 $ca = array('butt'=>0,'round'=>1,'square'=>2);
|
||
<a name="l01797"></a>01797 <span class="keywordflow">if</span> (isset($ca[$cap])){
|
||
<a name="l01798"></a>01798 $string.= <span class="charliteral">' '</span>.$ca[$cap].' J';
|
||
<a name="l01799"></a>01799 }
|
||
<a name="l01800"></a>01800 $ja = array('miter'=>0,'round'=>1,'bevel'=>2);
|
||
<a name="l01801"></a>01801 <span class="keywordflow">if</span> (isset($ja[$join])){
|
||
<a name="l01802"></a>01802 $string.= <span class="charliteral">' '</span>.$ja[$join].' j';
|
||
<a name="l01803"></a>01803 }
|
||
<a name="l01804"></a>01804 <span class="keywordflow">if</span> (is_array($dash)){
|
||
<a name="l01805"></a>01805 $string.= ' [';
|
||
<a name="l01806"></a>01806 foreach ($dash as $len){
|
||
<a name="l01807"></a>01807 $string.=<span class="charliteral">' '</span>.$len;
|
||
<a name="l01808"></a>01808 }
|
||
<a name="l01809"></a>01809 $string.= ' ] '.$phase.' d';
|
||
<a name="l01810"></a>01810 }
|
||
<a name="l01811"></a>01811 $this->currentLineStyle = $string;
|
||
<a name="l01812"></a>01812 $this->objects[$this->currentContents][<span class="charliteral">'c'</span>].=<span class="stringliteral">"\n"</span>.$string;
|
||
<a name="l01813"></a>01813 }
|
||
<a name="l01814"></a>01814
|
||
<a name="l01818"></a><a class="code" href="classCpdf.html#a40">01818</a> function polygon($p,$np,$f=0){
|
||
<a name="l01819"></a>01819 $this->objects[$this->currentContents][<span class="charliteral">'c'</span>].=<span class="stringliteral">"\n"</span>;
|
||
<a name="l01820"></a>01820 $this->objects[$this->currentContents][<span class="charliteral">'c'</span>].=sprintf('%.3f',$p[0]).<span class="charliteral">' '</span>.sprintf('%.3f',$p[1]).' m ';
|
||
<a name="l01821"></a>01821 <span class="keywordflow">for</span> ($i=2;$i<$np*2;$i=$i+2){
|
||
<a name="l01822"></a>01822 $this->objects[$this->currentContents][<span class="charliteral">'c'</span>].= sprintf('%.3f',$p[$i]).<span class="charliteral">' '</span>.sprintf('%.3f',$p[$i+1]).' l ';
|
||
<a name="l01823"></a>01823 }
|
||
<a name="l01824"></a>01824 <span class="keywordflow">if</span> ($f==1){
|
||
<a name="l01825"></a>01825 $this->objects[$this->currentContents][<span class="charliteral">'c'</span>].=' f';
|
||
<a name="l01826"></a>01826 } <span class="keywordflow">else</span> {
|
||
<a name="l01827"></a>01827 $this->objects[$this->currentContents][<span class="charliteral">'c'</span>].=' S';
|
||
<a name="l01828"></a>01828 }
|
||
<a name="l01829"></a>01829 }
|
||
<a name="l01830"></a>01830
|
||
<a name="l01835"></a><a class="code" href="classCpdf.html#a41">01835</a> function filledRectangle($x1,$y1,$<a class="code" href="tva_8inc_8php.html#a17">width</a>,$height){
|
||
<a name="l01836"></a>01836 $this->objects[$this->currentContents][<span class="charliteral">'c'</span>].=<span class="stringliteral">"\n"</span>.sprintf('%.3f',$x1).<span class="charliteral">' '</span>.sprintf('%.3f',$y1).<span class="charliteral">' '</span>.sprintf('%.3f',$<a class="code" href="tva_8inc_8php.html#a17">width</a>).<span class="charliteral">' '</span>.sprintf('%.3f',$height).' re f';
|
||
<a name="l01837"></a>01837 }
|
||
<a name="l01838"></a>01838
|
||
<a name="l01843"></a><a class="code" href="classCpdf.html#a42">01843</a> function rectangle($x1,$y1,$<a class="code" href="tva_8inc_8php.html#a17">width</a>,$height){
|
||
<a name="l01844"></a>01844 $this->objects[$this->currentContents][<span class="charliteral">'c'</span>].=<span class="stringliteral">"\n"</span>.sprintf('%.3f',$x1).<span class="charliteral">' '</span>.sprintf('%.3f',$y1).<span class="charliteral">' '</span>.sprintf('%.3f',$<a class="code" href="tva_8inc_8php.html#a17">width</a>).<span class="charliteral">' '</span>.sprintf('%.3f',$height).' re S';
|
||
<a name="l01845"></a>01845 }
|
||
<a name="l01846"></a>01846
|
||
<a name="l01851"></a><a class="code" href="classCpdf.html#a43">01851</a> function newPage($insert=0,$<span class="keywordtype">id</span>=0,$pos='after'){
|
||
<a name="l01852"></a>01852
|
||
<a name="l01853"></a>01853 <span class="comment">// if there is a state saved, then go up the stack closing them</span>
|
||
<a name="l01854"></a>01854 <span class="comment">// then on the new page, re-open them with the right setings</span>
|
||
<a name="l01855"></a>01855
|
||
<a name="l01856"></a>01856 <span class="keywordflow">if</span> ($this->nStateStack){
|
||
<a name="l01857"></a>01857 <span class="keywordflow">for</span> ($i=$this->nStateStack;$i>=1;$i--){
|
||
<a name="l01858"></a>01858 $this->restoreState($i);
|
||
<a name="l01859"></a>01859 }
|
||
<a name="l01860"></a>01860 }
|
||
<a name="l01861"></a>01861
|
||
<a name="l01862"></a>01862 $this->numObj++;
|
||
<a name="l01863"></a>01863 <span class="keywordflow">if</span> ($insert){
|
||
<a name="l01864"></a>01864 <span class="comment">// the id from the ezPdf class is the od of the contents of the page, not the page object itself</span>
|
||
<a name="l01865"></a>01865 <span class="comment">// query that object to find the parent</span>
|
||
<a name="l01866"></a>01866 $rid = $this->objects[$id]['onPage'];
|
||
<a name="l01867"></a>01867 <a class="code" href="jrn__search_8php.html#a3">$opt</a>= array('rid'=>$rid,'pos'=>$pos);
|
||
<a name="l01868"></a>01868 $this->o_page($this->numObj,'<span class="keyword">new</span>',$opt);
|
||
<a name="l01869"></a>01869 } <span class="keywordflow">else</span> {
|
||
<a name="l01870"></a>01870 $this->o_page($this->numObj,'<span class="keyword">new</span>');
|
||
<a name="l01871"></a>01871 }
|
||
<a name="l01872"></a>01872 <span class="comment">// if there is a stack saved, then put that onto the page</span>
|
||
<a name="l01873"></a>01873 <span class="keywordflow">if</span> ($this->nStateStack){
|
||
<a name="l01874"></a>01874 <span class="keywordflow">for</span> ($i=1;$i<=$this->nStateStack;$i++){
|
||
<a name="l01875"></a>01875 $this->saveState($i);
|
||
<a name="l01876"></a>01876 }
|
||
<a name="l01877"></a>01877 }
|
||
<a name="l01878"></a>01878 <span class="comment">// and if there has been a stroke or fill colour set, then transfer them</span>
|
||
<a name="l01879"></a>01879 <span class="keywordflow">if</span> ($this->currentColour[<span class="charliteral">'r'</span>]>=0){
|
||
<a name="l01880"></a>01880 $this->setColor($this->currentColour[<span class="charliteral">'r'</span>],$this->currentColour[<span class="charliteral">'g'</span>],$this->currentColour[<span class="charliteral">'b'</span>],1);
|
||
<a name="l01881"></a>01881 }
|
||
<a name="l01882"></a>01882 <span class="keywordflow">if</span> ($this->currentStrokeColour[<span class="charliteral">'r'</span>]>=0){
|
||
<a name="l01883"></a>01883 $this->setStrokeColor($this->currentStrokeColour[<span class="charliteral">'r'</span>],$this->currentStrokeColour[<span class="charliteral">'g'</span>],$this->currentStrokeColour[<span class="charliteral">'b'</span>],1);
|
||
<a name="l01884"></a>01884 }
|
||
<a name="l01885"></a>01885
|
||
<a name="l01886"></a>01886 <span class="comment">// if there is a line style set, then put this in too</span>
|
||
<a name="l01887"></a>01887 <span class="keywordflow">if</span> (strlen($this->currentLineStyle)){
|
||
<a name="l01888"></a>01888 $this->objects[$this->currentContents][<span class="charliteral">'c'</span>].=<span class="stringliteral">"\n"</span>.$this->currentLineStyle;
|
||
<a name="l01889"></a>01889 }
|
||
<a name="l01890"></a>01890
|
||
<a name="l01891"></a>01891 <span class="comment">// the call to the o_page object set currentContents to the present page, so this can be returned as the page id</span>
|
||
<a name="l01892"></a>01892 <span class="keywordflow">return</span> $this->currentContents;
|
||
<a name="l01893"></a>01893 }
|
||
<a name="l01894"></a>01894
|
||
<a name="l01899"></a><a class="code" href="classCpdf.html#a44">01899</a> function stream($options=''){
|
||
<a name="l01900"></a>01900 <span class="comment">// setting the options allows the adjustment of the headers</span>
|
||
<a name="l01901"></a>01901 <span class="comment">// values at the moment are:</span>
|
||
<a name="l01902"></a>01902 <span class="comment">// 'Content-Disposition'=>'filename' - sets the filename, though not too sure how well this will </span>
|
||
<a name="l01903"></a>01903 <span class="comment">// work as in my trial the browser seems to use the filename of the php file with .pdf on the end</span>
|
||
<a name="l01904"></a>01904 <span class="comment">// 'Accept-Ranges'=>1 or 0 - if this is not set to 1, then this header is not included, off by default</span>
|
||
<a name="l01905"></a>01905 <span class="comment">// this header seems to have caused some problems despite tha fact that it is supposed to solve</span>
|
||
<a name="l01906"></a>01906 <span class="comment">// them, so I am leaving it off by default.</span>
|
||
<a name="l01907"></a>01907 <span class="comment">// 'compress'=> 1 or 0 - apply content stream compression, this is on (1) by default</span>
|
||
<a name="l01908"></a>01908 <span class="keywordflow">if</span> (!is_array($options)){
|
||
<a name="l01909"></a>01909 $options=array();
|
||
<a name="l01910"></a>01910 }
|
||
<a name="l01911"></a>01911 <span class="keywordflow">if</span> ( isset($options['compress']) && $options['compress']==0){
|
||
<a name="l01912"></a>01912 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a> = $this->output(1);
|
||
<a name="l01913"></a>01913 } <span class="keywordflow">else</span> {
|
||
<a name="l01914"></a>01914 <a class="code" href="show__document__modele_8php.html#a5">$tmp</a> = $this->output();
|
||
<a name="l01915"></a>01915 }
|
||
<a name="l01916"></a>01916 header(<span class="stringliteral">"Content-type: application/pdf"</span>);
|
||
<a name="l01917"></a>01917 header(<span class="stringliteral">"Content-Length: "</span>.strlen(ltrim($tmp)));
|
||
<a name="l01918"></a>01918 $fileName = (isset($options['Content-Disposition'])?$options['Content-Disposition']:'file.pdf');
|
||
<a name="l01919"></a>01919 header(<span class="stringliteral">"Content-Disposition: inline; filename="</span>.$fileName);
|
||
<a name="l01920"></a>01920 <span class="keywordflow">if</span> (isset($options['Accept-Ranges']) && $options['Accept-Ranges']==1){
|
||
<a name="l01921"></a>01921 header(<span class="stringliteral">"Accept-Ranges: "</span>.strlen(ltrim($tmp)));
|
||
<a name="l01922"></a>01922 }
|
||
<a name="l01923"></a>01923 echo ltrim($tmp);
|
||
<a name="l01924"></a>01924 }
|
||
<a name="l01925"></a>01925
|
||
<a name="l01929"></a><a class="code" href="classCpdf.html#a45">01929</a> function getFontHeight($<a class="code" href="tva_8inc_8php.html#a15">size</a>){
|
||
<a name="l01930"></a>01930 <span class="keywordflow">if</span> (!$this->numFonts){
|
||
<a name="l01931"></a>01931 $this->selectFont('./fonts/Helvetica');
|
||
<a name="l01932"></a>01932 }
|
||
<a name="l01933"></a>01933 <span class="comment">// for the current font, and the given size, what is the height of the font in user units</span>
|
||
<a name="l01934"></a>01934 <a class="code" href="poste_8inc_8php.html#a8">$h</a> = $this->fonts[$this->currentFont]['FontBBox'][3]-$this->fonts[$this->currentFont]['FontBBox'][1];
|
||
<a name="l01935"></a>01935 <span class="keywordflow">return</span> <a class="code" href="readme_8php.html#a8">$size</a>*<a class="code" href="poste_8inc_8php.html#a8">$h</a>/1000;
|
||
<a name="l01936"></a>01936 }
|
||
<a name="l01937"></a>01937
|
||
<a name="l01943"></a><a class="code" href="classCpdf.html#a46">01943</a> function getFontDecender($<a class="code" href="tva_8inc_8php.html#a15">size</a>){
|
||
<a name="l01944"></a>01944 <span class="comment">// note that this will most likely return a negative value</span>
|
||
<a name="l01945"></a>01945 <span class="keywordflow">if</span> (!$this->numFonts){
|
||
<a name="l01946"></a>01946 $this->selectFont('./fonts/Helvetica');
|
||
<a name="l01947"></a>01947 }
|
||
<a name="l01948"></a>01948 <a class="code" href="poste_8inc_8php.html#a8">$h</a> = $this->fonts[$this->currentFont]['FontBBox'][1];
|
||
<a name="l01949"></a>01949 <span class="keywordflow">return</span> <a class="code" href="readme_8php.html#a8">$size</a>*<a class="code" href="poste_8inc_8php.html#a8">$h</a>/1000;
|
||
<a name="l01950"></a>01950 }
|
||
<a name="l01951"></a>01951
|
||
<a name="l01958"></a><a class="code" href="classCpdf.html#a47">01958</a> function filterText($text){
|
||
<a name="l01959"></a>01959 $text = str_replace(<span class="charliteral">'\\'</span>,'\\\\',$text);
|
||
<a name="l01960"></a>01960 $text = str_replace(<span class="charliteral">'('</span>,<span class="charliteral">'\('</span>,$text);
|
||
<a name="l01961"></a>01961 $text = str_replace(<span class="charliteral">')'</span>,<span class="charliteral">'\)'</span>,$text);
|
||
<a name="l01962"></a>01962 $text = str_replace('&lt;<span class="charliteral">','</span><',$text);
|
||
<a name="l01963"></a>01963 $text = str_replace('&gt;<span class="charliteral">','</span>>',$text);
|
||
<a name="l01964"></a>01964 $text = str_replace('&#039;<span class="charliteral">','</span>\'',$text);
|
||
<a name="l01965"></a>01965 $text = str_replace('&quot;<span class="charliteral">','</span><span class="stringliteral">"',$text);</span>
|
||
<a name="l01966"></a>01966 <span class="stringliteral"> $text = str_replace('&amp;','&',$text);</span>
|
||
<a name="l01967"></a>01967 <span class="stringliteral"></span>
|
||
<a name="l01968"></a>01968 <span class="stringliteral"> return $text;</span>
|
||
<a name="l01969"></a>01969 <span class="stringliteral">}</span>
|
||
<a name="l01970"></a>01970 <span class="stringliteral"></span>
|
||
<a name="l01977"></a><a class="code" href="classCpdf.html#a48">01977</a> <span class="stringliteral">function PRVTgetTextPosition($x,$y,$angle,$size,$wa,$text){</span>
|
||
<a name="l01978"></a>01978 <span class="stringliteral"> // given this information return an array containing x and y for the end position as elements 0 and 1</span>
|
||
<a name="l01979"></a>01979 <span class="stringliteral"> $w = $this->getTextWidth($size,$text);</span>
|
||
<a name="l01980"></a>01980 <span class="stringliteral"> // need to adjust for the number of spaces in this text</span>
|
||
<a name="l01981"></a>01981 <span class="stringliteral"> $words = explode(' ',$text);</span>
|
||
<a name="l01982"></a>01982 <span class="stringliteral"> $nspaces=count($words)-1;</span>
|
||
<a name="l01983"></a>01983 <span class="stringliteral"> $w += $wa*$nspaces;</span>
|
||
<a name="l01984"></a>01984 <span class="stringliteral"> $a = deg2rad((float)$angle);</span>
|
||
<a name="l01985"></a>01985 <span class="stringliteral"> return array(cos($a)*$w+$x,-sin($a)*$w+$y);</span>
|
||
<a name="l01986"></a>01986 <span class="stringliteral">}</span>
|
||
<a name="l01987"></a>01987 <span class="stringliteral"></span>
|
||
<a name="l01993"></a><a class="code" href="classCpdf.html#a49">01993</a> <span class="stringliteral">function PRVTcheckTextDirective(&$text,$i,&$f){</span>
|
||
<a name="l01994"></a>01994 <span class="stringliteral"> $x=0;</span>
|
||
<a name="l01995"></a>01995 <span class="stringliteral"> $y=0;</span>
|
||
<a name="l01996"></a>01996 <span class="stringliteral"> return $this->PRVTcheckTextDirective1($text,$i,$f,0,$x,$y);</span>
|
||
<a name="l01997"></a>01997 <span class="stringliteral">}</span>
|
||
<a name="l01998"></a>01998 <span class="stringliteral"></span>
|
||
<a name="l02008"></a><a class="code" href="classCpdf.html#a50">02008</a> <span class="stringliteral">function PRVTcheckTextDirective1(&$text,$i,&$f,$final,&$x,&$y,$size=0,$angle=0,$wordSpaceAdjust=0){</span>
|
||
<a name="l02009"></a>02009 <span class="stringliteral"> $directive = 0;</span>
|
||
<a name="l02010"></a>02010 <span class="stringliteral"> $j=$i;</span>
|
||
<a name="l02011"></a>02011 <span class="stringliteral"> if ($text[$j]=='<'){</span>
|
||
<a name="l02012"></a>02012 <span class="stringliteral"> $j++;</span>
|
||
<a name="l02013"></a>02013 <span class="stringliteral"> switch($text[$j]){</span>
|
||
<a name="l02014"></a>02014 <span class="stringliteral"> case '/':</span>
|
||
<a name="l02015"></a>02015 <span class="stringliteral"> $j++;</span>
|
||
<a name="l02016"></a>02016 <span class="stringliteral"> if (strlen($text) <= $j){</span>
|
||
<a name="l02017"></a>02017 <span class="stringliteral"> return $directive;</span>
|
||
<a name="l02018"></a>02018 <span class="stringliteral"> }</span>
|
||
<a name="l02019"></a>02019 <span class="stringliteral"> switch($text[$j]){</span>
|
||
<a name="l02020"></a>02020 <span class="stringliteral"> case 'b':</span>
|
||
<a name="l02021"></a>02021 <span class="stringliteral"> case 'i':</span>
|
||
<a name="l02022"></a>02022 <span class="stringliteral"> $j++;</span>
|
||
<a name="l02023"></a>02023 <span class="stringliteral"> if ($text[$j]=='>'){</span>
|
||
<a name="l02024"></a>02024 <span class="stringliteral"> $p = strrpos($this->currentTextState,$text[$j-1]);</span>
|
||
<a name="l02025"></a>02025 <span class="stringliteral"> if ($p !== false){</span>
|
||
<a name="l02026"></a>02026 <span class="stringliteral"> // then there is one to remove</span>
|
||
<a name="l02027"></a>02027 <span class="stringliteral"> $this->currentTextState = substr($this->currentTextState,0,$p).substr($this->currentTextState,$p+1);</span>
|
||
<a name="l02028"></a>02028 <span class="stringliteral"> }</span>
|
||
<a name="l02029"></a>02029 <span class="stringliteral"> $directive=$j-$i+1;</span>
|
||
<a name="l02030"></a>02030 <span class="stringliteral"> }</span>
|
||
<a name="l02031"></a>02031 <span class="stringliteral"> break;</span>
|
||
<a name="l02032"></a>02032 <span class="stringliteral"> case 'c':</span>
|
||
<a name="l02033"></a>02033 <span class="stringliteral"> // this this might be a callback function</span>
|
||
<a name="l02034"></a>02034 <span class="stringliteral"> $j++;</span>
|
||
<a name="l02035"></a>02035 <span class="stringliteral"> $k = strpos($text,'>',$j);</span>
|
||
<a name="l02036"></a>02036 <span class="stringliteral"> if ($k!==false && $text[$j]==':'){</span>
|
||
<a name="l02037"></a>02037 <span class="stringliteral"> // then this will be treated as a callback directive</span>
|
||
<a name="l02038"></a>02038 <span class="stringliteral"> $directive = $k-$i+1;</span>
|
||
<a name="l02039"></a>02039 <span class="stringliteral"> $f=0;</span>
|
||
<a name="l02040"></a>02040 <span class="stringliteral"> // split the remainder on colons to get the function name and the paramater</span>
|
||
<a name="l02041"></a>02041 <span class="stringliteral"> $tmp = substr($text,$j+1,$k-$j-1);</span>
|
||
<a name="l02042"></a>02042 <span class="stringliteral"> $b1 = strpos($tmp,':');</span>
|
||
<a name="l02043"></a>02043 <span class="stringliteral"> if ($b1!==false){</span>
|
||
<a name="l02044"></a>02044 <span class="stringliteral"> $func = substr($tmp,0,$b1);</span>
|
||
<a name="l02045"></a>02045 <span class="stringliteral"> $parm = substr($tmp,$b1+1);</span>
|
||
<a name="l02046"></a>02046 <span class="stringliteral"> } else {</span>
|
||
<a name="l02047"></a>02047 <span class="stringliteral"> $func=$tmp;</span>
|
||
<a name="l02048"></a>02048 <span class="stringliteral"> $parm='';</span>
|
||
<a name="l02049"></a>02049 <span class="stringliteral"> }</span>
|
||
<a name="l02050"></a>02050 <span class="stringliteral"> if (!isset($func) || !strlen(trim($func))){</span>
|
||
<a name="l02051"></a>02051 <span class="stringliteral"> $directive=0;</span>
|
||
<a name="l02052"></a>02052 <span class="stringliteral"> } else {</span>
|
||
<a name="l02053"></a>02053 <span class="stringliteral"> // only call the function if this is the final call</span>
|
||
<a name="l02054"></a>02054 <span class="stringliteral"> if ($final){</span>
|
||
<a name="l02055"></a>02055 <span class="stringliteral"> // need to assess the text position, calculate the text width to this point</span>
|
||
<a name="l02056"></a>02056 <span class="stringliteral"> // can use getTextWidth to find the text width I think</span>
|
||
<a name="l02057"></a>02057 <span class="stringliteral"> $tmp = $this->PRVTgetTextPosition($x,$y,$angle,$size,$wordSpaceAdjust,substr($text,0,$i));</span>
|
||
<a name="l02058"></a>02058 <span class="stringliteral"> $info = array('x'=>$tmp[0],'y'=>$tmp[1],'angle'=>$angle,'status'=>'end','p'=>$parm,'nCallback'=>$this->nCallback);</span>
|
||
<a name="l02059"></a>02059 <span class="stringliteral"> $x=$tmp[0];</span>
|
||
<a name="l02060"></a>02060 <span class="stringliteral"> $y=$tmp[1];</span>
|
||
<a name="l02061"></a>02061 <span class="stringliteral"> $ret = $this->$func($info);</span>
|
||
<a name="l02062"></a>02062 <span class="stringliteral"> if (is_array($ret)){</span>
|
||
<a name="l02063"></a>02063 <span class="stringliteral"> // then the return from the callback function could set the position, to start with, later will do font colour, and font</span>
|
||
<a name="l02064"></a>02064 <span class="stringliteral"> foreach($ret as $rk=>$rv){</span>
|
||
<a name="l02065"></a>02065 <span class="stringliteral"> switch($rk){</span>
|
||
<a name="l02066"></a>02066 <span class="stringliteral"> case 'x':</span>
|
||
<a name="l02067"></a>02067 <span class="stringliteral"> case 'y':</span>
|
||
<a name="l02068"></a>02068 <span class="stringliteral"> $$rk=$rv;</span>
|
||
<a name="l02069"></a>02069 <span class="stringliteral"> break;</span>
|
||
<a name="l02070"></a>02070 <span class="stringliteral"> }</span>
|
||
<a name="l02071"></a>02071 <span class="stringliteral"> }</span>
|
||
<a name="l02072"></a>02072 <span class="stringliteral"> }</span>
|
||
<a name="l02073"></a>02073 <span class="stringliteral"> // also remove from to the stack</span>
|
||
<a name="l02074"></a>02074 <span class="stringliteral"> // for simplicity, just take from the end, fix this another day</span>
|
||
<a name="l02075"></a>02075 <span class="stringliteral"> $this->nCallback--;</span>
|
||
<a name="l02076"></a>02076 <span class="stringliteral"> if ($this->nCallback<0){</span>
|
||
<a name="l02077"></a>02077 <span class="stringliteral"> $this->nCallBack=0;</span>
|
||
<a name="l02078"></a>02078 <span class="stringliteral"> }</span>
|
||
<a name="l02079"></a>02079 <span class="stringliteral"> }</span>
|
||
<a name="l02080"></a>02080 <span class="stringliteral"> }</span>
|
||
<a name="l02081"></a>02081 <span class="stringliteral"> }</span>
|
||
<a name="l02082"></a>02082 <span class="stringliteral"> break;</span>
|
||
<a name="l02083"></a>02083 <span class="stringliteral"> }</span>
|
||
<a name="l02084"></a>02084 <span class="stringliteral"> break;</span>
|
||
<a name="l02085"></a>02085 <span class="stringliteral"> case 'b':</span>
|
||
<a name="l02086"></a>02086 <span class="stringliteral"> case 'i':</span>
|
||
<a name="l02087"></a>02087 <span class="stringliteral"> $j++;</span>
|
||
<a name="l02088"></a>02088 <span class="stringliteral"> if ($text[$j]=='>'){</span>
|
||
<a name="l02089"></a>02089 <span class="stringliteral"> $this->currentTextState.=$text[$j-1];</span>
|
||
<a name="l02090"></a>02090 <span class="stringliteral"> $directive=$j-$i+1;</span>
|
||
<a name="l02091"></a>02091 <span class="stringliteral"> }</span>
|
||
<a name="l02092"></a>02092 <span class="stringliteral"> break;</span>
|
||
<a name="l02093"></a>02093 <span class="stringliteral"> case 'C':</span>
|
||
<a name="l02094"></a>02094 <span class="stringliteral"> $noClose=1;</span>
|
||
<a name="l02095"></a>02095 <span class="stringliteral"> case 'c':</span>
|
||
<a name="l02096"></a>02096 <span class="stringliteral"> // this this might be a callback function</span>
|
||
<a name="l02097"></a>02097 <span class="stringliteral"> $j++;</span>
|
||
<a name="l02098"></a>02098 <span class="stringliteral"> $k = strpos($text,'>',$j);</span>
|
||
<a name="l02099"></a>02099 <span class="stringliteral"> if ($k!==false && $text[$j]==':'){</span>
|
||
<a name="l02100"></a>02100 <span class="stringliteral"> // then this will be treated as a callback directive</span>
|
||
<a name="l02101"></a>02101 <span class="stringliteral"> $directive = $k-$i+1;</span>
|
||
<a name="l02102"></a>02102 <span class="stringliteral"> $f=0;</span>
|
||
<a name="l02103"></a>02103 <span class="stringliteral"> // split the remainder on colons to get the function name and the paramater</span>
|
||
<a name="l02104"></a>02104 <span class="stringliteral">// $bits = explode(':',substr($text,$j+1,$k-$j-1));</span>
|
||
<a name="l02105"></a>02105 <span class="stringliteral"> $tmp = substr($text,$j+1,$k-$j-1);</span>
|
||
<a name="l02106"></a>02106 <span class="stringliteral"> $b1 = strpos($tmp,':');</span>
|
||
<a name="l02107"></a>02107 <span class="stringliteral"> if ($b1!==false){</span>
|
||
<a name="l02108"></a>02108 <span class="stringliteral"> $func = substr($tmp,0,$b1);</span>
|
||
<a name="l02109"></a>02109 <span class="stringliteral"> $parm = substr($tmp,$b1+1);</span>
|
||
<a name="l02110"></a>02110 <span class="stringliteral"> } else {</span>
|
||
<a name="l02111"></a>02111 <span class="stringliteral"> $func=$tmp;</span>
|
||
<a name="l02112"></a>02112 <span class="stringliteral"> $parm='';</span>
|
||
<a name="l02113"></a>02113 <span class="stringliteral"> }</span>
|
||
<a name="l02114"></a>02114 <span class="stringliteral"> if (!isset($func) || !strlen(trim($func))){</span>
|
||
<a name="l02115"></a>02115 <span class="stringliteral"> $directive=0;</span>
|
||
<a name="l02116"></a>02116 <span class="stringliteral"> } else {</span>
|
||
<a name="l02117"></a>02117 <span class="stringliteral"> // only call the function if this is the final call, ie, the one actually doing printing, not measurement</span>
|
||
<a name="l02118"></a>02118 <span class="stringliteral"> if ($final){</span>
|
||
<a name="l02119"></a>02119 <span class="stringliteral"> // need to assess the text position, calculate the text width to this point</span>
|
||
<a name="l02120"></a>02120 <span class="stringliteral"> // can use getTextWidth to find the text width I think</span>
|
||
<a name="l02121"></a>02121 <span class="stringliteral"> // also add the text height and decender</span>
|
||
<a name="l02122"></a>02122 <span class="stringliteral"> $tmp = $this->PRVTgetTextPosition($x,$y,$angle,$size,$wordSpaceAdjust,substr($text,0,$i));</span>
|
||
<a name="l02123"></a>02123 <span class="stringliteral"> $info = array('x'=>$tmp[0],'y'=>$tmp[1],'angle'=>$angle,'status'=>'start','p'=>$parm,'f'=>$func,'height'=>$this->getFontHeight($size),'decender'=>$this->getFontDecender($size));</span>
|
||
<a name="l02124"></a>02124 <span class="stringliteral"> $x=$tmp[0];</span>
|
||
<a name="l02125"></a>02125 <span class="stringliteral"> $y=$tmp[1];</span>
|
||
<a name="l02126"></a>02126 <span class="stringliteral"> if (!isset($noClose) || !$noClose){</span>
|
||
<a name="l02127"></a>02127 <span class="stringliteral"> // only add to the stack if this is a small 'c', therefore is a start-stop pair</span>
|
||
<a name="l02128"></a>02128 <span class="stringliteral"> $this->nCallback++;</span>
|
||
<a name="l02129"></a>02129 <span class="stringliteral"> $info['nCallback']=$this->nCallback;</span>
|
||
<a name="l02130"></a>02130 <span class="stringliteral"> $this->callback[$this->nCallback]=$info;</span>
|
||
<a name="l02131"></a>02131 <span class="stringliteral"> }</span>
|
||
<a name="l02132"></a>02132 <span class="stringliteral"> $ret = $this->$func($info);</span>
|
||
<a name="l02133"></a>02133 <span class="stringliteral"> if (is_array($ret)){</span>
|
||
<a name="l02134"></a>02134 <span class="stringliteral"> // then the return from the callback function could set the position, to start with, later will do font colour, and font</span>
|
||
<a name="l02135"></a>02135 <span class="stringliteral"> foreach($ret as $rk=>$rv){</span>
|
||
<a name="l02136"></a>02136 <span class="stringliteral"> switch($rk){</span>
|
||
<a name="l02137"></a>02137 <span class="stringliteral"> case 'x':</span>
|
||
<a name="l02138"></a>02138 <span class="stringliteral"> case 'y':</span>
|
||
<a name="l02139"></a>02139 <span class="stringliteral"> $$rk=$rv;</span>
|
||
<a name="l02140"></a>02140 <span class="stringliteral"> break;</span>
|
||
<a name="l02141"></a>02141 <span class="stringliteral"> }</span>
|
||
<a name="l02142"></a>02142 <span class="stringliteral"> }</span>
|
||
<a name="l02143"></a>02143 <span class="stringliteral"> }</span>
|
||
<a name="l02144"></a>02144 <span class="stringliteral"> }</span>
|
||
<a name="l02145"></a>02145 <span class="stringliteral"> }</span>
|
||
<a name="l02146"></a>02146 <span class="stringliteral"> }</span>
|
||
<a name="l02147"></a>02147 <span class="stringliteral"> break;</span>
|
||
<a name="l02148"></a>02148 <span class="stringliteral"> }</span>
|
||
<a name="l02149"></a>02149 <span class="stringliteral"> } </span>
|
||
<a name="l02150"></a>02150 <span class="stringliteral"> return $directive;</span>
|
||
<a name="l02151"></a>02151 <span class="stringliteral">}</span>
|
||
<a name="l02152"></a>02152 <span class="stringliteral"></span>
|
||
<a name="l02156"></a><a class="code" href="classCpdf.html#a51">02156</a> <span class="stringliteral">function addText($x,$y,$size,$text,$angle=0,$wordSpaceAdjust=0){</span>
|
||
<a name="l02157"></a>02157 <span class="stringliteral"> if (!$this->numFonts){$this->selectFont('./fonts/Helvetica');}</span>
|
||
<a name="l02158"></a>02158 <span class="stringliteral"></span>
|
||
<a name="l02159"></a>02159 <span class="stringliteral"> // if there are any open callbacks, then they should be called, to show the start of the line</span>
|
||
<a name="l02160"></a>02160 <span class="stringliteral"> if ($this->nCallback>0){</span>
|
||
<a name="l02161"></a>02161 <span class="stringliteral"> for ($i=$this->nCallback;$i>0;$i--){</span>
|
||
<a name="l02162"></a>02162 <span class="stringliteral"> // call each function</span>
|
||
<a name="l02163"></a>02163 <span class="stringliteral"> $info = array('x'=>$x,'y'=>$y,'angle'=>$angle,'status'=>'sol','p'=>$this->callback[$i]['p'],'nCallback'=>$this->callback[$i]['nCallback'],'height'=>$this->callback[$i]['height'],'decender'=>$this->callback[$i]['decender']);</span>
|
||
<a name="l02164"></a>02164 <span class="stringliteral"> $func = $this->callback[$i]['f'];</span>
|
||
<a name="l02165"></a>02165 <span class="stringliteral"> $this->$func($info);</span>
|
||
<a name="l02166"></a>02166 <span class="stringliteral"> }</span>
|
||
<a name="l02167"></a>02167 <span class="stringliteral"> }</span>
|
||
<a name="l02168"></a>02168 <span class="stringliteral"> if ($angle==0){</span>
|
||
<a name="l02169"></a>02169 <span class="stringliteral"> $this->objects[$this->currentContents]['c'].="</span>\n<span class="stringliteral">".'BT '.sprintf('%.3f',$x).' '.sprintf('%.3f',$y).' Td';</span>
|
||
<a name="l02170"></a>02170 <span class="stringliteral"> } else {</span>
|
||
<a name="l02171"></a>02171 <span class="stringliteral"> $a = deg2rad((float)$angle);</span>
|
||
<a name="l02172"></a>02172 <span class="stringliteral"> $tmp = "</span>\n<span class="stringliteral">".'BT ';</span>
|
||
<a name="l02173"></a>02173 <span class="stringliteral"> $tmp .= sprintf('%.3f',cos($a)).' '.sprintf('%.3f',(-1.0*sin($a))).' '.sprintf('%.3f',sin($a)).' '.sprintf('%.3f',cos($a)).' ';</span>
|
||
<a name="l02174"></a>02174 <span class="stringliteral"> $tmp .= sprintf('%.3f',$x).' '.sprintf('%.3f',$y).' Tm';</span>
|
||
<a name="l02175"></a>02175 <span class="stringliteral"> $this->objects[$this->currentContents]['c'] .= $tmp;</span>
|
||
<a name="l02176"></a>02176 <span class="stringliteral"> }</span>
|
||
<a name="l02177"></a>02177 <span class="stringliteral"> if ($wordSpaceAdjust!=0 || $wordSpaceAdjust != $this->wordSpaceAdjust){</span>
|
||
<a name="l02178"></a>02178 <span class="stringliteral"> $this->wordSpaceAdjust=$wordSpaceAdjust;</span>
|
||
<a name="l02179"></a>02179 <span class="stringliteral"> $this->objects[$this->currentContents]['c'].=' '.sprintf('%.3f',$wordSpaceAdjust).' Tw';</span>
|
||
<a name="l02180"></a>02180 <span class="stringliteral"> }</span>
|
||
<a name="l02181"></a>02181 <span class="stringliteral"> $len=strlen($text);</span>
|
||
<a name="l02182"></a>02182 <span class="stringliteral"> $start=0;</span>
|
||
<a name="l02183"></a>02183 <span class="stringliteral"> for ($i=0;$i<$len;$i++){</span>
|
||
<a name="l02184"></a>02184 <span class="stringliteral"> $f=1;</span>
|
||
<a name="l02185"></a>02185 <span class="stringliteral"> $directive = $this->PRVTcheckTextDirective($text,$i,$f);</span>
|
||
<a name="l02186"></a>02186 <span class="stringliteral"> if ($directive){</span>
|
||
<a name="l02187"></a>02187 <span class="stringliteral"> // then we should write what we need to</span>
|
||
<a name="l02188"></a>02188 <span class="stringliteral"> if ($i>$start){</span>
|
||
<a name="l02189"></a>02189 <span class="stringliteral"> $part = substr($text,$start,$i-$start);</span>
|
||
<a name="l02190"></a>02190 <span class="stringliteral"> $this->objects[$this->currentContents]['c'].=' /F'.$this->currentFontNum.' '.sprintf('%.1f',$size).' Tf ';</span>
|
||
<a name="l02191"></a>02191 <span class="stringliteral"> $this->objects[$this->currentContents]['c'].=' ('.$this->filterText($part).') Tj';</span>
|
||
<a name="l02192"></a>02192 <span class="stringliteral"> }</span>
|
||
<a name="l02193"></a>02193 <span class="stringliteral"> if ($f){</span>
|
||
<a name="l02194"></a>02194 <span class="stringliteral"> // then there was nothing drastic done here, restore the contents</span>
|
||
<a name="l02195"></a>02195 <span class="stringliteral"> $this->setCurrentFont();</span>
|
||
<a name="l02196"></a>02196 <span class="stringliteral"> } else {</span>
|
||
<a name="l02197"></a>02197 <span class="stringliteral"> $this->objects[$this->currentContents]['c'] .= ' ET';</span>
|
||
<a name="l02198"></a>02198 <span class="stringliteral"> $f=1;</span>
|
||
<a name="l02199"></a>02199 <span class="stringliteral"> $xp=$x;</span>
|
||
<a name="l02200"></a>02200 <span class="stringliteral"> $yp=$y;</span>
|
||
<a name="l02201"></a>02201 <span class="stringliteral"> $directive = $this->PRVTcheckTextDirective1($text,$i,$f,1,$xp,$yp,$size,$angle,$wordSpaceAdjust);</span>
|
||
<a name="l02202"></a>02202 <span class="stringliteral"> </span>
|
||
<a name="l02203"></a>02203 <span class="stringliteral"> // restart the text object</span>
|
||
<a name="l02204"></a>02204 <span class="stringliteral"> if ($angle==0){</span>
|
||
<a name="l02205"></a>02205 <span class="stringliteral"> $this->objects[$this->currentContents]['c'].="</span>\n<span class="stringliteral">".'BT '.sprintf('%.3f',$xp).' '.sprintf('%.3f',$yp).' Td';</span>
|
||
<a name="l02206"></a>02206 <span class="stringliteral"> } else {</span>
|
||
<a name="l02207"></a>02207 <span class="stringliteral"> $a = deg2rad((float)$angle);</span>
|
||
<a name="l02208"></a>02208 <span class="stringliteral"> $tmp = "</span>\n<span class="stringliteral">".'BT ';</span>
|
||
<a name="l02209"></a>02209 <span class="stringliteral"> $tmp .= sprintf('%.3f',cos($a)).' '.sprintf('%.3f',(-1.0*sin($a))).' '.sprintf('%.3f',sin($a)).' '.sprintf('%.3f',cos($a)).' ';</span>
|
||
<a name="l02210"></a>02210 <span class="stringliteral"> $tmp .= sprintf('%.3f',$xp).' '.sprintf('%.3f',$yp).' Tm';</span>
|
||
<a name="l02211"></a>02211 <span class="stringliteral"> $this->objects[$this->currentContents]['c'] .= $tmp;</span>
|
||
<a name="l02212"></a>02212 <span class="stringliteral"> }</span>
|
||
<a name="l02213"></a>02213 <span class="stringliteral"> if ($wordSpaceAdjust!=0 || $wordSpaceAdjust != $this->wordSpaceAdjust){</span>
|
||
<a name="l02214"></a>02214 <span class="stringliteral"> $this->wordSpaceAdjust=$wordSpaceAdjust;</span>
|
||
<a name="l02215"></a>02215 <span class="stringliteral"> $this->objects[$this->currentContents]['c'].=' '.sprintf('%.3f',$wordSpaceAdjust).' Tw';</span>
|
||
<a name="l02216"></a>02216 <span class="stringliteral"> }</span>
|
||
<a name="l02217"></a>02217 <span class="stringliteral"> }</span>
|
||
<a name="l02218"></a>02218 <span class="stringliteral"> // and move the writing point to the next piece of text</span>
|
||
<a name="l02219"></a>02219 <span class="stringliteral"> $i=$i+$directive-1;</span>
|
||
<a name="l02220"></a>02220 <span class="stringliteral"> $start=$i+1;</span>
|
||
<a name="l02221"></a>02221 <span class="stringliteral"> }</span>
|
||
<a name="l02222"></a>02222 <span class="stringliteral"> </span>
|
||
<a name="l02223"></a>02223 <span class="stringliteral"> }</span>
|
||
<a name="l02224"></a>02224 <span class="stringliteral"> if ($start<$len){</span>
|
||
<a name="l02225"></a>02225 <span class="stringliteral"> $part = substr($text,$start);</span>
|
||
<a name="l02226"></a>02226 <span class="stringliteral"> $this->objects[$this->currentContents]['c'].=' /F'.$this->currentFontNum.' '.sprintf('%.1f',$size).' Tf ';</span>
|
||
<a name="l02227"></a>02227 <span class="stringliteral"> $this->objects[$this->currentContents]['c'].=' ('.$this->filterText($part).') Tj';</span>
|
||
<a name="l02228"></a>02228 <span class="stringliteral"> }</span>
|
||
<a name="l02229"></a>02229 <span class="stringliteral"> $this->objects[$this->currentContents]['c'].=' ET';</span>
|
||
<a name="l02230"></a>02230 <span class="stringliteral"></span>
|
||
<a name="l02231"></a>02231 <span class="stringliteral"> // if there are any open callbacks, then they should be called, to show the end of the line</span>
|
||
<a name="l02232"></a>02232 <span class="stringliteral"> if ($this->nCallback>0){</span>
|
||
<a name="l02233"></a>02233 <span class="stringliteral"> for ($i=$this->nCallback;$i>0;$i--){</span>
|
||
<a name="l02234"></a>02234 <span class="stringliteral"> // call each function</span>
|
||
<a name="l02235"></a>02235 <span class="stringliteral"> $tmp = $this->PRVTgetTextPosition($x,$y,$angle,$size,$wordSpaceAdjust,$text);</span>
|
||
<a name="l02236"></a>02236 <span class="stringliteral"> $info = array('x'=>$tmp[0],'y'=>$tmp[1],'angle'=>$angle,'status'=>'eol','p'=>$this->callback[$i]['p'],'nCallback'=>$this->callback[$i]['nCallback'],'height'=>$this->callback[$i]['height'],'decender'=>$this->callback[$i]['decender']);</span>
|
||
<a name="l02237"></a>02237 <span class="stringliteral"> $func = $this->callback[$i]['f'];</span>
|
||
<a name="l02238"></a>02238 <span class="stringliteral"> $this->$func($info);</span>
|
||
<a name="l02239"></a>02239 <span class="stringliteral"> }</span>
|
||
<a name="l02240"></a>02240 <span class="stringliteral"> }</span>
|
||
<a name="l02241"></a>02241 <span class="stringliteral"></span>
|
||
<a name="l02242"></a>02242 <span class="stringliteral">}</span>
|
||
<a name="l02243"></a>02243 <span class="stringliteral"></span>
|
||
<a name="l02248"></a><a class="code" href="classCpdf.html#a52">02248</a> <span class="stringliteral">function getTextWidth($size,$text){</span>
|
||
<a name="l02249"></a>02249 <span class="stringliteral"> // this function should not change any of the settings, though it will need to</span>
|
||
<a name="l02250"></a>02250 <span class="stringliteral"> // track any directives which change during calculation, so copy them at the start</span>
|
||
<a name="l02251"></a>02251 <span class="stringliteral"> // and put them back at the end.</span>
|
||
<a name="l02252"></a>02252 <span class="stringliteral"> $store_currentTextState = $this->currentTextState;</span>
|
||
<a name="l02253"></a>02253 <span class="stringliteral"></span>
|
||
<a name="l02254"></a>02254 <span class="stringliteral"> if (!$this->numFonts){</span>
|
||
<a name="l02255"></a>02255 <span class="stringliteral"> $this->selectFont('./fonts/Helvetica');</span>
|
||
<a name="l02256"></a>02256 <span class="stringliteral"> }</span>
|
||
<a name="l02257"></a>02257 <span class="stringliteral"></span>
|
||
<a name="l02258"></a>02258 <span class="stringliteral"> // converts a number or a float to a string so it can get the width</span>
|
||
<a name="l02259"></a>02259 <span class="stringliteral"> $text = "</span>$text<span class="stringliteral">";</span>
|
||
<a name="l02260"></a>02260 <span class="stringliteral"></span>
|
||
<a name="l02261"></a>02261 <span class="stringliteral"> // hmm, this is where it all starts to get tricky - use the font information to</span>
|
||
<a name="l02262"></a>02262 <span class="stringliteral"> // calculate the width of each character, add them up and convert to user units</span>
|
||
<a name="l02263"></a>02263 <span class="stringliteral"> $w=0;</span>
|
||
<a name="l02264"></a>02264 <span class="stringliteral"> $len=strlen($text);</span>
|
||
<a name="l02265"></a>02265 <span class="stringliteral"> $cf = $this->currentFont;</span>
|
||
<a name="l02266"></a>02266 <span class="stringliteral"> for ($i=0;$i<$len;$i++){</span>
|
||
<a name="l02267"></a>02267 <span class="stringliteral"> $f=1;</span>
|
||
<a name="l02268"></a>02268 <span class="stringliteral"> $directive = $this->PRVTcheckTextDirective($text,$i,$f);</span>
|
||
<a name="l02269"></a>02269 <span class="stringliteral"> if ($directive){</span>
|
||
<a name="l02270"></a>02270 <span class="stringliteral"> if ($f){</span>
|
||
<a name="l02271"></a>02271 <span class="stringliteral"> $this->setCurrentFont();</span>
|
||
<a name="l02272"></a>02272 <span class="stringliteral"> $cf = $this->currentFont;</span>
|
||
<a name="l02273"></a>02273 <span class="stringliteral"> }</span>
|
||
<a name="l02274"></a>02274 <span class="stringliteral"> $i=$i+$directive-1;</span>
|
||
<a name="l02275"></a>02275 <span class="stringliteral"> } else {</span>
|
||
<a name="l02276"></a>02276 <span class="stringliteral"> $char=ord($text[$i]);</span>
|
||
<a name="l02277"></a>02277 <span class="stringliteral"> if (isset($this->fonts[$cf]['differences'][$char])){</span>
|
||
<a name="l02278"></a>02278 <span class="stringliteral"> // then this character is being replaced by another</span>
|
||
<a name="l02279"></a>02279 <span class="stringliteral"> $name = $this->fonts[$cf]['differences'][$char];</span>
|
||
<a name="l02280"></a>02280 <span class="stringliteral"> if (isset($this->fonts[$cf]['C'][$name]['WX'])){</span>
|
||
<a name="l02281"></a>02281 <span class="stringliteral"> $w+=$this->fonts[$cf]['C'][$name]['WX'];</span>
|
||
<a name="l02282"></a>02282 <span class="stringliteral"> }</span>
|
||
<a name="l02283"></a>02283 <span class="stringliteral"> } else if (isset($this->fonts[$cf]['C'][$char]['WX'])){</span>
|
||
<a name="l02284"></a>02284 <span class="stringliteral"> $w+=$this->fonts[$cf]['C'][$char]['WX'];</span>
|
||
<a name="l02285"></a>02285 <span class="stringliteral"> }</span>
|
||
<a name="l02286"></a>02286 <span class="stringliteral"> }</span>
|
||
<a name="l02287"></a>02287 <span class="stringliteral"> }</span>
|
||
<a name="l02288"></a>02288 <span class="stringliteral"> </span>
|
||
<a name="l02289"></a>02289 <span class="stringliteral"> $this->currentTextState = $store_currentTextState;</span>
|
||
<a name="l02290"></a>02290 <span class="stringliteral"> $this->setCurrentFont();</span>
|
||
<a name="l02291"></a>02291 <span class="stringliteral"></span>
|
||
<a name="l02292"></a>02292 <span class="stringliteral"> return $w*$size/1000;</span>
|
||
<a name="l02293"></a>02293 <span class="stringliteral">}</span>
|
||
<a name="l02294"></a>02294 <span class="stringliteral"></span>
|
||
<a name="l02300"></a><a class="code" href="classCpdf.html#a53">02300</a> <span class="stringliteral">function PRVTadjustWrapText($text,$actual,$width,&$x,&$adjust,$justification){</span>
|
||
<a name="l02301"></a>02301 <span class="stringliteral"> switch ($justification){</span>
|
||
<a name="l02302"></a>02302 <span class="stringliteral"> case 'left':</span>
|
||
<a name="l02303"></a>02303 <span class="stringliteral"> return;</span>
|
||
<a name="l02304"></a>02304 <span class="stringliteral"> break;</span>
|
||
<a name="l02305"></a>02305 <span class="stringliteral"> case 'right':</span>
|
||
<a name="l02306"></a>02306 <span class="stringliteral"> $x+=$width-$actual;</span>
|
||
<a name="l02307"></a>02307 <span class="stringliteral"> break;</span>
|
||
<a name="l02308"></a>02308 <span class="stringliteral"> case 'center':</span>
|
||
<a name="l02309"></a>02309 <span class="stringliteral"> case 'centre':</span>
|
||
<a name="l02310"></a>02310 <span class="stringliteral"> $x+=($width-$actual)/2;</span>
|
||
<a name="l02311"></a>02311 <span class="stringliteral"> break;</span>
|
||
<a name="l02312"></a>02312 <span class="stringliteral"> case 'full':</span>
|
||
<a name="l02313"></a>02313 <span class="stringliteral"> // count the number of words</span>
|
||
<a name="l02314"></a>02314 <span class="stringliteral"> $words = explode(' ',$text);</span>
|
||
<a name="l02315"></a>02315 <span class="stringliteral"> $nspaces=count($words)-1;</span>
|
||
<a name="l02316"></a>02316 <span class="stringliteral"> if ($nspaces>0){</span>
|
||
<a name="l02317"></a>02317 <span class="stringliteral"> $adjust = ($width-$actual)/$nspaces;</span>
|
||
<a name="l02318"></a>02318 <span class="stringliteral"> } else {</span>
|
||
<a name="l02319"></a>02319 <span class="stringliteral"> $adjust=0;</span>
|
||
<a name="l02320"></a>02320 <span class="stringliteral"> }</span>
|
||
<a name="l02321"></a>02321 <span class="stringliteral"> break;</span>
|
||
<a name="l02322"></a>02322 <span class="stringliteral"> }</span>
|
||
<a name="l02323"></a>02323 <span class="stringliteral">}</span>
|
||
<a name="l02324"></a>02324 <span class="stringliteral"></span>
|
||
<a name="l02331"></a><a class="code" href="classCpdf.html#a54">02331</a> <span class="stringliteral">function addTextWrap($x,$y,$width,$size,$text,$justification='left',$angle=0,$test=0){</span>
|
||
<a name="l02332"></a>02332 <span class="stringliteral"> // this will display the text, and if it goes beyond the width $width, will backtrack to the </span>
|
||
<a name="l02333"></a>02333 <span class="stringliteral"> // previous space or hyphen, and return the remainder of the text.</span>
|
||
<a name="l02334"></a>02334 <span class="stringliteral"></span>
|
||
<a name="l02335"></a>02335 <span class="stringliteral"> // $justification can be set to 'left','right','center','centre','full'</span>
|
||
<a name="l02336"></a>02336 <span class="stringliteral"></span>
|
||
<a name="l02337"></a>02337 <span class="stringliteral"> // need to store the initial text state, as this will change during the width calculation</span>
|
||
<a name="l02338"></a>02338 <span class="stringliteral"> // but will need to be re-set before printing, so that the chars work out right</span>
|
||
<a name="l02339"></a>02339 <span class="stringliteral"> $store_currentTextState = $this->currentTextState;</span>
|
||
<a name="l02340"></a>02340 <span class="stringliteral"></span>
|
||
<a name="l02341"></a>02341 <span class="stringliteral"> if (!$this->numFonts){$this->selectFont('./fonts/Helvetica');}</span>
|
||
<a name="l02342"></a>02342 <span class="stringliteral"> if ($width<=0){</span>
|
||
<a name="l02343"></a>02343 <span class="stringliteral"> // error, pretend it printed ok, otherwise risking a loop</span>
|
||
<a name="l02344"></a>02344 <span class="stringliteral"> return '';</span>
|
||
<a name="l02345"></a>02345 <span class="stringliteral"> }</span>
|
||
<a name="l02346"></a>02346 <span class="stringliteral"> $w=0;</span>
|
||
<a name="l02347"></a>02347 <span class="stringliteral"> $break=0;</span>
|
||
<a name="l02348"></a>02348 <span class="stringliteral"> $breakWidth=0;</span>
|
||
<a name="l02349"></a>02349 <span class="stringliteral"> $len=strlen($text);</span>
|
||
<a name="l02350"></a>02350 <span class="stringliteral"> $cf = $this->currentFont;</span>
|
||
<a name="l02351"></a>02351 <span class="stringliteral"> $tw = $width/$size*1000;</span>
|
||
<a name="l02352"></a>02352 <span class="stringliteral"> for ($i=0;$i<$len;$i++){</span>
|
||
<a name="l02353"></a>02353 <span class="stringliteral"> $f=1;</span>
|
||
<a name="l02354"></a>02354 <span class="stringliteral"> $directive = $this->PRVTcheckTextDirective($text,$i,$f);</span>
|
||
<a name="l02355"></a>02355 <span class="stringliteral"> if ($directive){</span>
|
||
<a name="l02356"></a>02356 <span class="stringliteral"> if ($f){</span>
|
||
<a name="l02357"></a>02357 <span class="stringliteral"> $this->setCurrentFont();</span>
|
||
<a name="l02358"></a>02358 <span class="stringliteral"> $cf = $this->currentFont;</span>
|
||
<a name="l02359"></a>02359 <span class="stringliteral"> }</span>
|
||
<a name="l02360"></a>02360 <span class="stringliteral"> $i=$i+$directive-1;</span>
|
||
<a name="l02361"></a>02361 <span class="stringliteral"> } else {</span>
|
||
<a name="l02362"></a>02362 <span class="stringliteral"> $cOrd = ord($text[$i]);</span>
|
||
<a name="l02363"></a>02363 <span class="stringliteral"> if (isset($this->fonts[$cf]['differences'][$cOrd])){</span>
|
||
<a name="l02364"></a>02364 <span class="stringliteral"> // then this character is being replaced by another</span>
|
||
<a name="l02365"></a>02365 <span class="stringliteral"> $cOrd2 = $this->fonts[$cf]['differences'][$cOrd];</span>
|
||
<a name="l02366"></a>02366 <span class="stringliteral"> } else {</span>
|
||
<a name="l02367"></a>02367 <span class="stringliteral"> $cOrd2 = $cOrd;</span>
|
||
<a name="l02368"></a>02368 <span class="stringliteral"> }</span>
|
||
<a name="l02369"></a>02369 <span class="stringliteral"> </span>
|
||
<a name="l02370"></a>02370 <span class="stringliteral"> if (isset($this->fonts[$cf]['C'][$cOrd2]['WX'])){</span>
|
||
<a name="l02371"></a>02371 <span class="stringliteral"> $w+=$this->fonts[$cf]['C'][$cOrd2]['WX'];</span>
|
||
<a name="l02372"></a>02372 <span class="stringliteral"> }</span>
|
||
<a name="l02373"></a>02373 <span class="stringliteral"> if ($w>$tw){</span>
|
||
<a name="l02374"></a>02374 <span class="stringliteral"> // then we need to truncate this line</span>
|
||
<a name="l02375"></a>02375 <span class="stringliteral"> if ($break>0){</span>
|
||
<a name="l02376"></a>02376 <span class="stringliteral"> // then we have somewhere that we can split :)</span>
|
||
<a name="l02377"></a>02377 <span class="stringliteral"> if ($text[$break]==' '){</span>
|
||
<a name="l02378"></a>02378 <span class="stringliteral"> $tmp = substr($text,0,$break);</span>
|
||
<a name="l02379"></a>02379 <span class="stringliteral"> } else {</span>
|
||
<a name="l02380"></a>02380 <span class="stringliteral"> $tmp = substr($text,0,$break+1);</span>
|
||
<a name="l02381"></a>02381 <span class="stringliteral"> }</span>
|
||
<a name="l02382"></a>02382 <span class="stringliteral"> $adjust=0;</span>
|
||
<a name="l02383"></a>02383 <span class="stringliteral"> $this->PRVTadjustWrapText($tmp,$breakWidth,$width,$x,$adjust,$justification);</span>
|
||
<a name="l02384"></a>02384 <span class="stringliteral"></span>
|
||
<a name="l02385"></a>02385 <span class="stringliteral"> // reset the text state</span>
|
||
<a name="l02386"></a>02386 <span class="stringliteral"> $this->currentTextState = $store_currentTextState;</span>
|
||
<a name="l02387"></a>02387 <span class="stringliteral"> $this->setCurrentFont();</span>
|
||
<a name="l02388"></a>02388 <span class="stringliteral"> if (!$test){</span>
|
||
<a name="l02389"></a>02389 <span class="stringliteral"> $this->addText($x,$y,$size,$tmp,$angle,$adjust);</span>
|
||
<a name="l02390"></a>02390 <span class="stringliteral"> }</span>
|
||
<a name="l02391"></a>02391 <span class="stringliteral"> return substr($text,$break+1);</span>
|
||
<a name="l02392"></a>02392 <span class="stringliteral"> } else {</span>
|
||
<a name="l02393"></a>02393 <span class="stringliteral"> // just split before the current character</span>
|
||
<a name="l02394"></a>02394 <span class="stringliteral"> $tmp = substr($text,0,$i);</span>
|
||
<a name="l02395"></a>02395 <span class="stringliteral"> $adjust=0;</span>
|
||
<a name="l02396"></a>02396 <span class="stringliteral"> $ctmp=ord($text[$i]);</span>
|
||
<a name="l02397"></a>02397 <span class="stringliteral"> if (isset($this->fonts[$cf]['differences'][$ctmp])){</span>
|
||
<a name="l02398"></a>02398 <span class="stringliteral"> $ctmp=$this->fonts[$cf]['differences'][$ctmp];</span>
|
||
<a name="l02399"></a>02399 <span class="stringliteral"> }</span>
|
||
<a name="l02400"></a>02400 <span class="stringliteral"> $tmpw=($w-$this->fonts[$cf]['C'][$ctmp]['WX'])*$size/1000;</span>
|
||
<a name="l02401"></a>02401 <span class="stringliteral"> $this->PRVTadjustWrapText($tmp,$tmpw,$width,$x,$adjust,$justification);</span>
|
||
<a name="l02402"></a>02402 <span class="stringliteral"> // reset the text state</span>
|
||
<a name="l02403"></a>02403 <span class="stringliteral"> $this->currentTextState = $store_currentTextState;</span>
|
||
<a name="l02404"></a>02404 <span class="stringliteral"> $this->setCurrentFont();</span>
|
||
<a name="l02405"></a>02405 <span class="stringliteral"> if (!$test){</span>
|
||
<a name="l02406"></a>02406 <span class="stringliteral"> $this->addText($x,$y,$size,$tmp,$angle,$adjust);</span>
|
||
<a name="l02407"></a>02407 <span class="stringliteral"> }</span>
|
||
<a name="l02408"></a>02408 <span class="stringliteral"> return substr($text,$i);</span>
|
||
<a name="l02409"></a>02409 <span class="stringliteral"> }</span>
|
||
<a name="l02410"></a>02410 <span class="stringliteral"> }</span>
|
||
<a name="l02411"></a>02411 <span class="stringliteral"> if ($text[$i]=='-'){</span>
|
||
<a name="l02412"></a>02412 <span class="stringliteral"> $break=$i;</span>
|
||
<a name="l02413"></a>02413 <span class="stringliteral"> $breakWidth = $w*$size/1000;</span>
|
||
<a name="l02414"></a>02414 <span class="stringliteral"> }</span>
|
||
<a name="l02415"></a>02415 <span class="stringliteral"> if ($text[$i]==' '){</span>
|
||
<a name="l02416"></a>02416 <span class="stringliteral"> $break=$i;</span>
|
||
<a name="l02417"></a>02417 <span class="stringliteral"> $ctmp=ord($text[$i]);</span>
|
||
<a name="l02418"></a>02418 <span class="stringliteral"> if (isset($this->fonts[$cf]['differences'][$ctmp])){</span>
|
||
<a name="l02419"></a>02419 <span class="stringliteral"> $ctmp=$this->fonts[$cf]['differences'][$ctmp];</span>
|
||
<a name="l02420"></a>02420 <span class="stringliteral"> }</span>
|
||
<a name="l02421"></a>02421 <span class="stringliteral"> $breakWidth = ($w-$this->fonts[$cf]['C'][$ctmp]['WX'])*$size/1000;</span>
|
||
<a name="l02422"></a>02422 <span class="stringliteral"> }</span>
|
||
<a name="l02423"></a>02423 <span class="stringliteral"> }</span>
|
||
<a name="l02424"></a>02424 <span class="stringliteral"> }</span>
|
||
<a name="l02425"></a>02425 <span class="stringliteral"> // then there was no need to break this line</span>
|
||
<a name="l02426"></a>02426 <span class="stringliteral"> if ($justification=='full'){</span>
|
||
<a name="l02427"></a>02427 <span class="stringliteral"> $justification='left';</span>
|
||
<a name="l02428"></a>02428 <span class="stringliteral"> }</span>
|
||
<a name="l02429"></a>02429 <span class="stringliteral"> $adjust=0;</span>
|
||
<a name="l02430"></a>02430 <span class="stringliteral"> $tmpw=$w*$size/1000;</span>
|
||
<a name="l02431"></a>02431 <span class="stringliteral"> $this->PRVTadjustWrapText($text,$tmpw,$width,$x,$adjust,$justification);</span>
|
||
<a name="l02432"></a>02432 <span class="stringliteral"> // reset the text state</span>
|
||
<a name="l02433"></a>02433 <span class="stringliteral"> $this->currentTextState = $store_currentTextState;</span>
|
||
<a name="l02434"></a>02434 <span class="stringliteral"> $this->setCurrentFont();</span>
|
||
<a name="l02435"></a>02435 <span class="stringliteral"> if (!$test){</span>
|
||
<a name="l02436"></a>02436 <span class="stringliteral"> $this->addText($x,$y,$size,$text,$angle,$adjust,$angle);</span>
|
||
<a name="l02437"></a>02437 <span class="stringliteral"> }</span>
|
||
<a name="l02438"></a>02438 <span class="stringliteral"> return '';</span>
|
||
<a name="l02439"></a>02439 <span class="stringliteral">}</span>
|
||
<a name="l02440"></a>02440 <span class="stringliteral"></span>
|
||
<a name="l02447"></a><a class="code" href="classCpdf.html#a55">02447</a> <span class="stringliteral">function saveState($pageEnd=0){</span>
|
||
<a name="l02448"></a>02448 <span class="stringliteral"> if ($pageEnd){</span>
|
||
<a name="l02449"></a>02449 <span class="stringliteral"> // this will be called at a new page to return the state to what it was on the </span>
|
||
<a name="l02450"></a>02450 <span class="stringliteral"> // end of the previous page, before the stack was closed down</span>
|
||
<a name="l02451"></a>02451 <span class="stringliteral"> // This is to get around not being able to have open 'q' across pages</span>
|
||
<a name="l02452"></a>02452 <span class="stringliteral"> $opt = $this->stateStack[$pageEnd]; // ok to use this as stack starts numbering at 1</span>
|
||
<a name="l02453"></a>02453 <span class="stringliteral"> $this->setColor($opt['col']['r'],$opt['col']['g'],$opt['col']['b'],1);</span>
|
||
<a name="l02454"></a>02454 <span class="stringliteral"> $this->setStrokeColor($opt['str']['r'],$opt['str']['g'],$opt['str']['b'],1);</span>
|
||
<a name="l02455"></a>02455 <span class="stringliteral"> $this->objects[$this->currentContents]['c'].="</span>\n<span class="stringliteral">".$opt['lin'];</span>
|
||
<a name="l02456"></a>02456 <span class="stringliteral">// $this->currentLineStyle = $opt['lin'];</span>
|
||
<a name="l02457"></a>02457 <span class="stringliteral"> } else {</span>
|
||
<a name="l02458"></a>02458 <span class="stringliteral"> $this->nStateStack++;</span>
|
||
<a name="l02459"></a>02459 <span class="stringliteral"> $this->stateStack[$this->nStateStack]=array(</span>
|
||
<a name="l02460"></a>02460 <span class="stringliteral"> 'col'=>$this->currentColour</span>
|
||
<a name="l02461"></a>02461 <span class="stringliteral"> ,'str'=>$this->currentStrokeColour</span>
|
||
<a name="l02462"></a>02462 <span class="stringliteral"> ,'lin'=>$this->currentLineStyle</span>
|
||
<a name="l02463"></a>02463 <span class="stringliteral"> );</span>
|
||
<a name="l02464"></a>02464 <span class="stringliteral"> }</span>
|
||
<a name="l02465"></a>02465 <span class="stringliteral"> $this->objects[$this->currentContents]['c'].="</span>\nq<span class="stringliteral">";</span>
|
||
<a name="l02466"></a>02466 <span class="stringliteral">}</span>
|
||
<a name="l02467"></a>02467 <span class="stringliteral"></span>
|
||
<a name="l02471"></a><a class="code" href="classCpdf.html#a56">02471</a> <span class="stringliteral">function restoreState($pageEnd=0){</span>
|
||
<a name="l02472"></a>02472 <span class="stringliteral"> if (!$pageEnd){</span>
|
||
<a name="l02473"></a>02473 <span class="stringliteral"> $n = $this->nStateStack;</span>
|
||
<a name="l02474"></a>02474 <span class="stringliteral"> $this->currentColour = $this->stateStack[$n]['col'];</span>
|
||
<a name="l02475"></a>02475 <span class="stringliteral"> $this->currentStrokeColour = $this->stateStack[$n]['str'];</span>
|
||
<a name="l02476"></a>02476 <span class="stringliteral"> $this->objects[$this->currentContents]['c'].="</span>\n<span class="stringliteral">".$this->stateStack[$n]['lin'];</span>
|
||
<a name="l02477"></a>02477 <span class="stringliteral"> $this->currentLineStyle = $this->stateStack[$n]['lin'];</span>
|
||
<a name="l02478"></a>02478 <span class="stringliteral"> unset($this->stateStack[$n]);</span>
|
||
<a name="l02479"></a>02479 <span class="stringliteral"> $this->nStateStack--;</span>
|
||
<a name="l02480"></a>02480 <span class="stringliteral"> }</span>
|
||
<a name="l02481"></a>02481 <span class="stringliteral"> $this->objects[$this->currentContents]['c'].="</span>\nQ<span class="stringliteral">";</span>
|
||
<a name="l02482"></a>02482 <span class="stringliteral">}</span>
|
||
<a name="l02483"></a>02483 <span class="stringliteral"></span>
|
||
<a name="l02490"></a><a class="code" href="classCpdf.html#a57">02490</a> <span class="stringliteral">function openObject(){</span>
|
||
<a name="l02491"></a>02491 <span class="stringliteral"> $this->nStack++;</span>
|
||
<a name="l02492"></a>02492 <span class="stringliteral"> $this->stack[$this->nStack]=array('c'=>$this->currentContents,'p'=>$this->currentPage);</span>
|
||
<a name="l02493"></a>02493 <span class="stringliteral"> // add a new object of the content type, to hold the data flow</span>
|
||
<a name="l02494"></a>02494 <span class="stringliteral"> $this->numObj++;</span>
|
||
<a name="l02495"></a>02495 <span class="stringliteral"> $this->o_contents($this->numObj,'new');</span>
|
||
<a name="l02496"></a>02496 <span class="stringliteral"> $this->currentContents=$this->numObj;</span>
|
||
<a name="l02497"></a>02497 <span class="stringliteral"> $this->looseObjects[$this->numObj]=1;</span>
|
||
<a name="l02498"></a>02498 <span class="stringliteral"> </span>
|
||
<a name="l02499"></a>02499 <span class="stringliteral"> return $this->numObj;</span>
|
||
<a name="l02500"></a>02500 <span class="stringliteral">}</span>
|
||
<a name="l02501"></a>02501 <span class="stringliteral"></span>
|
||
<a name="l02505"></a><a class="code" href="classCpdf.html#a58">02505</a> <span class="stringliteral">function reopenObject($id){</span>
|
||
<a name="l02506"></a>02506 <span class="stringliteral"> $this->nStack++;</span>
|
||
<a name="l02507"></a>02507 <span class="stringliteral"> $this->stack[$this->nStack]=array('c'=>$this->currentContents,'p'=>$this->currentPage);</span>
|
||
<a name="l02508"></a>02508 <span class="stringliteral"> $this->currentContents=$id;</span>
|
||
<a name="l02509"></a>02509 <span class="stringliteral"> // also if this object is the primary contents for a page, then set the current page to its parent</span>
|
||
<a name="l02510"></a>02510 <span class="stringliteral"> if (isset($this->objects[$id]['onPage'])){</span>
|
||
<a name="l02511"></a>02511 <span class="stringliteral"> $this->currentPage = $this->objects[$id]['onPage'];</span>
|
||
<a name="l02512"></a>02512 <span class="stringliteral"> }</span>
|
||
<a name="l02513"></a>02513 <span class="stringliteral">}</span>
|
||
<a name="l02514"></a>02514 <span class="stringliteral"></span>
|
||
<a name="l02518"></a><a class="code" href="classCpdf.html#a59">02518</a> <span class="stringliteral">function closeObject(){</span>
|
||
<a name="l02519"></a>02519 <span class="stringliteral"> // close the object, as long as there was one open in the first place, which will be indicated by</span>
|
||
<a name="l02520"></a>02520 <span class="stringliteral"> // an objectId on the stack.</span>
|
||
<a name="l02521"></a>02521 <span class="stringliteral"> if ($this->nStack>0){</span>
|
||
<a name="l02522"></a>02522 <span class="stringliteral"> $this->currentContents=$this->stack[$this->nStack]['c'];</span>
|
||
<a name="l02523"></a>02523 <span class="stringliteral"> $this->currentPage=$this->stack[$this->nStack]['p'];</span>
|
||
<a name="l02524"></a>02524 <span class="stringliteral"> $this->nStack--;</span>
|
||
<a name="l02525"></a>02525 <span class="stringliteral"> // easier to probably not worry about removing the old entries, they will be overwritten</span>
|
||
<a name="l02526"></a>02526 <span class="stringliteral"> // if there are new ones.</span>
|
||
<a name="l02527"></a>02527 <span class="stringliteral"> }</span>
|
||
<a name="l02528"></a>02528 <span class="stringliteral">}</span>
|
||
<a name="l02529"></a>02529 <span class="stringliteral"></span>
|
||
<a name="l02533"></a><a class="code" href="classCpdf.html#a60">02533</a> <span class="stringliteral">function stopObject($id){</span>
|
||
<a name="l02534"></a>02534 <span class="stringliteral"> // if an object has been appearing on pages up to now, then stop it, this page will</span>
|
||
<a name="l02535"></a>02535 <span class="stringliteral"> // be the last one that could contian it.</span>
|
||
<a name="l02536"></a>02536 <span class="stringliteral"> if (isset($this->addLooseObjects[$id])){</span>
|
||
<a name="l02537"></a>02537 <span class="stringliteral"> $this->addLooseObjects[$id]='';</span>
|
||
<a name="l02538"></a>02538 <span class="stringliteral"> }</span>
|
||
<a name="l02539"></a>02539 <span class="stringliteral">}</span>
|
||
<a name="l02540"></a>02540 <span class="stringliteral"></span>
|
||
<a name="l02544"></a><a class="code" href="classCpdf.html#a61">02544</a> <span class="stringliteral">function addObject($id,$options='add'){</span>
|
||
<a name="l02545"></a>02545 <span class="stringliteral"> // add the specified object to the page</span>
|
||
<a name="l02546"></a>02546 <span class="stringliteral"> if (isset($this->looseObjects[$id]) && $this->currentContents!=$id){</span>
|
||
<a name="l02547"></a>02547 <span class="stringliteral"> // then it is a valid object, and it is not being added to itself</span>
|
||
<a name="l02548"></a>02548 <span class="stringliteral"> switch($options){</span>
|
||
<a name="l02549"></a>02549 <span class="stringliteral"> case 'all':</span>
|
||
<a name="l02550"></a>02550 <span class="stringliteral"> // then this object is to be added to this page (done in the next block) and </span>
|
||
<a name="l02551"></a>02551 <span class="stringliteral"> // all future new pages. </span>
|
||
<a name="l02552"></a>02552 <span class="stringliteral"> $this->addLooseObjects[$id]='all';</span>
|
||
<a name="l02553"></a>02553 <span class="stringliteral"> case 'add':</span>
|
||
<a name="l02554"></a>02554 <span class="stringliteral"> if (isset($this->objects[$this->currentContents]['onPage'])){</span>
|
||
<a name="l02555"></a>02555 <span class="stringliteral"> // then the destination contents is the primary for the page</span>
|
||
<a name="l02556"></a>02556 <span class="stringliteral"> // (though this object is actually added to that page)</span>
|
||
<a name="l02557"></a>02557 <span class="stringliteral"> $this->o_page($this->objects[$this->currentContents]['onPage'],'content',$id);</span>
|
||
<a name="l02558"></a>02558 <span class="stringliteral"> }</span>
|
||
<a name="l02559"></a>02559 <span class="stringliteral"> break;</span>
|
||
<a name="l02560"></a>02560 <span class="stringliteral"> case 'even':</span>
|
||
<a name="l02561"></a>02561 <span class="stringliteral"> $this->addLooseObjects[$id]='even';</span>
|
||
<a name="l02562"></a>02562 <span class="stringliteral"> $pageObjectId=$this->objects[$this->currentContents]['onPage'];</span>
|
||
<a name="l02563"></a>02563 <span class="stringliteral"> if ($this->objects[$pageObjectId]['info']['pageNum']%2==0){</span>
|
||
<a name="l02564"></a>02564 <span class="stringliteral"> $this->addObject($id); // hacky huh :)</span>
|
||
<a name="l02565"></a>02565 <span class="stringliteral"> }</span>
|
||
<a name="l02566"></a>02566 <span class="stringliteral"> break;</span>
|
||
<a name="l02567"></a>02567 <span class="stringliteral"> case 'odd':</span>
|
||
<a name="l02568"></a>02568 <span class="stringliteral"> $this->addLooseObjects[$id]='odd';</span>
|
||
<a name="l02569"></a>02569 <span class="stringliteral"> $pageObjectId=$this->objects[$this->currentContents]['onPage'];</span>
|
||
<a name="l02570"></a>02570 <span class="stringliteral"> if ($this->objects[$pageObjectId]['info']['pageNum']%2==1){</span>
|
||
<a name="l02571"></a>02571 <span class="stringliteral"> $this->addObject($id); // hacky huh :)</span>
|
||
<a name="l02572"></a>02572 <span class="stringliteral"> }</span>
|
||
<a name="l02573"></a>02573 <span class="stringliteral"> break;</span>
|
||
<a name="l02574"></a>02574 <span class="stringliteral"> case 'next':</span>
|
||
<a name="l02575"></a>02575 <span class="stringliteral"> $this->addLooseObjects[$id]='all';</span>
|
||
<a name="l02576"></a>02576 <span class="stringliteral"> break;</span>
|
||
<a name="l02577"></a>02577 <span class="stringliteral"> case 'nexteven':</span>
|
||
<a name="l02578"></a>02578 <span class="stringliteral"> $this->addLooseObjects[$id]='even';</span>
|
||
<a name="l02579"></a>02579 <span class="stringliteral"> break;</span>
|
||
<a name="l02580"></a>02580 <span class="stringliteral"> case 'nextodd':</span>
|
||
<a name="l02581"></a>02581 <span class="stringliteral"> $this->addLooseObjects[$id]='odd';</span>
|
||
<a name="l02582"></a>02582 <span class="stringliteral"> break;</span>
|
||
<a name="l02583"></a>02583 <span class="stringliteral"> }</span>
|
||
<a name="l02584"></a>02584 <span class="stringliteral"> }</span>
|
||
<a name="l02585"></a>02585 <span class="stringliteral">}</span>
|
||
<a name="l02586"></a>02586 <span class="stringliteral"></span>
|
||
<a name="l02590"></a><a class="code" href="classCpdf.html#a62">02590</a> <span class="stringliteral">function addInfo($label,$value=0){</span>
|
||
<a name="l02591"></a>02591 <span class="stringliteral"> // this will only work if the label is one of the valid ones.</span>
|
||
<a name="l02592"></a>02592 <span class="stringliteral"> // modify this so that arrays can be passed as well.</span>
|
||
<a name="l02593"></a>02593 <span class="stringliteral"> // if $label is an array then assume that it is key=>value pairs</span>
|
||
<a name="l02594"></a>02594 <span class="stringliteral"> // else assume that they are both scalar, anything else will probably error</span>
|
||
<a name="l02595"></a>02595 <span class="stringliteral"> if (is_array($label)){</span>
|
||
<a name="l02596"></a>02596 <span class="stringliteral"> foreach ($label as $l=>$v){</span>
|
||
<a name="l02597"></a>02597 <span class="stringliteral"> $this->o_info($this->infoObject,$l,$v);</span>
|
||
<a name="l02598"></a>02598 <span class="stringliteral"> }</span>
|
||
<a name="l02599"></a>02599 <span class="stringliteral"> } else {</span>
|
||
<a name="l02600"></a>02600 <span class="stringliteral"> $this->o_info($this->infoObject,$label,$value);</span>
|
||
<a name="l02601"></a>02601 <span class="stringliteral"> }</span>
|
||
<a name="l02602"></a>02602 <span class="stringliteral">}</span>
|
||
<a name="l02603"></a>02603 <span class="stringliteral"></span>
|
||
<a name="l02607"></a><a class="code" href="classCpdf.html#a63">02607</a> <span class="stringliteral">function setPreferences($label,$value=0){</span>
|
||
<a name="l02608"></a>02608 <span class="stringliteral"> // this will only work if the label is one of the valid ones.</span>
|
||
<a name="l02609"></a>02609 <span class="stringliteral"> if (is_array($label)){</span>
|
||
<a name="l02610"></a>02610 <span class="stringliteral"> foreach ($label as $l=>$v){</span>
|
||
<a name="l02611"></a>02611 <span class="stringliteral"> $this->o_catalog($this->catalogId,'viewerPreferences',array($l=>$v));</span>
|
||
<a name="l02612"></a>02612 <span class="stringliteral"> }</span>
|
||
<a name="l02613"></a>02613 <span class="stringliteral"> } else {</span>
|
||
<a name="l02614"></a>02614 <span class="stringliteral"> $this->o_catalog($this->catalogId,'viewerPreferences',array($label=>$value));</span>
|
||
<a name="l02615"></a>02615 <span class="stringliteral"> }</span>
|
||
<a name="l02616"></a>02616 <span class="stringliteral">}</span>
|
||
<a name="l02617"></a>02617 <span class="stringliteral"></span>
|
||
<a name="l02623"></a><a class="code" href="classCpdf.html#a64">02623</a> <span class="stringliteral">function PRVT_getBytes(&$data,$pos,$num){</span>
|
||
<a name="l02624"></a>02624 <span class="stringliteral"> // return the integer represented by $num bytes from $pos within $data</span>
|
||
<a name="l02625"></a>02625 <span class="stringliteral"> $ret=0;</span>
|
||
<a name="l02626"></a>02626 <span class="stringliteral"> for ($i=0;$i<$num;$i++){</span>
|
||
<a name="l02627"></a>02627 <span class="stringliteral"> $ret=$ret*256;</span>
|
||
<a name="l02628"></a>02628 <span class="stringliteral"> $ret+=ord($data[$pos+$i]);</span>
|
||
<a name="l02629"></a>02629 <span class="stringliteral"> }</span>
|
||
<a name="l02630"></a>02630 <span class="stringliteral"> return $ret;</span>
|
||
<a name="l02631"></a>02631 <span class="stringliteral">}</span>
|
||
<a name="l02632"></a>02632 <span class="stringliteral"></span>
|
||
<a name="l02637"></a><a class="code" href="classCpdf.html#a65">02637</a> <span class="stringliteral">function addPngFromFile($file,$x,$y,$w=0,$h=0){</span>
|
||
<a name="l02638"></a>02638 <span class="stringliteral"> // read in a png file, interpret it, then add to the system</span>
|
||
<a name="l02639"></a>02639 <span class="stringliteral"> $error=0;</span>
|
||
<a name="l02640"></a>02640 <span class="stringliteral"> $tmp = get_magic_quotes_runtime();</span>
|
||
<a name="l02641"></a>02641 <span class="stringliteral"> set_magic_quotes_runtime(0);</span>
|
||
<a name="l02642"></a>02642 <span class="stringliteral"> $fp = @fopen($file,'rb');</span>
|
||
<a name="l02643"></a>02643 <span class="stringliteral"> if ($fp){</span>
|
||
<a name="l02644"></a>02644 <span class="stringliteral"> $data='';</span>
|
||
<a name="l02645"></a>02645 <span class="stringliteral"> while(!feof($fp)){</span>
|
||
<a name="l02646"></a>02646 <span class="stringliteral"> $data .= fread($fp,1024);</span>
|
||
<a name="l02647"></a>02647 <span class="stringliteral"> }</span>
|
||
<a name="l02648"></a>02648 <span class="stringliteral"> fclose($fp);</span>
|
||
<a name="l02649"></a>02649 <span class="stringliteral"> } else {</span>
|
||
<a name="l02650"></a>02650 <span class="stringliteral"> $error = 1;</span>
|
||
<a name="l02651"></a>02651 <span class="stringliteral"> $errormsg = 'trouble opening file: '.$file;</span>
|
||
<a name="l02652"></a>02652 <span class="stringliteral"> }</span>
|
||
<a name="l02653"></a>02653 <span class="stringliteral"> set_magic_quotes_runtime($tmp);</span>
|
||
<a name="l02654"></a>02654 <span class="stringliteral"> </span>
|
||
<a name="l02655"></a>02655 <span class="stringliteral"> if (!$error){</span>
|
||
<a name="l02656"></a>02656 <span class="stringliteral"> $header = chr(137).chr(80).chr(78).chr(71).chr(13).chr(10).chr(26).chr(10);</span>
|
||
<a name="l02657"></a>02657 <span class="stringliteral"> if (substr($data,0,8)!=$header){</span>
|
||
<a name="l02658"></a>02658 <span class="stringliteral"> $error=1;</span>
|
||
<a name="l02659"></a>02659 <span class="stringliteral"> $errormsg = 'this file does not have a valid header';</span>
|
||
<a name="l02660"></a>02660 <span class="stringliteral"> }</span>
|
||
<a name="l02661"></a>02661 <span class="stringliteral"> }</span>
|
||
<a name="l02662"></a>02662 <span class="stringliteral"></span>
|
||
<a name="l02663"></a>02663 <span class="stringliteral"> if (!$error){</span>
|
||
<a name="l02664"></a>02664 <span class="stringliteral"> // set pointer</span>
|
||
<a name="l02665"></a>02665 <span class="stringliteral"> $p = 8;</span>
|
||
<a name="l02666"></a>02666 <span class="stringliteral"> $len = strlen($data);</span>
|
||
<a name="l02667"></a>02667 <span class="stringliteral"> // cycle through the file, identifying chunks</span>
|
||
<a name="l02668"></a>02668 <span class="stringliteral"> $haveHeader=0;</span>
|
||
<a name="l02669"></a>02669 <span class="stringliteral"> $info=array();</span>
|
||
<a name="l02670"></a>02670 <span class="stringliteral"> $idata='';</span>
|
||
<a name="l02671"></a>02671 <span class="stringliteral"> $pdata='';</span>
|
||
<a name="l02672"></a>02672 <span class="stringliteral"> while ($p<$len){</span>
|
||
<a name="l02673"></a>02673 <span class="stringliteral"> $chunkLen = $this->PRVT_getBytes($data,$p,4);</span>
|
||
<a name="l02674"></a>02674 <span class="stringliteral"> $chunkType = substr($data,$p+4,4);</span>
|
||
<a name="l02675"></a>02675 <span class="stringliteral">// echo $chunkType.' - '.$chunkLen.'<br>';</span>
|
||
<a name="l02676"></a>02676 <span class="stringliteral"> </span>
|
||
<a name="l02677"></a>02677 <span class="stringliteral"> switch($chunkType){</span>
|
||
<a name="l02678"></a>02678 <span class="stringliteral"> case 'IHDR':</span>
|
||
<a name="l02679"></a>02679 <span class="stringliteral"> // this is where all the file information comes from</span>
|
||
<a name="l02680"></a>02680 <span class="stringliteral"> $info['width']=$this->PRVT_getBytes($data,$p+8,4);</span>
|
||
<a name="l02681"></a>02681 <span class="stringliteral"> $info['height']=$this->PRVT_getBytes($data,$p+12,4);</span>
|
||
<a name="l02682"></a>02682 <span class="stringliteral"> $info['bitDepth']=ord($data[$p+16]);</span>
|
||
<a name="l02683"></a>02683 <span class="stringliteral"> $info['colorType']=ord($data[$p+17]);</span>
|
||
<a name="l02684"></a>02684 <span class="stringliteral"> $info['compressionMethod']=ord($data[$p+18]);</span>
|
||
<a name="l02685"></a>02685 <span class="stringliteral"> $info['filterMethod']=ord($data[$p+19]);</span>
|
||
<a name="l02686"></a>02686 <span class="stringliteral"> $info['interlaceMethod']=ord($data[$p+20]);</span>
|
||
<a name="l02687"></a>02687 <span class="stringliteral">//print_r($info);</span>
|
||
<a name="l02688"></a>02688 <span class="stringliteral"> $haveHeader=1;</span>
|
||
<a name="l02689"></a>02689 <span class="stringliteral"> if ($info['compressionMethod']!=0){</span>
|
||
<a name="l02690"></a>02690 <span class="stringliteral"> $error=1;</span>
|
||
<a name="l02691"></a>02691 <span class="stringliteral"> $errormsg = 'unsupported compression method';</span>
|
||
<a name="l02692"></a>02692 <span class="stringliteral"> }</span>
|
||
<a name="l02693"></a>02693 <span class="stringliteral"> if ($info['filterMethod']!=0){</span>
|
||
<a name="l02694"></a>02694 <span class="stringliteral"> $error=1;</span>
|
||
<a name="l02695"></a>02695 <span class="stringliteral"> $errormsg = 'unsupported filter method';</span>
|
||
<a name="l02696"></a>02696 <span class="stringliteral"> }</span>
|
||
<a name="l02697"></a>02697 <span class="stringliteral"> break;</span>
|
||
<a name="l02698"></a>02698 <span class="stringliteral"> case 'PLTE':</span>
|
||
<a name="l02699"></a>02699 <span class="stringliteral"> $pdata.=substr($data,$p+8,$chunkLen);</span>
|
||
<a name="l02700"></a>02700 <span class="stringliteral"> break;</span>
|
||
<a name="l02701"></a>02701 <span class="stringliteral"> case 'IDAT':</span>
|
||
<a name="l02702"></a>02702 <span class="stringliteral"> $idata.=substr($data,$p+8,$chunkLen);</span>
|
||
<a name="l02703"></a>02703 <span class="stringliteral"> break;</span>
|
||
<a name="l02704"></a>02704 <span class="stringliteral"> case 'tRNS': </span>
|
||
<a name="l02705"></a>02705 <span class="stringliteral"> //this chunk can only occur once and it must occur after the PLTE chunk and before IDAT chunk </span>
|
||
<a name="l02706"></a>02706 <span class="stringliteral"> //print "</span>tRNS found, color type = <span class="stringliteral">".$info['colorType']."</span><BR><span class="stringliteral">"; </span>
|
||
<a name="l02707"></a>02707 <span class="stringliteral"> $transparency = array();</span>
|
||
<a name="l02708"></a>02708 <span class="stringliteral"> if ($info['colorType'] == 3) { // indexed color, rbg </span>
|
||
<a name="l02709"></a>02709 <span class="stringliteral"> /* corresponding to entries in the plte chunk </span>
|
||
<a name="l02710"></a>02710 <span class="stringliteral"> Alpha for palette index 0: 1 byte </span>
|
||
<a name="l02711"></a>02711 <span class="stringliteral"> Alpha for palette index 1: 1 byte </span>
|
||
<a name="l02712"></a>02712 <span class="stringliteral"> ...etc... </span>
|
||
<a name="l02713"></a>02713 <span class="stringliteral"> */ </span>
|
||
<a name="l02714"></a>02714 <span class="stringliteral"> // there will be one entry for each palette entry. up until the last non-opaque entry.</span>
|
||
<a name="l02715"></a>02715 <span class="stringliteral"> // set up an array, stretching over all palette entries which will be o (opaque) or 1 (transparent)</span>
|
||
<a name="l02716"></a>02716 <span class="stringliteral"> $transparency['type']='indexed';</span>
|
||
<a name="l02717"></a>02717 <span class="stringliteral"> $numPalette = strlen($pdata)/3;</span>
|
||
<a name="l02718"></a>02718 <span class="stringliteral"> $trans=0;</span>
|
||
<a name="l02719"></a>02719 <span class="stringliteral"> for ($i=$chunkLen;$i>=0;$i--){</span>
|
||
<a name="l02720"></a>02720 <span class="stringliteral"> if (ord($data[$p+8+$i])==0){</span>
|
||
<a name="l02721"></a>02721 <span class="stringliteral"> $trans=$i;</span>
|
||
<a name="l02722"></a>02722 <span class="stringliteral"> }</span>
|
||
<a name="l02723"></a>02723 <span class="stringliteral"> }</span>
|
||
<a name="l02724"></a>02724 <span class="stringliteral"> $transparency['data'] = $trans;</span>
|
||
<a name="l02725"></a>02725 <span class="stringliteral"> </span>
|
||
<a name="l02726"></a>02726 <span class="stringliteral"> } elseif($info['colorType'] == 0) { // grayscale </span>
|
||
<a name="l02727"></a>02727 <span class="stringliteral"> /* corresponding to entries in the plte chunk </span>
|
||
<a name="l02728"></a>02728 <span class="stringliteral"> Gray: 2 bytes, range 0 .. (2^bitdepth)-1 </span>
|
||
<a name="l02729"></a>02729 <span class="stringliteral"> */ </span>
|
||
<a name="l02730"></a>02730 <span class="stringliteral">// $transparency['grayscale']=$this->PRVT_getBytes($data,$p+8,2); // g = grayscale </span>
|
||
<a name="l02731"></a>02731 <span class="stringliteral"> $transparency['type']='indexed';</span>
|
||
<a name="l02732"></a>02732 <span class="stringliteral"> $transparency['data'] = ord($data[$p+8+1]);</span>
|
||
<a name="l02733"></a>02733 <span class="stringliteral"> </span>
|
||
<a name="l02734"></a>02734 <span class="stringliteral"> } elseif($info['colorType'] == 2) { // truecolor </span>
|
||
<a name="l02735"></a>02735 <span class="stringliteral"> /* corresponding to entries in the plte chunk </span>
|
||
<a name="l02736"></a>02736 <span class="stringliteral"> Red: 2 bytes, range 0 .. (2^bitdepth)-1 </span>
|
||
<a name="l02737"></a>02737 <span class="stringliteral"> Green: 2 bytes, range 0 .. (2^bitdepth)-1 </span>
|
||
<a name="l02738"></a>02738 <span class="stringliteral"> Blue: 2 bytes, range 0 .. (2^bitdepth)-1 </span>
|
||
<a name="l02739"></a>02739 <span class="stringliteral"> */ </span>
|
||
<a name="l02740"></a>02740 <span class="stringliteral"> $transparency['r']=$this->PRVT_getBytes($data,$p+8,2); // r from truecolor </span>
|
||
<a name="l02741"></a>02741 <span class="stringliteral"> $transparency['g']=$this->PRVT_getBytes($data,$p+10,2); // g from truecolor </span>
|
||
<a name="l02742"></a>02742 <span class="stringliteral"> $transparency['b']=$this->PRVT_getBytes($data,$p+12,2); // b from truecolor </span>
|
||
<a name="l02743"></a>02743 <span class="stringliteral"> </span>
|
||
<a name="l02744"></a>02744 <span class="stringliteral"> } else { </span>
|
||
<a name="l02745"></a>02745 <span class="stringliteral"> //unsupported transparency type </span>
|
||
<a name="l02746"></a>02746 <span class="stringliteral"> } </span>
|
||
<a name="l02747"></a>02747 <span class="stringliteral"> // KS End new code </span>
|
||
<a name="l02748"></a>02748 <span class="stringliteral"> break; </span>
|
||
<a name="l02749"></a>02749 <span class="stringliteral"> default:</span>
|
||
<a name="l02750"></a>02750 <span class="stringliteral"> break;</span>
|
||
<a name="l02751"></a>02751 <span class="stringliteral"> }</span>
|
||
<a name="l02752"></a>02752 <span class="stringliteral"> </span>
|
||
<a name="l02753"></a>02753 <span class="stringliteral"> $p += $chunkLen+12;</span>
|
||
<a name="l02754"></a>02754 <span class="stringliteral"> }</span>
|
||
<a name="l02755"></a>02755 <span class="stringliteral"> </span>
|
||
<a name="l02756"></a>02756 <span class="stringliteral"> if(!$haveHeader){</span>
|
||
<a name="l02757"></a>02757 <span class="stringliteral"> $error = 1;</span>
|
||
<a name="l02758"></a>02758 <span class="stringliteral"> $errormsg = 'information header is missing';</span>
|
||
<a name="l02759"></a>02759 <span class="stringliteral"> }</span>
|
||
<a name="l02760"></a>02760 <span class="stringliteral"> if (isset($info['interlaceMethod']) && $info['interlaceMethod']){</span>
|
||
<a name="l02761"></a>02761 <span class="stringliteral"> $error = 1;</span>
|
||
<a name="l02762"></a>02762 <span class="stringliteral"> $errormsg = 'There appears to be no support for interlaced images in pdf.';</span>
|
||
<a name="l02763"></a>02763 <span class="stringliteral"> }</span>
|
||
<a name="l02764"></a>02764 <span class="stringliteral"> }</span>
|
||
<a name="l02765"></a>02765 <span class="stringliteral"></span>
|
||
<a name="l02766"></a>02766 <span class="stringliteral"> if (!$error && $info['bitDepth'] > 8){</span>
|
||
<a name="l02767"></a>02767 <span class="stringliteral"> $error = 1;</span>
|
||
<a name="l02768"></a>02768 <span class="stringliteral"> $errormsg = 'only bit depth of 8 or less is supported';</span>
|
||
<a name="l02769"></a>02769 <span class="stringliteral"> }</span>
|
||
<a name="l02770"></a>02770 <span class="stringliteral"></span>
|
||
<a name="l02771"></a>02771 <span class="stringliteral"> if (!$error){</span>
|
||
<a name="l02772"></a>02772 <span class="stringliteral"> if ($info['colorType']!=2 && $info['colorType']!=0 && $info['colorType']!=3){</span>
|
||
<a name="l02773"></a>02773 <span class="stringliteral"> $error = 1;</span>
|
||
<a name="l02774"></a>02774 <span class="stringliteral"> $errormsg = 'transparancey alpha channel not supported, transparency only supported for palette images.';</span>
|
||
<a name="l02775"></a>02775 <span class="stringliteral"> } else {</span>
|
||
<a name="l02776"></a>02776 <span class="stringliteral"> switch ($info['colorType']){</span>
|
||
<a name="l02777"></a>02777 <span class="stringliteral"> case 3:</span>
|
||
<a name="l02778"></a>02778 <span class="stringliteral"> $color = 'DeviceRGB';</span>
|
||
<a name="l02779"></a>02779 <span class="stringliteral"> $ncolor=1;</span>
|
||
<a name="l02780"></a>02780 <span class="stringliteral"> break;</span>
|
||
<a name="l02781"></a>02781 <span class="stringliteral"> case 2:</span>
|
||
<a name="l02782"></a>02782 <span class="stringliteral"> $color = 'DeviceRGB';</span>
|
||
<a name="l02783"></a>02783 <span class="stringliteral"> $ncolor=3;</span>
|
||
<a name="l02784"></a>02784 <span class="stringliteral"> break;</span>
|
||
<a name="l02785"></a>02785 <span class="stringliteral"> case 0:</span>
|
||
<a name="l02786"></a>02786 <span class="stringliteral"> $color = 'DeviceGray';</span>
|
||
<a name="l02787"></a>02787 <span class="stringliteral"> $ncolor=1;</span>
|
||
<a name="l02788"></a>02788 <span class="stringliteral"> break;</span>
|
||
<a name="l02789"></a>02789 <span class="stringliteral"> }</span>
|
||
<a name="l02790"></a>02790 <span class="stringliteral"> }</span>
|
||
<a name="l02791"></a>02791 <span class="stringliteral"> }</span>
|
||
<a name="l02792"></a>02792 <span class="stringliteral"> if ($error){</span>
|
||
<a name="l02793"></a>02793 <span class="stringliteral"> $this->addMessage('PNG error - ('.$file.') '.$errormsg);</span>
|
||
<a name="l02794"></a>02794 <span class="stringliteral"> return;</span>
|
||
<a name="l02795"></a>02795 <span class="stringliteral"> }</span>
|
||
<a name="l02796"></a>02796 <span class="stringliteral"> if ($w==0){</span>
|
||
<a name="l02797"></a>02797 <span class="stringliteral"> $w=$h/$info['height']*$info['width'];</span>
|
||
<a name="l02798"></a>02798 <span class="stringliteral"> }</span>
|
||
<a name="l02799"></a>02799 <span class="stringliteral"> if ($h==0){</span>
|
||
<a name="l02800"></a>02800 <span class="stringliteral"> $h=$w*$info['height']/$info['width'];</span>
|
||
<a name="l02801"></a>02801 <span class="stringliteral"> }</span>
|
||
<a name="l02802"></a>02802 <span class="stringliteral">//print_r($info);</span>
|
||
<a name="l02803"></a>02803 <span class="stringliteral"> // so this image is ok... add it in.</span>
|
||
<a name="l02804"></a>02804 <span class="stringliteral"> $this->numImages++;</span>
|
||
<a name="l02805"></a>02805 <span class="stringliteral"> $im=$this->numImages;</span>
|
||
<a name="l02806"></a>02806 <span class="stringliteral"> $label='I'.$im;</span>
|
||
<a name="l02807"></a>02807 <span class="stringliteral"> $this->numObj++;</span>
|
||
<a name="l02808"></a>02808 <span class="stringliteral">// $this->o_image($this->numObj,'new',array('label'=>$label,'data'=>$idata,'iw'=>$w,'ih'=>$h,'type'=>'png','ic'=>$info['width']));</span>
|
||
<a name="l02809"></a>02809 <span class="stringliteral"> $options = array('label'=>$label,'data'=>$idata,'bitsPerComponent'=>$info['bitDepth'],'pdata'=>$pdata</span>
|
||
<a name="l02810"></a>02810 <span class="stringliteral"> ,'iw'=>$info['width'],'ih'=>$info['height'],'type'=>'png','color'=>$color,'ncolor'=>$ncolor);</span>
|
||
<a name="l02811"></a>02811 <span class="stringliteral"> if (isset($transparency)){</span>
|
||
<a name="l02812"></a>02812 <span class="stringliteral"> $options['transparency']=$transparency;</span>
|
||
<a name="l02813"></a>02813 <span class="stringliteral"> }</span>
|
||
<a name="l02814"></a>02814 <span class="stringliteral"> $this->o_image($this->numObj,'new',$options);</span>
|
||
<a name="l02815"></a>02815 <span class="stringliteral"></span>
|
||
<a name="l02816"></a>02816 <span class="stringliteral"> $this->objects[$this->currentContents]['c'].="</span>\nq<span class="stringliteral">";</span>
|
||
<a name="l02817"></a>02817 <span class="stringliteral"> $this->objects[$this->currentContents]['c'].="</span>\n<span class="stringliteral">".sprintf('%.3f',$w)."</span> 0 0 <span class="stringliteral">".sprintf('%.3f',$h)."</span> <span class="stringliteral">".sprintf('%.3f',$x)."</span> <span class="stringliteral">".sprintf('%.3f',$y)."</span> cm<span class="stringliteral">";</span>
|
||
<a name="l02818"></a>02818 <span class="stringliteral"> $this->objects[$this->currentContents]['c'].="</span>\n/<span class="stringliteral">".$label.' Do';</span>
|
||
<a name="l02819"></a>02819 <span class="stringliteral"> $this->objects[$this->currentContents]['c'].="</span>\nQ<span class="stringliteral">";</span>
|
||
<a name="l02820"></a>02820 <span class="stringliteral">}</span>
|
||
<a name="l02821"></a>02821 <span class="stringliteral"></span>
|
||
<a name="l02825"></a><a class="code" href="classCpdf.html#a66">02825</a> <span class="stringliteral">function addJpegFromFile($img,$x,$y,$w=0,$h=0){</span>
|
||
<a name="l02826"></a>02826 <span class="stringliteral"> // attempt to add a jpeg image straight from a file, using no GD commands</span>
|
||
<a name="l02827"></a>02827 <span class="stringliteral"> // note that this function is unable to operate on a remote file.</span>
|
||
<a name="l02828"></a>02828 <span class="stringliteral"></span>
|
||
<a name="l02829"></a>02829 <span class="stringliteral"> if (!file_exists($img)){</span>
|
||
<a name="l02830"></a>02830 <span class="stringliteral"> return;</span>
|
||
<a name="l02831"></a>02831 <span class="stringliteral"> }</span>
|
||
<a name="l02832"></a>02832 <span class="stringliteral"></span>
|
||
<a name="l02833"></a>02833 <span class="stringliteral"> $tmp=getimagesize($img);</span>
|
||
<a name="l02834"></a>02834 <span class="stringliteral"> $imageWidth=$tmp[0];</span>
|
||
<a name="l02835"></a>02835 <span class="stringliteral"> $imageHeight=$tmp[1];</span>
|
||
<a name="l02836"></a>02836 <span class="stringliteral"></span>
|
||
<a name="l02837"></a>02837 <span class="stringliteral"> if (isset($tmp['channels'])){</span>
|
||
<a name="l02838"></a>02838 <span class="stringliteral"> $channels = $tmp['channels'];</span>
|
||
<a name="l02839"></a>02839 <span class="stringliteral"> } else {</span>
|
||
<a name="l02840"></a>02840 <span class="stringliteral"> $channels = 3;</span>
|
||
<a name="l02841"></a>02841 <span class="stringliteral"> }</span>
|
||
<a name="l02842"></a>02842 <span class="stringliteral"></span>
|
||
<a name="l02843"></a>02843 <span class="stringliteral"> if ($w<=0 && $h<=0){</span>
|
||
<a name="l02844"></a>02844 <span class="stringliteral"> $w=$imageWidth;</span>
|
||
<a name="l02845"></a>02845 <span class="stringliteral"> }</span>
|
||
<a name="l02846"></a>02846 <span class="stringliteral"> if ($w==0){</span>
|
||
<a name="l02847"></a>02847 <span class="stringliteral"> $w=$h/$imageHeight*$imageWidth;</span>
|
||
<a name="l02848"></a>02848 <span class="stringliteral"> }</span>
|
||
<a name="l02849"></a>02849 <span class="stringliteral"> if ($h==0){</span>
|
||
<a name="l02850"></a>02850 <span class="stringliteral"> $h=$w*$imageHeight/$imageWidth;</span>
|
||
<a name="l02851"></a>02851 <span class="stringliteral"> }</span>
|
||
<a name="l02852"></a>02852 <span class="stringliteral"></span>
|
||
<a name="l02853"></a>02853 <span class="stringliteral"> $fp=fopen($img,'rb');</span>
|
||
<a name="l02854"></a>02854 <span class="stringliteral"></span>
|
||
<a name="l02855"></a>02855 <span class="stringliteral"> $tmp = get_magic_quotes_runtime();</span>
|
||
<a name="l02856"></a>02856 <span class="stringliteral"> set_magic_quotes_runtime(0);</span>
|
||
<a name="l02857"></a>02857 <span class="stringliteral"> $data = fread($fp,filesize($img));</span>
|
||
<a name="l02858"></a>02858 <span class="stringliteral"> set_magic_quotes_runtime($tmp);</span>
|
||
<a name="l02859"></a>02859 <span class="stringliteral"> </span>
|
||
<a name="l02860"></a>02860 <span class="stringliteral"> fclose($fp);</span>
|
||
<a name="l02861"></a>02861 <span class="stringliteral"></span>
|
||
<a name="l02862"></a>02862 <span class="stringliteral"> $this->addJpegImage_common($data,$x,$y,$w,$h,$imageWidth,$imageHeight,$channels);</span>
|
||
<a name="l02863"></a>02863 <span class="stringliteral">}</span>
|
||
<a name="l02864"></a>02864 <span class="stringliteral"></span>
|
||
<a name="l02870"></a><a class="code" href="classCpdf.html#a67">02870</a> <span class="stringliteral">function addImage(&$img,$x,$y,$w=0,$h=0,$quality=75){</span>
|
||
<a name="l02871"></a>02871 <span class="stringliteral"> // add a new image into the current location, as an external object</span>
|
||
<a name="l02872"></a>02872 <span class="stringliteral"> // add the image at $x,$y, and with width and height as defined by $w & $h</span>
|
||
<a name="l02873"></a>02873 <span class="stringliteral"> </span>
|
||
<a name="l02874"></a>02874 <span class="stringliteral"> // note that this will only work with full colour images and makes them jpg images for display</span>
|
||
<a name="l02875"></a>02875 <span class="stringliteral"> // later versions could present lossless image formats if there is interest.</span>
|
||
<a name="l02876"></a>02876 <span class="stringliteral"> </span>
|
||
<a name="l02877"></a>02877 <span class="stringliteral"> // there seems to be some problem here in that images that have quality set above 75 do not appear</span>
|
||
<a name="l02878"></a>02878 <span class="stringliteral"> // not too sure why this is, but in the meantime I have restricted this to 75. </span>
|
||
<a name="l02879"></a>02879 <span class="stringliteral"> if ($quality>75){</span>
|
||
<a name="l02880"></a>02880 <span class="stringliteral"> $quality=75;</span>
|
||
<a name="l02881"></a>02881 <span class="stringliteral"> }</span>
|
||
<a name="l02882"></a>02882 <span class="stringliteral"></span>
|
||
<a name="l02883"></a>02883 <span class="stringliteral"> // if the width or height are set to zero, then set the other one based on keeping the image</span>
|
||
<a name="l02884"></a>02884 <span class="stringliteral"> // height/width ratio the same, if they are both zero, then give up :)</span>
|
||
<a name="l02885"></a>02885 <span class="stringliteral"> $imageWidth=imagesx($img);</span>
|
||
<a name="l02886"></a>02886 <span class="stringliteral"> $imageHeight=imagesy($img);</span>
|
||
<a name="l02887"></a>02887 <span class="stringliteral"> </span>
|
||
<a name="l02888"></a>02888 <span class="stringliteral"> if ($w<=0 && $h<=0){</span>
|
||
<a name="l02889"></a>02889 <span class="stringliteral"> return;</span>
|
||
<a name="l02890"></a>02890 <span class="stringliteral"> }</span>
|
||
<a name="l02891"></a>02891 <span class="stringliteral"> if ($w==0){</span>
|
||
<a name="l02892"></a>02892 <span class="stringliteral"> $w=$h/$imageHeight*$imageWidth;</span>
|
||
<a name="l02893"></a>02893 <span class="stringliteral"> }</span>
|
||
<a name="l02894"></a>02894 <span class="stringliteral"> if ($h==0){</span>
|
||
<a name="l02895"></a>02895 <span class="stringliteral"> $h=$w*$imageHeight/$imageWidth;</span>
|
||
<a name="l02896"></a>02896 <span class="stringliteral"> }</span>
|
||
<a name="l02897"></a>02897 <span class="stringliteral"> </span>
|
||
<a name="l02898"></a>02898 <span class="stringliteral"> // gotta get the data out of the img..</span>
|
||
<a name="l02899"></a>02899 <span class="stringliteral"></span>
|
||
<a name="l02900"></a>02900 <span class="stringliteral"> // so I write to a temp file, and then read it back.. soo ugly, my apologies.</span>
|
||
<a name="l02901"></a>02901 <span class="stringliteral"> $tmpDir='/tmp';</span>
|
||
<a name="l02902"></a>02902 <span class="stringliteral"> $tmpName=tempnam($tmpDir,'img');</span>
|
||
<a name="l02903"></a>02903 <span class="stringliteral"> imagejpeg($img,$tmpName,$quality);</span>
|
||
<a name="l02904"></a>02904 <span class="stringliteral"> $fp=fopen($tmpName,'rb');</span>
|
||
<a name="l02905"></a>02905 <span class="stringliteral"></span>
|
||
<a name="l02906"></a>02906 <span class="stringliteral"> $tmp = get_magic_quotes_runtime();</span>
|
||
<a name="l02907"></a>02907 <span class="stringliteral"> set_magic_quotes_runtime(0);</span>
|
||
<a name="l02908"></a>02908 <span class="stringliteral"> $fp = @fopen($tmpName,'rb');</span>
|
||
<a name="l02909"></a>02909 <span class="stringliteral"> if ($fp){</span>
|
||
<a name="l02910"></a>02910 <span class="stringliteral"> $data='';</span>
|
||
<a name="l02911"></a>02911 <span class="stringliteral"> while(!feof($fp)){</span>
|
||
<a name="l02912"></a>02912 <span class="stringliteral"> $data .= fread($fp,1024);</span>
|
||
<a name="l02913"></a>02913 <span class="stringliteral"> }</span>
|
||
<a name="l02914"></a>02914 <span class="stringliteral"> fclose($fp);</span>
|
||
<a name="l02915"></a>02915 <span class="stringliteral"> } else {</span>
|
||
<a name="l02916"></a>02916 <span class="stringliteral"> $error = 1;</span>
|
||
<a name="l02917"></a>02917 <span class="stringliteral"> $errormsg = 'trouble opening file';</span>
|
||
<a name="l02918"></a>02918 <span class="stringliteral"> }</span>
|
||
<a name="l02919"></a>02919 <span class="stringliteral">// $data = fread($fp,filesize($tmpName));</span>
|
||
<a name="l02920"></a>02920 <span class="stringliteral"> set_magic_quotes_runtime($tmp);</span>
|
||
<a name="l02921"></a>02921 <span class="stringliteral">// fclose($fp);</span>
|
||
<a name="l02922"></a>02922 <span class="stringliteral"> unlink($tmpName);</span>
|
||
<a name="l02923"></a>02923 <span class="stringliteral"> $this->addJpegImage_common($data,$x,$y,$w,$h,$imageWidth,$imageHeight);</span>
|
||
<a name="l02924"></a>02924 <span class="stringliteral">}</span>
|
||
<a name="l02925"></a>02925 <span class="stringliteral"></span>
|
||
<a name="l02931"></a><a class="code" href="classCpdf.html#a68">02931</a> <span class="stringliteral">function addJpegImage_common(&$data,$x,$y,$w=0,$h=0,$imageWidth,$imageHeight,$channels=3){</span>
|
||
<a name="l02932"></a>02932 <span class="stringliteral"> // note that this function is not to be called externally</span>
|
||
<a name="l02933"></a>02933 <span class="stringliteral"> // it is just the common code between the GD and the file options</span>
|
||
<a name="l02934"></a>02934 <span class="stringliteral"> $this->numImages++;</span>
|
||
<a name="l02935"></a>02935 <span class="stringliteral"> $im=$this->numImages;</span>
|
||
<a name="l02936"></a>02936 <span class="stringliteral"> $label='I'.$im;</span>
|
||
<a name="l02937"></a>02937 <span class="stringliteral"> $this->numObj++;</span>
|
||
<a name="l02938"></a>02938 <span class="stringliteral"> $this->o_image($this->numObj,'new',array('label'=>$label,'data'=>$data,'iw'=>$imageWidth,'ih'=>$imageHeight,'channels'=>$channels));</span>
|
||
<a name="l02939"></a>02939 <span class="stringliteral"></span>
|
||
<a name="l02940"></a>02940 <span class="stringliteral"> $this->objects[$this->currentContents]['c'].="</span>\nq<span class="stringliteral">";</span>
|
||
<a name="l02941"></a>02941 <span class="stringliteral"> $this->objects[$this->currentContents]['c'].="</span>\n<span class="stringliteral">".sprintf('%.3f',$w)."</span> 0 0 <span class="stringliteral">".sprintf('%.3f',$h)."</span> <span class="stringliteral">".sprintf('%.3f',$x)."</span> <span class="stringliteral">".sprintf('%.3f',$y)."</span> cm<span class="stringliteral">";</span>
|
||
<a name="l02942"></a>02942 <span class="stringliteral"> $this->objects[$this->currentContents]['c'].="</span>\n/<span class="stringliteral">".$label.' Do';</span>
|
||
<a name="l02943"></a>02943 <span class="stringliteral"> $this->objects[$this->currentContents]['c'].="</span>\nQ<span class="stringliteral">";</span>
|
||
<a name="l02944"></a>02944 <span class="stringliteral">}</span>
|
||
<a name="l02945"></a>02945 <span class="stringliteral"></span>
|
||
<a name="l02949"></a><a class="code" href="classCpdf.html#a69">02949</a> <span class="stringliteral">function openHere($style,$a=0,$b=0,$c=0){</span>
|
||
<a name="l02950"></a>02950 <span class="stringliteral"> // this function will open the document at a specified page, in a specified style</span>
|
||
<a name="l02951"></a>02951 <span class="stringliteral"> // the values for style, and the required paramters are:</span>
|
||
<a name="l02952"></a>02952 <span class="stringliteral"> // 'XYZ' left, top, zoom</span>
|
||
<a name="l02953"></a>02953 <span class="stringliteral"> // 'Fit'</span>
|
||
<a name="l02954"></a>02954 <span class="stringliteral"> // 'FitH' top</span>
|
||
<a name="l02955"></a>02955 <span class="stringliteral"> // 'FitV' left</span>
|
||
<a name="l02956"></a>02956 <span class="stringliteral"> // 'FitR' left,bottom,right</span>
|
||
<a name="l02957"></a>02957 <span class="stringliteral"> // 'FitB'</span>
|
||
<a name="l02958"></a>02958 <span class="stringliteral"> // 'FitBH' top</span>
|
||
<a name="l02959"></a>02959 <span class="stringliteral"> // 'FitBV' left</span>
|
||
<a name="l02960"></a>02960 <span class="stringliteral"> $this->numObj++;</span>
|
||
<a name="l02961"></a>02961 <span class="stringliteral"> $this->o_destination($this->numObj,'new',array('page'=>$this->currentPage,'type'=>$style,'p1'=>$a,'p2'=>$b,'p3'=>$c));</span>
|
||
<a name="l02962"></a>02962 <span class="stringliteral"> $id = $this->catalogId;</span>
|
||
<a name="l02963"></a>02963 <span class="stringliteral"> $this->o_catalog($id,'openHere',$this->numObj);</span>
|
||
<a name="l02964"></a>02964 <span class="stringliteral">}</span>
|
||
<a name="l02965"></a>02965 <span class="stringliteral"></span>
|
||
<a name="l02969"></a><a class="code" href="classCpdf.html#a70">02969</a> <span class="stringliteral">function addDestination($label,$style,$a=0,$b=0,$c=0){</span>
|
||
<a name="l02970"></a>02970 <span class="stringliteral"> // associates the given label with the destination, it is done this way so that a destination can be specified after</span>
|
||
<a name="l02971"></a>02971 <span class="stringliteral"> // it has been linked to</span>
|
||
<a name="l02972"></a>02972 <span class="stringliteral"> // styles are the same as the 'openHere' function</span>
|
||
<a name="l02973"></a>02973 <span class="stringliteral"> $this->numObj++;</span>
|
||
<a name="l02974"></a>02974 <span class="stringliteral"> $this->o_destination($this->numObj,'new',array('page'=>$this->currentPage,'type'=>$style,'p1'=>$a,'p2'=>$b,'p3'=>$c));</span>
|
||
<a name="l02975"></a>02975 <span class="stringliteral"> $id = $this->numObj;</span>
|
||
<a name="l02976"></a>02976 <span class="stringliteral"> // store the label->idf relationship, note that this means that labels can be used only once</span>
|
||
<a name="l02977"></a>02977 <span class="stringliteral"> $this->destinations["</span>$<a class="code" href="action_8inc_8php.html#a7">label</a><span class="stringliteral">"]=$id;</span>
|
||
<a name="l02978"></a>02978 <span class="stringliteral">}</span>
|
||
<a name="l02979"></a>02979 <span class="stringliteral"></span>
|
||
<a name="l02985"></a><a class="code" href="classCpdf.html#a71">02985</a> <span class="stringliteral">function setFontFamily($family,$options=''){</span>
|
||
<a name="l02986"></a>02986 <span class="stringliteral"> if (!is_array($options)){</span>
|
||
<a name="l02987"></a>02987 <span class="stringliteral"> if ($family=='init'){</span>
|
||
<a name="l02988"></a>02988 <span class="stringliteral"> // set the known family groups</span>
|
||
<a name="l02989"></a>02989 <span class="stringliteral"> // these font families will be used to enable bold and italic markers to be included</span>
|
||
<a name="l02990"></a>02990 <span class="stringliteral"> // within text streams. html forms will be used... <b></b> <i></i></span>
|
||
<a name="l02991"></a>02991 <span class="stringliteral"> $this->fontFamilies['Helvetica.afm']=array(</span>
|
||
<a name="l02992"></a>02992 <span class="stringliteral"> 'b'=>'Helvetica-Bold.afm'</span>
|
||
<a name="l02993"></a>02993 <span class="stringliteral"> ,'i'=>'Helvetica-Oblique.afm'</span>
|
||
<a name="l02994"></a>02994 <span class="stringliteral"> ,'bi'=>'Helvetica-BoldOblique.afm'</span>
|
||
<a name="l02995"></a>02995 <span class="stringliteral"> ,'ib'=>'Helvetica-BoldOblique.afm'</span>
|
||
<a name="l02996"></a>02996 <span class="stringliteral"> );</span>
|
||
<a name="l02997"></a>02997 <span class="stringliteral"> $this->fontFamilies['Courier.afm']=array(</span>
|
||
<a name="l02998"></a>02998 <span class="stringliteral"> 'b'=>'Courier-Bold.afm'</span>
|
||
<a name="l02999"></a>02999 <span class="stringliteral"> ,'i'=>'Courier-Oblique.afm'</span>
|
||
<a name="l03000"></a>03000 <span class="stringliteral"> ,'bi'=>'Courier-BoldOblique.afm'</span>
|
||
<a name="l03001"></a>03001 <span class="stringliteral"> ,'ib'=>'Courier-BoldOblique.afm'</span>
|
||
<a name="l03002"></a>03002 <span class="stringliteral"> );</span>
|
||
<a name="l03003"></a>03003 <span class="stringliteral"> $this->fontFamilies['Times-Roman.afm']=array(</span>
|
||
<a name="l03004"></a>03004 <span class="stringliteral"> 'b'=>'Times-Bold.afm'</span>
|
||
<a name="l03005"></a>03005 <span class="stringliteral"> ,'i'=>'Times-Italic.afm'</span>
|
||
<a name="l03006"></a>03006 <span class="stringliteral"> ,'bi'=>'Times-BoldItalic.afm'</span>
|
||
<a name="l03007"></a>03007 <span class="stringliteral"> ,'ib'=>'Times-BoldItalic.afm'</span>
|
||
<a name="l03008"></a>03008 <span class="stringliteral"> );</span>
|
||
<a name="l03009"></a>03009 <span class="stringliteral"> }</span>
|
||
<a name="l03010"></a>03010 <span class="stringliteral"> } else {</span>
|
||
<a name="l03011"></a>03011 <span class="stringliteral"> // the user is trying to set a font family</span>
|
||
<a name="l03012"></a>03012 <span class="stringliteral"> // note that this can also be used to set the base ones to something else</span>
|
||
<a name="l03013"></a>03013 <span class="stringliteral"> if (strlen($family)){</span>
|
||
<a name="l03014"></a>03014 <span class="stringliteral"> $this->fontFamilies[$family] = $options;</span>
|
||
<a name="l03015"></a>03015 <span class="stringliteral"> }</span>
|
||
<a name="l03016"></a>03016 <span class="stringliteral"> }</span>
|
||
<a name="l03017"></a>03017 <span class="stringliteral">}</span>
|
||
<a name="l03018"></a>03018 <span class="stringliteral"></span>
|
||
<a name="l03022"></a><a class="code" href="classCpdf.html#a72">03022</a> <span class="stringliteral">function addMessage($message){</span>
|
||
<a name="l03023"></a>03023 <span class="stringliteral"> $this->messages.=$message."</span>\n<span class="stringliteral">";</span>
|
||
<a name="l03024"></a>03024 <span class="stringliteral">}</span>
|
||
<a name="l03025"></a>03025 <span class="stringliteral"></span>
|
||
<a name="l03029"></a><a class="code" href="classCpdf.html#a73">03029</a> <span class="stringliteral">function transaction($action){</span>
|
||
<a name="l03030"></a>03030 <span class="stringliteral"> switch ($action){</span>
|
||
<a name="l03031"></a>03031 <span class="stringliteral"> case 'start':</span>
|
||
<a name="l03032"></a>03032 <span class="stringliteral"> // store all the data away into the checkpoint variable</span>
|
||
<a name="l03033"></a>03033 <span class="stringliteral"> $data = get_object_vars($this);</span>
|
||
<a name="l03034"></a>03034 <span class="stringliteral"> $this->checkpoint = $data;</span>
|
||
<a name="l03035"></a>03035 <span class="stringliteral"> unset($data);</span>
|
||
<a name="l03036"></a>03036 <span class="stringliteral"> break;</span>
|
||
<a name="l03037"></a>03037 <span class="stringliteral"> case 'commit':</span>
|
||
<a name="l03038"></a>03038 <span class="stringliteral"> if (is_array($this->checkpoint) && isset($this->checkpoint['checkpoint'])){</span>
|
||
<a name="l03039"></a>03039 <span class="stringliteral"> $tmp = $this->checkpoint['checkpoint'];</span>
|
||
<a name="l03040"></a>03040 <span class="stringliteral"> $this->checkpoint = $tmp;</span>
|
||
<a name="l03041"></a>03041 <span class="stringliteral"> unset($tmp);</span>
|
||
<a name="l03042"></a>03042 <span class="stringliteral"> } else {</span>
|
||
<a name="l03043"></a>03043 <span class="stringliteral"> $this->checkpoint='';</span>
|
||
<a name="l03044"></a>03044 <span class="stringliteral"> }</span>
|
||
<a name="l03045"></a>03045 <span class="stringliteral"> break;</span>
|
||
<a name="l03046"></a>03046 <span class="stringliteral"> case 'rewind':</span>
|
||
<a name="l03047"></a>03047 <span class="stringliteral"> // do not destroy the current checkpoint, but move us back to the state then, so that we can try again</span>
|
||
<a name="l03048"></a>03048 <span class="stringliteral"> if (is_array($this->checkpoint)){</span>
|
||
<a name="l03049"></a>03049 <span class="stringliteral"> // can only abort if were inside a checkpoint</span>
|
||
<a name="l03050"></a>03050 <span class="stringliteral"> $tmp = $this->checkpoint;</span>
|
||
<a name="l03051"></a>03051 <span class="stringliteral"> foreach ($tmp as $k=>$v){</span>
|
||
<a name="l03052"></a>03052 <span class="stringliteral"> if ($k != 'checkpoint'){</span>
|
||
<a name="l03053"></a>03053 <span class="stringliteral"> $this->$k=$v;</span>
|
||
<a name="l03054"></a>03054 <span class="stringliteral"> }</span>
|
||
<a name="l03055"></a>03055 <span class="stringliteral"> }</span>
|
||
<a name="l03056"></a>03056 <span class="stringliteral"> unset($tmp);</span>
|
||
<a name="l03057"></a>03057 <span class="stringliteral"> }</span>
|
||
<a name="l03058"></a>03058 <span class="stringliteral"> break;</span>
|
||
<a name="l03059"></a>03059 <span class="stringliteral"> case 'abort':</span>
|
||
<a name="l03060"></a>03060 <span class="stringliteral"> if (is_array($this->checkpoint)){</span>
|
||
<a name="l03061"></a>03061 <span class="stringliteral"> // can only abort if were inside a checkpoint</span>
|
||
<a name="l03062"></a>03062 <span class="stringliteral"> $tmp = $this->checkpoint;</span>
|
||
<a name="l03063"></a>03063 <span class="stringliteral"> foreach ($tmp as $k=>$v){</span>
|
||
<a name="l03064"></a>03064 <span class="stringliteral"> $this->$k=$v;</span>
|
||
<a name="l03065"></a>03065 <span class="stringliteral"> }</span>
|
||
<a name="l03066"></a>03066 <span class="stringliteral"> unset($tmp);</span>
|
||
<a name="l03067"></a>03067 <span class="stringliteral"> }</span>
|
||
<a name="l03068"></a>03068 <span class="stringliteral"> break;</span>
|
||
<a name="l03069"></a>03069 <span class="stringliteral"> }</span>
|
||
<a name="l03070"></a>03070 <span class="stringliteral"></span>
|
||
<a name="l03071"></a>03071 <span class="stringliteral">}</span>
|
||
<a name="l03072"></a>03072 <span class="stringliteral"></span>
|
||
<a name="l03073"></a>03073 <span class="stringliteral">} // end of class</span>
|
||
<a name="l03074"></a>03074 <span class="stringliteral"></span>
|
||
<a name="l03075"></a>03075 <span class="stringliteral">?></span>
|
||
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Jun 26 20:13:14 2006 for phpcompta by
|
||
<a href="http://www.doxygen.org/index.html">
|
||
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
|
||
</body>
|
||
</html>
|