1569 lines
147 KiB
HTML
1569 lines
147 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.ezpdf.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.ezpdf.php</h1><a href="class_8ezpdf_8php.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <?php
|
|
<a name="l00002"></a>00002
|
|
<a name="l00003"></a>00003 include_once('<span class="keyword">class</span>.pdf.php');
|
|
<a name="l00004"></a>00004
|
|
<a name="l00005"></a><a class="code" href="classCezpdf.html">00005</a> <span class="keyword">class </span><a class="code" href="classCezpdf.html">Cezpdf</a> <span class="keyword">extends</span> <a class="code" href="classCpdf.html">Cpdf</a> {
|
|
<a name="l00006"></a>00006 <span class="comment">//==============================================================================</span>
|
|
<a name="l00007"></a>00007 <span class="comment">// this class will take the basic interaction facilities of the Cpdf class</span>
|
|
<a name="l00008"></a>00008 <span class="comment">// and make more useful functions so that the user does not have to </span>
|
|
<a name="l00009"></a>00009 <span class="comment">// know all the ins and outs of pdf presentation to produce something pretty.</span>
|
|
<a name="l00010"></a>00010 <span class="comment">//</span>
|
|
<a name="l00011"></a>00011 <span class="comment">// IMPORTANT NOTE</span>
|
|
<a name="l00012"></a>00012 <span class="comment">// there is no warranty, implied or otherwise with this software.</span>
|
|
<a name="l00013"></a>00013 <span class="comment">// </span>
|
|
<a name="l00014"></a>00014 <span class="comment">// version 009 (versioning is linked to class.pdf.php)</span>
|
|
<a name="l00015"></a>00015 <span class="comment">//</span>
|
|
<a name="l00016"></a>00016 <span class="comment">// released under a public domain licence.</span>
|
|
<a name="l00017"></a>00017 <span class="comment">//</span>
|
|
<a name="l00018"></a>00018 <span class="comment">// Wayne Munro, R&OS Ltd, http://www.ros.co.nz/pdf</span>
|
|
<a name="l00019"></a>00019 <span class="comment">//==============================================================================</span>
|
|
<a name="l00020"></a>00020
|
|
<a name="l00021"></a><a class="code" href="classCezpdf.html#o0">00021</a> var <a class="code" href="classCezpdf.html#o0">$ez</a>=array('fontSize'=>10); <span class="comment">// used for storing most of the page configuration parameters</span>
|
|
<a name="l00022"></a><a class="code" href="classCezpdf.html#o1">00022</a> var <a class="code" href="classCezpdf.html#o1">$y</a>; <span class="comment">// this is the current vertical positon on the page of the writing point, very important</span>
|
|
<a name="l00023"></a><a class="code" href="classCezpdf.html#o2">00023</a> var <a class="code" href="classCezpdf.html#o2">$ezPages</a>=array(); <span class="comment">// keep an array of the ids of the pages, making it easy to go back and add page numbers etc.</span>
|
|
<a name="l00024"></a><a class="code" href="classCezpdf.html#o3">00024</a> var <a class="code" href="classCezpdf.html#o3">$ezPageCount</a>=0;
|
|
<a name="l00025"></a>00025
|
|
<a name="l00026"></a>00026 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l00027"></a>00027
|
|
<a name="l00028"></a><a class="code" href="classCezpdf.html#a0">00028</a> function <a class="code" href="classCezpdf.html#a0">Cezpdf</a>($paper='a4',$orientation='portrait'){
|
|
<a name="l00029"></a>00029 <span class="comment">// Assuming that people don't want to specify the paper size using the absolute coordinates</span>
|
|
<a name="l00030"></a>00030 <span class="comment">// allow a couple of options:</span>
|
|
<a name="l00031"></a>00031 <span class="comment">// orientation can be 'portrait' or 'landscape'</span>
|
|
<a name="l00032"></a>00032 <span class="comment">// or, to actually set the coordinates, then pass an array in as the first parameter.</span>
|
|
<a name="l00033"></a>00033 <span class="comment">// the defaults are as shown.</span>
|
|
<a name="l00034"></a>00034 <span class="comment">// </span>
|
|
<a name="l00035"></a>00035 <span class="comment">// -------------------------</span>
|
|
<a name="l00036"></a>00036 <span class="comment">// 2002-07-24 - Nicola Asuni (info@tecnick.com):</span>
|
|
<a name="l00037"></a>00037 <span class="comment">// Added new page formats (45 standard ISO paper formats and 4 american common formats)</span>
|
|
<a name="l00038"></a>00038 <span class="comment">// paper cordinates are calculated in this way: (inches * 72) where 1 inch = 2.54 cm</span>
|
|
<a name="l00039"></a>00039 <span class="comment">// </span>
|
|
<a name="l00040"></a>00040 <span class="comment">// Now you may also pass a 2 values array containing the page width and height in centimeters</span>
|
|
<a name="l00041"></a>00041 <span class="comment">// -------------------------</span>
|
|
<a name="l00042"></a>00042
|
|
<a name="l00043"></a>00043 <span class="keywordflow">if</span> (!is_array($paper)){
|
|
<a name="l00044"></a>00044 <span class="keywordflow">switch</span> (strtoupper($paper)){
|
|
<a name="l00045"></a>00045 <span class="keywordflow">case</span> '4A0': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,4767.87,6740.79); <span class="keywordflow">break</span>;}
|
|
<a name="l00046"></a>00046 <span class="keywordflow">case</span> '2A0': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,3370.39,4767.87); <span class="keywordflow">break</span>;}
|
|
<a name="l00047"></a>00047 <span class="keywordflow">case</span> 'A0': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,2383.94,3370.39); <span class="keywordflow">break</span>;}
|
|
<a name="l00048"></a>00048 <span class="keywordflow">case</span> 'A1': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,1683.78,2383.94); <span class="keywordflow">break</span>;}
|
|
<a name="l00049"></a>00049 <span class="keywordflow">case</span> 'A2': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,1190.55,1683.78); <span class="keywordflow">break</span>;}
|
|
<a name="l00050"></a>00050 <span class="keywordflow">case</span> 'A3': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,841.89,1190.55); <span class="keywordflow">break</span>;}
|
|
<a name="l00051"></a>00051 <span class="keywordflow">case</span> 'A4': <span class="keywordflow">default</span>: {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,595.28,841.89); <span class="keywordflow">break</span>;}
|
|
<a name="l00052"></a>00052 <span class="keywordflow">case</span> 'A5': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,419.53,595.28); <span class="keywordflow">break</span>;}
|
|
<a name="l00053"></a>00053 <span class="keywordflow">case</span> 'A6': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,297.64,419.53); <span class="keywordflow">break</span>;}
|
|
<a name="l00054"></a>00054 <span class="keywordflow">case</span> 'A7': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,209.76,297.64); <span class="keywordflow">break</span>;}
|
|
<a name="l00055"></a>00055 <span class="keywordflow">case</span> 'A8': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,147.40,209.76); <span class="keywordflow">break</span>;}
|
|
<a name="l00056"></a>00056 <span class="keywordflow">case</span> 'A9': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,104.88,147.40); <span class="keywordflow">break</span>;}
|
|
<a name="l00057"></a>00057 <span class="keywordflow">case</span> 'A10': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,73.70,104.88); <span class="keywordflow">break</span>;}
|
|
<a name="l00058"></a>00058 <span class="keywordflow">case</span> 'B0': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,2834.65,4008.19); <span class="keywordflow">break</span>;}
|
|
<a name="l00059"></a>00059 <span class="keywordflow">case</span> 'B1': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,2004.09,2834.65); <span class="keywordflow">break</span>;}
|
|
<a name="l00060"></a>00060 <span class="keywordflow">case</span> 'B2': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,1417.32,2004.09); <span class="keywordflow">break</span>;}
|
|
<a name="l00061"></a>00061 <span class="keywordflow">case</span> 'B3': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,1000.63,1417.32); <span class="keywordflow">break</span>;}
|
|
<a name="l00062"></a>00062 <span class="keywordflow">case</span> 'B4': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,708.66,1000.63); <span class="keywordflow">break</span>;}
|
|
<a name="l00063"></a>00063 <span class="keywordflow">case</span> 'B5': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,498.90,708.66); <span class="keywordflow">break</span>;}
|
|
<a name="l00064"></a>00064 <span class="keywordflow">case</span> 'B6': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,354.33,498.90); <span class="keywordflow">break</span>;}
|
|
<a name="l00065"></a>00065 <span class="keywordflow">case</span> 'B7': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,249.45,354.33); <span class="keywordflow">break</span>;}
|
|
<a name="l00066"></a>00066 <span class="keywordflow">case</span> 'B8': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,175.75,249.45); <span class="keywordflow">break</span>;}
|
|
<a name="l00067"></a>00067 <span class="keywordflow">case</span> 'B9': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,124.72,175.75); <span class="keywordflow">break</span>;}
|
|
<a name="l00068"></a>00068 <span class="keywordflow">case</span> 'B10': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,87.87,124.72); <span class="keywordflow">break</span>;}
|
|
<a name="l00069"></a>00069 <span class="keywordflow">case</span> 'C0': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,2599.37,3676.54); <span class="keywordflow">break</span>;}
|
|
<a name="l00070"></a>00070 <span class="keywordflow">case</span> 'C1': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,1836.85,2599.37); <span class="keywordflow">break</span>;}
|
|
<a name="l00071"></a>00071 <span class="keywordflow">case</span> 'C2': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,1298.27,1836.85); <span class="keywordflow">break</span>;}
|
|
<a name="l00072"></a>00072 <span class="keywordflow">case</span> 'C3': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,918.43,1298.27); <span class="keywordflow">break</span>;}
|
|
<a name="l00073"></a>00073 <span class="keywordflow">case</span> 'C4': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,649.13,918.43); <span class="keywordflow">break</span>;}
|
|
<a name="l00074"></a>00074 <span class="keywordflow">case</span> 'C5': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,459.21,649.13); <span class="keywordflow">break</span>;}
|
|
<a name="l00075"></a>00075 <span class="keywordflow">case</span> 'C6': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,323.15,459.21); <span class="keywordflow">break</span>;}
|
|
<a name="l00076"></a>00076 <span class="keywordflow">case</span> 'C7': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,229.61,323.15); <span class="keywordflow">break</span>;}
|
|
<a name="l00077"></a>00077 <span class="keywordflow">case</span> 'C8': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,161.57,229.61); <span class="keywordflow">break</span>;}
|
|
<a name="l00078"></a>00078 <span class="keywordflow">case</span> 'C9': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,113.39,161.57); <span class="keywordflow">break</span>;}
|
|
<a name="l00079"></a>00079 <span class="keywordflow">case</span> 'C10': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,79.37,113.39); <span class="keywordflow">break</span>;}
|
|
<a name="l00080"></a>00080 <span class="keywordflow">case</span> 'RA0': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,2437.80,3458.27); <span class="keywordflow">break</span>;}
|
|
<a name="l00081"></a>00081 <span class="keywordflow">case</span> 'RA1': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,1729.13,2437.80); <span class="keywordflow">break</span>;}
|
|
<a name="l00082"></a>00082 <span class="keywordflow">case</span> 'RA2': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,1218.90,1729.13); <span class="keywordflow">break</span>;}
|
|
<a name="l00083"></a>00083 <span class="keywordflow">case</span> 'RA3': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,864.57,1218.90); <span class="keywordflow">break</span>;}
|
|
<a name="l00084"></a>00084 <span class="keywordflow">case</span> 'RA4': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,609.45,864.57); <span class="keywordflow">break</span>;}
|
|
<a name="l00085"></a>00085 <span class="keywordflow">case</span> 'SRA0': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,2551.18,3628.35); <span class="keywordflow">break</span>;}
|
|
<a name="l00086"></a>00086 <span class="keywordflow">case</span> 'SRA1': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,1814.17,2551.18); <span class="keywordflow">break</span>;}
|
|
<a name="l00087"></a>00087 <span class="keywordflow">case</span> 'SRA2': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,1275.59,1814.17); <span class="keywordflow">break</span>;}
|
|
<a name="l00088"></a>00088 <span class="keywordflow">case</span> 'SRA3': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,907.09,1275.59); <span class="keywordflow">break</span>;}
|
|
<a name="l00089"></a>00089 <span class="keywordflow">case</span> 'SRA4': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,637.80,907.09); <span class="keywordflow">break</span>;}
|
|
<a name="l00090"></a>00090 <span class="keywordflow">case</span> 'LETTER': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,612.00,792.00); <span class="keywordflow">break</span>;}
|
|
<a name="l00091"></a>00091 <span class="keywordflow">case</span> 'LEGAL': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,612.00,1008.00); <span class="keywordflow">break</span>;}
|
|
<a name="l00092"></a>00092 <span class="keywordflow">case</span> 'EXECUTIVE': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,521.86,756.00); <span class="keywordflow">break</span>;}
|
|
<a name="l00093"></a>00093 <span class="keywordflow">case</span> 'FOLIO': {<a class="code" href="readme_8php.html#a8">$size</a> = array(0,0,612.00,936.00); <span class="keywordflow">break</span>;}
|
|
<a name="l00094"></a>00094 }
|
|
<a name="l00095"></a>00095 <span class="keywordflow">switch</span> (strtolower($orientation)){
|
|
<a name="l00096"></a>00096 <span class="keywordflow">case</span> 'landscape':
|
|
<a name="l00097"></a>00097 <a class="code" href="balance_8php.html#a9">$a</a>=<a class="code" href="readme_8php.html#a8">$size</a>[3];
|
|
<a name="l00098"></a>00098 <a class="code" href="readme_8php.html#a8">$size</a>[3]=<a class="code" href="readme_8php.html#a8">$size</a>[2];
|
|
<a name="l00099"></a>00099 <a class="code" href="readme_8php.html#a8">$size</a>[2]=<a class="code" href="balance_8php.html#a9">$a</a>;
|
|
<a name="l00100"></a>00100 <span class="keywordflow">break</span>;
|
|
<a name="l00101"></a>00101 }
|
|
<a name="l00102"></a>00102 } <span class="keywordflow">else</span> {
|
|
<a name="l00103"></a>00103 <span class="keywordflow">if</span> (count($paper)>2) {
|
|
<a name="l00104"></a>00104 <span class="comment">// then an array was sent it to set the size</span>
|
|
<a name="l00105"></a>00105 <a class="code" href="readme_8php.html#a8">$size</a> = $paper;
|
|
<a name="l00106"></a>00106 }
|
|
<a name="l00107"></a>00107 <span class="keywordflow">else</span> { <span class="comment">//size in centimeters has been passed</span>
|
|
<a name="l00108"></a>00108 <a class="code" href="readme_8php.html#a8">$size</a>[0] = 0;
|
|
<a name="l00109"></a>00109 <a class="code" href="readme_8php.html#a8">$size</a>[1] = 0;
|
|
<a name="l00110"></a>00110 <a class="code" href="readme_8php.html#a8">$size</a>[2] = ( $paper[0] / 2.54 ) * 72;
|
|
<a name="l00111"></a>00111 <a class="code" href="readme_8php.html#a8">$size</a>[3] = ( $paper[1] / 2.54 ) * 72;
|
|
<a name="l00112"></a>00112 }
|
|
<a name="l00113"></a>00113 }
|
|
<a name="l00114"></a>00114 $this-><a class="code" href="classCpdf.html#a0">Cpdf</a>($<a class="code" href="tva_8inc_8php.html#a15">size</a>);
|
|
<a name="l00115"></a>00115 $this->ez['pageWidth']=<a class="code" href="readme_8php.html#a8">$size</a>[2];
|
|
<a name="l00116"></a>00116 $this->ez['pageHeight']=<a class="code" href="readme_8php.html#a8">$size</a>[3];
|
|
<a name="l00117"></a>00117
|
|
<a name="l00118"></a>00118 <span class="comment">// also set the margins to some reasonable defaults</span>
|
|
<a name="l00119"></a>00119 $this->ez['topMargin']=30;
|
|
<a name="l00120"></a>00120 $this->ez['bottomMargin']=30;
|
|
<a name="l00121"></a>00121 $this->ez['leftMargin']=30;
|
|
<a name="l00122"></a>00122 $this->ez['rightMargin']=30;
|
|
<a name="l00123"></a>00123
|
|
<a name="l00124"></a>00124 <span class="comment">// set the current writing position to the top of the first page</span>
|
|
<a name="l00125"></a>00125 $this->y = $this->ez['pageHeight']-$this->ez['topMargin'];
|
|
<a name="l00126"></a>00126 <span class="comment">// and get the ID of the page that was created during the instancing process.</span>
|
|
<a name="l00127"></a>00127 $this->ezPages[1]=$this-><a class="code" href="classCpdf.html#a30">getFirstPageId</a>();
|
|
<a name="l00128"></a>00128 $this->ezPageCount=1;
|
|
<a name="l00129"></a>00129 }
|
|
<a name="l00130"></a>00130
|
|
<a name="l00131"></a>00131 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l00132"></a>00132 <span class="comment">// 2002-07-24: Nicola Asuni (info@tecnick.com)</span>
|
|
<a name="l00133"></a>00133 <span class="comment">// Set Margins in centimeters</span>
|
|
<a name="l00134"></a><a class="code" href="classCezpdf.html#a1">00134</a> function <a class="code" href="classCezpdf.html#a1">ezSetCmMargins</a>($top,$bottom,$left,$right){
|
|
<a name="l00135"></a>00135 $top = ( $top / 2.54 ) * 72;
|
|
<a name="l00136"></a>00136 $bottom = ( $bottom / 2.54 ) * 72;
|
|
<a name="l00137"></a>00137 $left = ( $left / 2.54 ) * 72;
|
|
<a name="l00138"></a>00138 <a class="code" href="user__sec_8php.html#a15">$right</a> = ( <a class="code" href="user__sec_8php.html#a15">$right</a> / 2.54 ) * 72;
|
|
<a name="l00139"></a>00139 $this-><a class="code" href="classCezpdf.html#a6">ezSetMargins</a>($top,$bottom,$left,$right);
|
|
<a name="l00140"></a>00140 }
|
|
<a name="l00141"></a>00141 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l00142"></a>00142
|
|
<a name="l00143"></a>00143
|
|
<a name="l00144"></a><a class="code" href="classCezpdf.html#a2">00144</a> function <a class="code" href="classCezpdf.html#a2">ezColumnsStart</a>($options=array()){
|
|
<a name="l00145"></a>00145 <span class="comment">// start from the current y-position, make the set number of columne</span>
|
|
<a name="l00146"></a>00146 <span class="keywordflow">if</span> (isset($this->ez['columns']) && $this->ez['columns']==1){
|
|
<a name="l00147"></a>00147 <span class="comment">// if we are already in a column mode then just return.</span>
|
|
<a name="l00148"></a>00148 <span class="keywordflow">return</span>;
|
|
<a name="l00149"></a>00149 }
|
|
<a name="l00150"></a>00150 $def=array('gap'=>10,'num'=>2);
|
|
<a name="l00151"></a>00151 foreach($def as $k=>$v){
|
|
<a name="l00152"></a>00152 <span class="keywordflow">if</span> (!isset($options[$k])){
|
|
<a name="l00153"></a>00153 <a class="code" href="classCpdf.html#o23">$options</a>[$k]=$v;
|
|
<a name="l00154"></a>00154 }
|
|
<a name="l00155"></a>00155 }
|
|
<a name="l00156"></a>00156 <span class="comment">// setup the columns</span>
|
|
<a name="l00157"></a>00157 $this->ez['columns']=array('on'=>1,'colNum'=>1);
|
|
<a name="l00158"></a>00158
|
|
<a name="l00159"></a>00159 <span class="comment">// store the current margins</span>
|
|
<a name="l00160"></a>00160 $this->ez['columns']['margins']=array(
|
|
<a name="l00161"></a>00161 $this->ez['leftMargin']
|
|
<a name="l00162"></a>00162 ,$this->ez['rightMargin']
|
|
<a name="l00163"></a>00163 ,$this->ez['topMargin']
|
|
<a name="l00164"></a>00164 ,$this->ez['bottomMargin']
|
|
<a name="l00165"></a>00165 );
|
|
<a name="l00166"></a>00166 <span class="comment">// and store the settings for the columns</span>
|
|
<a name="l00167"></a>00167 $this->ez['columns']['options']=<a class="code" href="classCpdf.html#o23">$options</a>;
|
|
<a name="l00168"></a>00168 <span class="comment">// then reset the margins to suit the new columns</span>
|
|
<a name="l00169"></a>00169 <span class="comment">// safe enough to assume the first column here, but start from the current y-position</span>
|
|
<a name="l00170"></a>00170 $this->ez['topMargin']=$this->ez['pageHeight']-$this->y;
|
|
<a name="l00171"></a>00171 $width=($this->ez['pageWidth']-$this->ez['leftMargin']-$this->ez['rightMargin']-(<a class="code" href="classCpdf.html#o23">$options</a>['num']-1)*<a class="code" href="classCpdf.html#o23">$options</a>['gap'])/<a class="code" href="classCpdf.html#o23">$options</a>['num'];
|
|
<a name="l00172"></a>00172 $this->ez['columns']['<a class="code" href="tva_8inc_8php.html#a17">width</a>']=$width;
|
|
<a name="l00173"></a>00173 $this->ez['rightMargin']=$this->ez['pageWidth']-$this->ez['leftMargin']-$width;
|
|
<a name="l00174"></a>00174
|
|
<a name="l00175"></a>00175 }
|
|
<a name="l00176"></a>00176 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l00177"></a><a class="code" href="classCezpdf.html#a3">00177</a> function <a class="code" href="classCezpdf.html#a3">ezColumnsStop</a>(){
|
|
<a name="l00178"></a>00178 <span class="keywordflow">if</span> (isset($this->ez['columns']) && $this->ez['columns']['on']==1){
|
|
<a name="l00179"></a>00179 $this->ez['columns']['on']=0;
|
|
<a name="l00180"></a>00180 $this->ez['leftMargin']=$this->ez['columns']['margins'][0];
|
|
<a name="l00181"></a>00181 $this->ez['rightMargin']=$this->ez['columns']['margins'][1];
|
|
<a name="l00182"></a>00182 $this->ez['topMargin']=$this->ez['columns']['margins'][2];
|
|
<a name="l00183"></a>00183 $this->ez['bottomMargin']=$this->ez['columns']['margins'][3];
|
|
<a name="l00184"></a>00184 }
|
|
<a name="l00185"></a>00185 }
|
|
<a name="l00186"></a>00186 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l00187"></a><a class="code" href="classCezpdf.html#a4">00187</a> function <a class="code" href="classCezpdf.html#a4">ezInsertMode</a>($status=1,$pageNum=1,$pos='before'){
|
|
<a name="l00188"></a>00188 <span class="comment">// puts the document into insert mode. new pages are inserted until this is re-called with status=0</span>
|
|
<a name="l00189"></a>00189 <span class="comment">// by default pages wil be inserted at the start of the document</span>
|
|
<a name="l00190"></a>00190 <span class="keywordflow">switch</span>($status){
|
|
<a name="l00191"></a>00191 <span class="keywordflow">case</span> <span class="charliteral">'1'</span>:
|
|
<a name="l00192"></a>00192 <span class="keywordflow">if</span> (isset($this->ezPages[$pageNum])){
|
|
<a name="l00193"></a>00193 $this->ez['insertMode']=1;
|
|
<a name="l00194"></a>00194 $this->ez['insertOptions']=array('<span class="keywordtype">id</span>'=>$this->ezPages[$pageNum],'pos'=>$pos);
|
|
<a name="l00195"></a>00195 }
|
|
<a name="l00196"></a>00196 <span class="keywordflow">break</span>;
|
|
<a name="l00197"></a>00197 <span class="keywordflow">case</span> <span class="charliteral">'0'</span>:
|
|
<a name="l00198"></a>00198 $this->ez['insertMode']=0;
|
|
<a name="l00199"></a>00199 <span class="keywordflow">break</span>;
|
|
<a name="l00200"></a>00200 }
|
|
<a name="l00201"></a>00201 }
|
|
<a name="l00202"></a>00202 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l00203"></a>00203
|
|
<a name="l00204"></a><a class="code" href="classCezpdf.html#a5">00204</a> function <a class="code" href="classCezpdf.html#a5">ezNewPage</a>(){
|
|
<a name="l00205"></a>00205 $pageRequired=1;
|
|
<a name="l00206"></a>00206 <span class="keywordflow">if</span> (isset($this->ez['columns']) && $this->ez['columns']['on']==1){
|
|
<a name="l00207"></a>00207 <span class="comment">// check if this is just going to a new column</span>
|
|
<a name="l00208"></a>00208 <span class="comment">// increment the column number</span>
|
|
<a name="l00209"></a>00209 <span class="comment">//echo 'HERE<br>';</span>
|
|
<a name="l00210"></a>00210 $this->ez['columns']['colNum']++;
|
|
<a name="l00211"></a>00211 <span class="comment">//echo $this->ez['columns']['colNum'].'<br>';</span>
|
|
<a name="l00212"></a>00212 <span class="keywordflow">if</span> ($this->ez['columns']['colNum'] <= $this->ez['columns']['options']['num']){
|
|
<a name="l00213"></a>00213 <span class="comment">// then just reset to the top of the next column</span>
|
|
<a name="l00214"></a>00214 $pageRequired=0;
|
|
<a name="l00215"></a>00215 } <span class="keywordflow">else</span> {
|
|
<a name="l00216"></a>00216 $this->ez['columns']['colNum']=1;
|
|
<a name="l00217"></a>00217 $this->ez['topMargin']=$this->ez['columns']['margins'][2];
|
|
<a name="l00218"></a>00218 }
|
|
<a name="l00219"></a>00219
|
|
<a name="l00220"></a>00220 $width = $this->ez['columns']['<a class="code" href="tva_8inc_8php.html#a17">width</a>'];
|
|
<a name="l00221"></a>00221 $this->ez['leftMargin']=$this->ez['columns']['margins'][0]+($this->ez['columns']['colNum']-1)*($this->ez['columns']['options']['gap']+$width);
|
|
<a name="l00222"></a>00222 $this->ez['rightMargin']=$this->ez['pageWidth']-$this->ez['leftMargin']-$width;
|
|
<a name="l00223"></a>00223 }
|
|
<a name="l00224"></a>00224 <span class="comment">//echo 'left='.$this->ez['leftMargin'].' right='.$this->ez['rightMargin'].'<br>';</span>
|
|
<a name="l00225"></a>00225
|
|
<a name="l00226"></a>00226 <span class="keywordflow">if</span> ($pageRequired){
|
|
<a name="l00227"></a>00227 <span class="comment">// make a new page, setting the writing point back to the top</span>
|
|
<a name="l00228"></a>00228 $this->y = $this->ez['pageHeight']-$this->ez['topMargin'];
|
|
<a name="l00229"></a>00229 <span class="comment">// make the new page with a call to the basic class.</span>
|
|
<a name="l00230"></a>00230 $this->ezPageCount++;
|
|
<a name="l00231"></a>00231 <span class="keywordflow">if</span> (isset($this->ez['insertMode']) && $this->ez['insertMode']==1){
|
|
<a name="l00232"></a>00232 $id = $this->ezPages[$this->ezPageCount] = $this-><a class="code" href="classCpdf.html#a43">newPage</a>(1,$this->ez['insertOptions']['<span class="keywordtype">id</span>'],$this->ez['insertOptions']['pos']);
|
|
<a name="l00233"></a>00233 <span class="comment">// then manipulate the insert options so that inserted pages follow each other</span>
|
|
<a name="l00234"></a>00234 $this->ez['insertOptions']['<span class="keywordtype">id</span>']=$id;
|
|
<a name="l00235"></a>00235 $this->ez['insertOptions']['pos']='after';
|
|
<a name="l00236"></a>00236 } <span class="keywordflow">else</span> {
|
|
<a name="l00237"></a>00237 $this->ezPages[$this->ezPageCount] = $this-><a class="code" href="classCpdf.html#a43">newPage</a>();
|
|
<a name="l00238"></a>00238 }
|
|
<a name="l00239"></a>00239 } <span class="keywordflow">else</span> {
|
|
<a name="l00240"></a>00240 $this->y = $this->ez['pageHeight']-$this->ez['topMargin'];
|
|
<a name="l00241"></a>00241 }
|
|
<a name="l00242"></a>00242 }
|
|
<a name="l00243"></a>00243
|
|
<a name="l00244"></a>00244 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l00245"></a>00245
|
|
<a name="l00246"></a><a class="code" href="classCezpdf.html#a6">00246</a> function <a class="code" href="classCezpdf.html#a6">ezSetMargins</a>($top,$bottom,$left,$right){
|
|
<a name="l00247"></a>00247 <span class="comment">// sets the margins to new values</span>
|
|
<a name="l00248"></a>00248 $this->ez['topMargin']=$top;
|
|
<a name="l00249"></a>00249 $this->ez['bottomMargin']=$bottom;
|
|
<a name="l00250"></a>00250 $this->ez['leftMargin']=$left;
|
|
<a name="l00251"></a>00251 $this->ez['rightMargin']=<a class="code" href="user__sec_8php.html#a15">$right</a>;
|
|
<a name="l00252"></a>00252 <span class="comment">// check to see if this means that the current writing position is outside the </span>
|
|
<a name="l00253"></a>00253 <span class="comment">// writable area</span>
|
|
<a name="l00254"></a>00254 <span class="keywordflow">if</span> ($this->y > $this->ez['pageHeight']-$top){
|
|
<a name="l00255"></a>00255 <span class="comment">// then move y down</span>
|
|
<a name="l00256"></a>00256 $this->y = $this->ez['pageHeight']-$top;
|
|
<a name="l00257"></a>00257 }
|
|
<a name="l00258"></a>00258 <span class="keywordflow">if</span> ( $this->y < $bottom){
|
|
<a name="l00259"></a>00259 <span class="comment">// then make a new page</span>
|
|
<a name="l00260"></a>00260 $this-><a class="code" href="classCezpdf.html#a5">ezNewPage</a>();
|
|
<a name="l00261"></a>00261 }
|
|
<a name="l00262"></a>00262 }
|
|
<a name="l00263"></a>00263
|
|
<a name="l00264"></a>00264 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l00265"></a>00265
|
|
<a name="l00266"></a><a class="code" href="classCezpdf.html#a7">00266</a> function <a class="code" href="classCezpdf.html#a7">ezGetCurrentPageNumber</a>(){
|
|
<a name="l00267"></a>00267 <span class="comment">// return the strict numbering (1,2,3,4..) number of the current page</span>
|
|
<a name="l00268"></a>00268 <span class="keywordflow">return</span> $this->ezPageCount;
|
|
<a name="l00269"></a>00269 }
|
|
<a name="l00270"></a>00270
|
|
<a name="l00271"></a>00271 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l00272"></a>00272
|
|
<a name="l00273"></a><a class="code" href="classCezpdf.html#a8">00273</a> function <a class="code" href="classCezpdf.html#a8">ezStartPageNumbers</a>($x,$y,$<a class="code" href="tva_8inc_8php.html#a15">size</a>,$pos='left',$pattern='{PAGENUM} of {TOTALPAGENUM}',$num=''){
|
|
<a name="l00274"></a>00274 <span class="comment">// put page numbers on the pages from here.</span>
|
|
<a name="l00275"></a>00275 <span class="comment">// place then on the 'pos' side of the coordinates (x,y).</span>
|
|
<a name="l00276"></a>00276 <span class="comment">// pos can be 'left' or 'right'</span>
|
|
<a name="l00277"></a>00277 <span class="comment">// use the given 'pattern' for display, where (PAGENUM} and {TOTALPAGENUM} are replaced</span>
|
|
<a name="l00278"></a>00278 <span class="comment">// as required.</span>
|
|
<a name="l00279"></a>00279 <span class="comment">// if $num is set, then make the first page this number, the number of total pages will</span>
|
|
<a name="l00280"></a>00280 <span class="comment">// be adjusted to account for this.</span>
|
|
<a name="l00281"></a>00281 <span class="comment">// Adjust this function so that each time you 'start' page numbers then you effectively start a different batch</span>
|
|
<a name="l00282"></a>00282 <span class="comment">// return the number of the batch, so that they can be stopped in a different order if required.</span>
|
|
<a name="l00283"></a>00283 <span class="keywordflow">if</span> (!$pos || !strlen($pos)){
|
|
<a name="l00284"></a>00284 $pos='left';
|
|
<a name="l00285"></a>00285 }
|
|
<a name="l00286"></a>00286 <span class="keywordflow">if</span> (!$pattern || !strlen($pattern)){
|
|
<a name="l00287"></a>00287 $pattern='{PAGENUM} of {TOTALPAGENUM}';
|
|
<a name="l00288"></a>00288 }
|
|
<a name="l00289"></a>00289 <span class="keywordflow">if</span> (!isset($this->ez['pageNumbering'])){
|
|
<a name="l00290"></a>00290 $this->ez['pageNumbering']=array();
|
|
<a name="l00291"></a>00291 }
|
|
<a name="l00292"></a>00292 <a class="code" href="balance_8php.html#a11">$i</a> = count($this->ez['pageNumbering']);
|
|
<a name="l00293"></a>00293 $this->ez['pageNumbering'][<a class="code" href="balance_8php.html#a11">$i</a>][$this->ezPageCount]=array(<span class="charliteral">'x'</span>=>$x,<span class="charliteral">'y'</span>=>$y,'pos'=>$pos,'pattern'=>$pattern,'num'=>$num,'<a class="code" href="tva_8inc_8php.html#a15">size</a>'=>$<a class="code" href="tva_8inc_8php.html#a15">size</a>);
|
|
<a name="l00294"></a>00294 <span class="keywordflow">return</span> <a class="code" href="balance_8php.html#a11">$i</a>;
|
|
<a name="l00295"></a>00295 }
|
|
<a name="l00296"></a>00296
|
|
<a name="l00297"></a>00297 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l00298"></a>00298
|
|
<a name="l00299"></a><a class="code" href="classCezpdf.html#a9">00299</a> function <a class="code" href="classCezpdf.html#a9">ezWhatPageNumber</a>($pageNum,$i=0){
|
|
<a name="l00300"></a>00300 <span class="comment">// given a particular generic page number (ie, document numbered sequentially from beginning),</span>
|
|
<a name="l00301"></a>00301 <span class="comment">// return the page number under a particular page numbering scheme ($i)</span>
|
|
<a name="l00302"></a>00302 <a class="code" href="jrn__add_8php.html#a17">$num</a>=0;
|
|
<a name="l00303"></a>00303 <a class="code" href="bilan_8php.html#a2">$start</a>=1;
|
|
<a name="l00304"></a>00304 $startNum=1;
|
|
<a name="l00305"></a>00305 <span class="keywordflow">if</span> (!isset($this->ez['pageNumbering']))
|
|
<a name="l00306"></a>00306 {
|
|
<a name="l00307"></a>00307 $this-><a class="code" href="classCpdf.html#a72">addMessage</a>('WARNING: page numbering called <span class="keywordflow">for</span> and wasn\'t started with <a class="code" href="classCezpdf.html#a8">ezStartPageNumbers</a>');
|
|
<a name="l00308"></a>00308 <span class="keywordflow">return</span> 0;
|
|
<a name="l00309"></a>00309 }
|
|
<a name="l00310"></a>00310 foreach($this->ez['pageNumbering'][$i] as $k=>$v){
|
|
<a name="l00311"></a>00311 <span class="keywordflow">if</span> ($k<=$pageNum){
|
|
<a name="l00312"></a>00312 <span class="keywordflow">if</span> (is_array($v)){
|
|
<a name="l00313"></a>00313 <span class="comment">// start block</span>
|
|
<a name="l00314"></a>00314 <span class="keywordflow">if</span> (strlen($v['num'])){
|
|
<a name="l00315"></a>00315 <span class="comment">// a start was specified</span>
|
|
<a name="l00316"></a>00316 <a class="code" href="bilan_8php.html#a2">$start</a>=$v['num'];
|
|
<a name="l00317"></a>00317 $startNum=$k;
|
|
<a name="l00318"></a>00318 <a class="code" href="jrn__add_8php.html#a17">$num</a>=$pageNum-$startNum+<a class="code" href="bilan_8php.html#a2">$start</a>;
|
|
<a name="l00319"></a>00319 }
|
|
<a name="l00320"></a>00320 } <span class="keywordflow">else</span> {
|
|
<a name="l00321"></a>00321 <span class="comment">// stop block</span>
|
|
<a name="l00322"></a>00322 <a class="code" href="jrn__add_8php.html#a17">$num</a>=0;
|
|
<a name="l00323"></a>00323 }
|
|
<a name="l00324"></a>00324 }
|
|
<a name="l00325"></a>00325 }
|
|
<a name="l00326"></a>00326 <span class="keywordflow">return</span> <a class="code" href="jrn__add_8php.html#a17">$num</a>;
|
|
<a name="l00327"></a>00327 }
|
|
<a name="l00328"></a>00328
|
|
<a name="l00329"></a>00329 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l00330"></a>00330
|
|
<a name="l00331"></a><a class="code" href="classCezpdf.html#a10">00331</a> function <a class="code" href="classCezpdf.html#a10">ezStopPageNumbers</a>($stopTotal=0,$next=0,$i=0){
|
|
<a name="l00332"></a>00332 <span class="comment">// if stopTotal=1 then the totalling of pages for this number will stop too</span>
|
|
<a name="l00333"></a>00333 <span class="comment">// if $next=1, then do this page, but not the next, else do not do this page either</span>
|
|
<a name="l00334"></a>00334 <span class="comment">// if $i is set, then stop that particular pagenumbering sequence.</span>
|
|
<a name="l00335"></a>00335 <span class="keywordflow">if</span> (!isset($this->ez['pageNumbering'])){
|
|
<a name="l00336"></a>00336 $this->ez['pageNumbering']=array();
|
|
<a name="l00337"></a>00337 }
|
|
<a name="l00338"></a>00338 <span class="keywordflow">if</span> ($next && isset($this->ez['pageNumbering'][$i][$this->ezPageCount]) && is_array($this->ez['pageNumbering'][$i][$this->ezPageCount])){
|
|
<a name="l00339"></a>00339 <span class="comment">// then this has only just been started, this will over-write the start, and nothing will appear</span>
|
|
<a name="l00340"></a>00340 <span class="comment">// add a special command to the start block, telling it to stop as well</span>
|
|
<a name="l00341"></a>00341 <span class="keywordflow">if</span> ($stopTotal){
|
|
<a name="l00342"></a>00342 $this->ez['pageNumbering'][<a class="code" href="balance_8php.html#a11">$i</a>][$this->ezPageCount]['stoptn']=1;
|
|
<a name="l00343"></a>00343 } <span class="keywordflow">else</span> {
|
|
<a name="l00344"></a>00344 $this->ez['pageNumbering'][<a class="code" href="balance_8php.html#a11">$i</a>][$this->ezPageCount]['stopn']=1;
|
|
<a name="l00345"></a>00345 }
|
|
<a name="l00346"></a>00346 } <span class="keywordflow">else</span> {
|
|
<a name="l00347"></a>00347 <span class="keywordflow">if</span> ($stopTotal){
|
|
<a name="l00348"></a>00348 $this->ez['pageNumbering'][<a class="code" href="balance_8php.html#a11">$i</a>][$this->ezPageCount]='stopt';
|
|
<a name="l00349"></a>00349 } <span class="keywordflow">else</span> {
|
|
<a name="l00350"></a>00350 $this->ez['pageNumbering'][<a class="code" href="balance_8php.html#a11">$i</a>][$this->ezPageCount]='stop';
|
|
<a name="l00351"></a>00351 }
|
|
<a name="l00352"></a>00352 <span class="keywordflow">if</span> ($next){
|
|
<a name="l00353"></a>00353 $this->ez['pageNumbering'][<a class="code" href="balance_8php.html#a11">$i</a>][$this->ezPageCount].=<span class="charliteral">'n'</span>;
|
|
<a name="l00354"></a>00354 }
|
|
<a name="l00355"></a>00355 }
|
|
<a name="l00356"></a>00356 }
|
|
<a name="l00357"></a>00357
|
|
<a name="l00358"></a>00358 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l00359"></a>00359
|
|
<a name="l00360"></a><a class="code" href="classCezpdf.html#a11">00360</a> function <a class="code" href="classCezpdf.html#a11">ezPRVTpageNumberSearch</a>($lbl,&$tmp){
|
|
<a name="l00361"></a>00361 foreach($tmp as $i=>$v){
|
|
<a name="l00362"></a>00362 <span class="keywordflow">if</span> (is_array($v)){
|
|
<a name="l00363"></a>00363 <span class="keywordflow">if</span> (isset($v[$lbl])){
|
|
<a name="l00364"></a>00364 <span class="keywordflow">return</span> <a class="code" href="balance_8php.html#a11">$i</a>;
|
|
<a name="l00365"></a>00365 }
|
|
<a name="l00366"></a>00366 } <span class="keywordflow">else</span> {
|
|
<a name="l00367"></a>00367 <span class="keywordflow">if</span> ($v==$lbl){
|
|
<a name="l00368"></a>00368 <span class="keywordflow">return</span> <a class="code" href="balance_8php.html#a11">$i</a>;
|
|
<a name="l00369"></a>00369 }
|
|
<a name="l00370"></a>00370 }
|
|
<a name="l00371"></a>00371 }
|
|
<a name="l00372"></a>00372 <span class="keywordflow">return</span> 0;
|
|
<a name="l00373"></a>00373 }
|
|
<a name="l00374"></a>00374
|
|
<a name="l00375"></a>00375 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l00376"></a>00376
|
|
<a name="l00377"></a><a class="code" href="classCezpdf.html#a12">00377</a> function <a class="code" href="classCezpdf.html#a12">ezPRVTaddPageNumbers</a>(){
|
|
<a name="l00378"></a>00378 <span class="comment">// this will go through the pageNumbering array and add the page numbers are required</span>
|
|
<a name="l00379"></a>00379 <span class="keywordflow">if</span> (isset($this->ez['pageNumbering'])){
|
|
<a name="l00380"></a>00380 $totalPages1 = $this->ezPageCount;
|
|
<a name="l00381"></a>00381 $tmp1=$this->ez['pageNumbering'];
|
|
<a name="l00382"></a>00382 $status=0;
|
|
<a name="l00383"></a>00383 foreach($tmp1 as $i=>$tmp){
|
|
<a name="l00384"></a>00384 <span class="comment">// do each of the page numbering systems</span>
|
|
<a name="l00385"></a>00385 <span class="comment">// firstly, find the total pages for this one</span>
|
|
<a name="l00386"></a>00386 $k = $this-><a class="code" href="classCezpdf.html#a11">ezPRVTpageNumberSearch</a>('stopt',$tmp);
|
|
<a name="l00387"></a>00387 <span class="keywordflow">if</span> ($k && $k>0){
|
|
<a name="l00388"></a>00388 $totalPages = $k-1;
|
|
<a name="l00389"></a>00389 } <span class="keywordflow">else</span> {
|
|
<a name="l00390"></a>00390 <a class="code" href="facture_8inc_8php.html#a15">$l</a> = $this-><a class="code" href="classCezpdf.html#a11">ezPRVTpageNumberSearch</a>('stoptn',$tmp);
|
|
<a name="l00391"></a>00391 <span class="keywordflow">if</span> ($l && $l>0){
|
|
<a name="l00392"></a>00392 $totalPages = <a class="code" href="facture_8inc_8php.html#a15">$l</a>;
|
|
<a name="l00393"></a>00393 } <span class="keywordflow">else</span> {
|
|
<a name="l00394"></a>00394 $totalPages = $totalPages1;
|
|
<a name="l00395"></a>00395 }
|
|
<a name="l00396"></a>00396 }
|
|
<a name="l00397"></a>00397 foreach ($this->ezPages as $pageNum=>$<span class="keywordtype">id</span>){
|
|
<a name="l00398"></a>00398 <span class="keywordflow">if</span> (isset($tmp[$pageNum])){
|
|
<a name="l00399"></a>00399 <span class="keywordflow">if</span> (is_array($tmp[$pageNum])){
|
|
<a name="l00400"></a>00400 <span class="comment">// then this must be starting page numbers</span>
|
|
<a name="l00401"></a>00401 $status=1;
|
|
<a name="l00402"></a>00402 <a class="code" href="print__invoice_8php.html#a8">$info</a> = <a class="code" href="show__document__modele_8php.html#a5">$tmp</a>[$pageNum];
|
|
<a name="l00403"></a>00403 <a class="code" href="print__invoice_8php.html#a8">$info</a>['dnum']=<a class="code" href="print__invoice_8php.html#a8">$info</a>['num']-$pageNum;
|
|
<a name="l00404"></a>00404 <span class="comment">// also check for the special case of the numbering stopping and starting on the same page</span>
|
|
<a name="l00405"></a>00405 <span class="keywordflow">if</span> (isset($info['stopn']) || isset($info['stoptn']) ){
|
|
<a name="l00406"></a>00406 $status=2;
|
|
<a name="l00407"></a>00407 }
|
|
<a name="l00408"></a>00408 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ($tmp[$pageNum]=='stop' || $tmp[$pageNum]=='stopt'){
|
|
<a name="l00409"></a>00409 <span class="comment">// then we are stopping page numbers</span>
|
|
<a name="l00410"></a>00410 $status=0;
|
|
<a name="l00411"></a>00411 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ($status==1 && ($tmp[$pageNum]=='stoptn' || $tmp[$pageNum]=='stopn')){
|
|
<a name="l00412"></a>00412 <span class="comment">// then we are stopping page numbers</span>
|
|
<a name="l00413"></a>00413 $status=2;
|
|
<a name="l00414"></a>00414 }
|
|
<a name="l00415"></a>00415 }
|
|
<a name="l00416"></a>00416 <span class="keywordflow">if</span> ($status){
|
|
<a name="l00417"></a>00417 <span class="comment">// then add the page numbering to this page</span>
|
|
<a name="l00418"></a>00418 <span class="keywordflow">if</span> (strlen($info['num'])){
|
|
<a name="l00419"></a>00419 <a class="code" href="jrn__add_8php.html#a17">$num</a>=$pageNum+<a class="code" href="print__invoice_8php.html#a8">$info</a>['dnum'];
|
|
<a name="l00420"></a>00420 } <span class="keywordflow">else</span> {
|
|
<a name="l00421"></a>00421 <a class="code" href="jrn__add_8php.html#a17">$num</a>=$pageNum;
|
|
<a name="l00422"></a>00422 }
|
|
<a name="l00423"></a>00423 <a class="code" href="print__invoice_8php.html#a12">$total</a> = $totalPages+<a class="code" href="jrn__add_8php.html#a17">$num</a>-$pageNum;
|
|
<a name="l00424"></a>00424 $pat = str_replace('{PAGENUM}',$num,$info['pattern']);
|
|
<a name="l00425"></a>00425 $pat = str_replace('{TOTALPAGENUM}',$total,$pat);
|
|
<a name="l00426"></a>00426 $this-><a class="code" href="classCpdf.html#a58">reopenObject</a>($<span class="keywordtype">id</span>);
|
|
<a name="l00427"></a>00427 <span class="keywordflow">switch</span>(<a class="code" href="print__invoice_8php.html#a8">$info</a>['pos']){
|
|
<a name="l00428"></a>00428 <span class="keywordflow">case</span> 'right':
|
|
<a name="l00429"></a>00429 $this-><a class="code" href="classCpdf.html#a51">addText</a>($info[<span class="charliteral">'x'</span>],$info[<span class="charliteral">'y'</span>],$info['<a class="code" href="tva_8inc_8php.html#a15">size</a>'],$pat);
|
|
<a name="l00430"></a>00430 <span class="keywordflow">break</span>;
|
|
<a name="l00431"></a>00431 <span class="keywordflow">default</span>:
|
|
<a name="l00432"></a>00432 <a class="code" href="balance_8php.html#a2">$w</a>=$this-><a class="code" href="classCpdf.html#a52">getTextWidth</a>($info['size'],$pat);
|
|
<a name="l00433"></a>00433 $this-><a class="code" href="classCpdf.html#a51">addText</a>($info[<span class="charliteral">'x'</span>]-$w,$info[<span class="charliteral">'y'</span>],$info['size'],$pat);
|
|
<a name="l00434"></a>00434 <span class="keywordflow">break</span>;
|
|
<a name="l00435"></a>00435 }
|
|
<a name="l00436"></a>00436 $this-><a class="code" href="classCpdf.html#a59">closeObject</a>();
|
|
<a name="l00437"></a>00437 }
|
|
<a name="l00438"></a>00438 <span class="keywordflow">if</span> ($status==2){
|
|
<a name="l00439"></a>00439 $status=0;
|
|
<a name="l00440"></a>00440 }
|
|
<a name="l00441"></a>00441 }
|
|
<a name="l00442"></a>00442 }
|
|
<a name="l00443"></a>00443 }
|
|
<a name="l00444"></a>00444 }
|
|
<a name="l00445"></a>00445
|
|
<a name="l00446"></a>00446 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l00447"></a>00447
|
|
<a name="l00448"></a><a class="code" href="classCezpdf.html#a13">00448</a> function <a class="code" href="classCezpdf.html#a13">ezPRVTcleanUp</a>(){
|
|
<a name="l00449"></a>00449 $this-><a class="code" href="classCezpdf.html#a12">ezPRVTaddPageNumbers</a>();
|
|
<a name="l00450"></a>00450 }
|
|
<a name="l00451"></a>00451
|
|
<a name="l00452"></a>00452 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l00453"></a>00453
|
|
<a name="l00454"></a><a class="code" href="classCezpdf.html#a14">00454</a> function <a class="code" href="classCezpdf.html#a14">ezStream</a>($options=''){
|
|
<a name="l00455"></a>00455 $this-><a class="code" href="classCezpdf.html#a13">ezPRVTcleanUp</a>();
|
|
<a name="l00456"></a>00456 $this-><a class="code" href="classCpdf.html#a44">stream</a>($options);
|
|
<a name="l00457"></a>00457 }
|
|
<a name="l00458"></a>00458
|
|
<a name="l00459"></a>00459 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l00460"></a>00460
|
|
<a name="l00461"></a><a class="code" href="classCezpdf.html#a15">00461</a> function <a class="code" href="classCezpdf.html#a15">ezOutput</a>($options=0){
|
|
<a name="l00462"></a>00462 $this-><a class="code" href="classCezpdf.html#a13">ezPRVTcleanUp</a>();
|
|
<a name="l00463"></a>00463 <span class="keywordflow">return</span> $this-><a class="code" href="classCpdf.html#a25">output</a>($options);
|
|
<a name="l00464"></a>00464 }
|
|
<a name="l00465"></a>00465
|
|
<a name="l00466"></a>00466 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l00467"></a>00467
|
|
<a name="l00468"></a><a class="code" href="classCezpdf.html#a16">00468</a> function <a class="code" href="classCezpdf.html#a16">ezSetY</a>($y){
|
|
<a name="l00469"></a>00469 <span class="comment">// used to change the vertical position of the writing point.</span>
|
|
<a name="l00470"></a>00470 $this->y = <a class="code" href="classCezpdf.html#o1">$y</a>;
|
|
<a name="l00471"></a>00471 <span class="keywordflow">if</span> ( $this->y < $this->ez['bottomMargin']){
|
|
<a name="l00472"></a>00472 <span class="comment">// then make a new page</span>
|
|
<a name="l00473"></a>00473 $this-><a class="code" href="classCezpdf.html#a5">ezNewPage</a>();
|
|
<a name="l00474"></a>00474 }
|
|
<a name="l00475"></a>00475 }
|
|
<a name="l00476"></a>00476
|
|
<a name="l00477"></a>00477 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l00478"></a>00478
|
|
<a name="l00479"></a><a class="code" href="classCezpdf.html#a17">00479</a> function <a class="code" href="classCezpdf.html#a17">ezSetDy</a>($dy,$mod=''){
|
|
<a name="l00480"></a>00480 <span class="comment">// used to change the vertical position of the writing point.</span>
|
|
<a name="l00481"></a>00481 <span class="comment">// changes up by a positive increment, so enter a negative number to go</span>
|
|
<a name="l00482"></a>00482 <span class="comment">// down the page</span>
|
|
<a name="l00483"></a>00483 <span class="comment">// if $mod is set to 'makeSpace' and a new page is forced, then the pointed will be moved </span>
|
|
<a name="l00484"></a>00484 <span class="comment">// down on the new page, this will allow space to be reserved for graphics etc.</span>
|
|
<a name="l00485"></a>00485 $this->y += $dy;
|
|
<a name="l00486"></a>00486 <span class="keywordflow">if</span> ( $this->y < $this->ez['bottomMargin']){
|
|
<a name="l00487"></a>00487 <span class="comment">// then make a new page</span>
|
|
<a name="l00488"></a>00488 $this-><a class="code" href="classCezpdf.html#a5">ezNewPage</a>();
|
|
<a name="l00489"></a>00489 <span class="keywordflow">if</span> ($mod=='makeSpace'){
|
|
<a name="l00490"></a>00490 $this->y += $dy;
|
|
<a name="l00491"></a>00491 }
|
|
<a name="l00492"></a>00492 }
|
|
<a name="l00493"></a>00493 }
|
|
<a name="l00494"></a>00494
|
|
<a name="l00495"></a>00495 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l00496"></a>00496
|
|
<a name="l00497"></a><a class="code" href="classCezpdf.html#a18">00497</a> function <a class="code" href="classCezpdf.html#a18">ezPrvtTableDrawLines</a>($pos,$gap,$x0,$x1,$y0,$y1,$y2,$col,$inner,$outer,$opt=1){
|
|
<a name="l00498"></a>00498 $x0=1000;
|
|
<a name="l00499"></a>00499 $x1=0;
|
|
<a name="l00500"></a>00500 $this-><a class="code" href="classCpdf.html#a33">setStrokeColor</a>($col[0],$col[1],$col[2]);
|
|
<a name="l00501"></a>00501 $cnt=0;
|
|
<a name="l00502"></a>00502 <a class="code" href="fiche__new_8php.html#a5">$n</a> = count($pos);
|
|
<a name="l00503"></a>00503 foreach($pos as $x){
|
|
<a name="l00504"></a>00504 $cnt++;
|
|
<a name="l00505"></a>00505 <span class="keywordflow">if</span> ($cnt==1 || $cnt==$n){
|
|
<a name="l00506"></a>00506 $this-><a class="code" href="classCpdf.html#a39">setLineStyle</a>($outer);
|
|
<a name="l00507"></a>00507 } <span class="keywordflow">else</span> {
|
|
<a name="l00508"></a>00508 $this-><a class="code" href="classCpdf.html#a39">setLineStyle</a>($inner);
|
|
<a name="l00509"></a>00509 }
|
|
<a name="l00510"></a>00510 $this-><a class="code" href="classCpdf.html#a34">line</a>($x-$gap/2,$y0,$x-$gap/2,$y2);
|
|
<a name="l00511"></a>00511 <span class="keywordflow">if</span> ($x>$x1){ $x1=<a class="code" href="ecrit__ouv_8php.html#a9">$x</a>; };
|
|
<a name="l00512"></a>00512 <span class="keywordflow">if</span> ($x<$x0){ $x0=<a class="code" href="ecrit__ouv_8php.html#a9">$x</a>; };
|
|
<a name="l00513"></a>00513 }
|
|
<a name="l00514"></a>00514 $this-><a class="code" href="classCpdf.html#a39">setLineStyle</a>($outer);
|
|
<a name="l00515"></a>00515 $this-><a class="code" href="classCpdf.html#a34">line</a>($x0-$gap/2-$outer/2,$y0,$x1-$gap/2+$outer/2,$y0);
|
|
<a name="l00516"></a>00516 <span class="comment">// only do the second line if it is different to the first, AND each row does not have</span>
|
|
<a name="l00517"></a>00517 <span class="comment">// a line on it.</span>
|
|
<a name="l00518"></a>00518 <span class="keywordflow">if</span> ($y0!=$y1 && $opt<2){
|
|
<a name="l00519"></a>00519 $this-><a class="code" href="classCpdf.html#a34">line</a>($x0-$gap/2,$y1,$x1-$gap/2,$y1);
|
|
<a name="l00520"></a>00520 }
|
|
<a name="l00521"></a>00521 $this-><a class="code" href="classCpdf.html#a34">line</a>($x0-$gap/2-$outer/2,$y2,$x1-$gap/2+$outer/2,$y2);
|
|
<a name="l00522"></a>00522 }
|
|
<a name="l00523"></a>00523
|
|
<a name="l00524"></a>00524 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l00525"></a>00525
|
|
<a name="l00526"></a><a class="code" href="classCezpdf.html#a19">00526</a> function <a class="code" href="classCezpdf.html#a19">ezPrvtTableColumnHeadings</a>($cols,$pos,$maxWidth,$height,$decender,$gap,$<a class="code" href="tva_8inc_8php.html#a15">size</a>,&$y,$optionsAll=array()){
|
|
<a name="l00527"></a>00527 <span class="comment">// uses ezText to add the text, and returns the height taken by the largest heading</span>
|
|
<a name="l00528"></a>00528 <span class="comment">// this page will move the headings to a new page if they will not fit completely on this one</span>
|
|
<a name="l00529"></a>00529 <span class="comment">// transaction support will be used to implement this</span>
|
|
<a name="l00530"></a>00530
|
|
<a name="l00531"></a>00531 <span class="keywordflow">if</span> (isset($optionsAll['cols'])){
|
|
<a name="l00532"></a>00532 <a class="code" href="classCpdf.html#o23">$options</a> = $optionsAll['cols'];
|
|
<a name="l00533"></a>00533 } <span class="keywordflow">else</span> {
|
|
<a name="l00534"></a>00534 <a class="code" href="classCpdf.html#o23">$options</a> = array();
|
|
<a name="l00535"></a>00535 }
|
|
<a name="l00536"></a>00536
|
|
<a name="l00537"></a>00537 $mx=0;
|
|
<a name="l00538"></a>00538 $startPage = $this->ezPageCount;
|
|
<a name="l00539"></a>00539 $secondGo=0;
|
|
<a name="l00540"></a>00540
|
|
<a name="l00541"></a>00541 <span class="comment">// $y is the position at which the top of the table should start, so the base</span>
|
|
<a name="l00542"></a>00542 <span class="comment">// of the first text, is $y-$height-$gap-$decender, but ezText starts by dropping $height</span>
|
|
<a name="l00543"></a>00543
|
|
<a name="l00544"></a>00544 <span class="comment">// the return from this function is the total cell height, including gaps, and $y is adjusted</span>
|
|
<a name="l00545"></a>00545 <span class="comment">// to be the postion of the bottom line</span>
|
|
<a name="l00546"></a>00546
|
|
<a name="l00547"></a>00547 <span class="comment">// begin the transaction</span>
|
|
<a name="l00548"></a>00548 $this-><a class="code" href="classCpdf.html#a73">transaction</a>('<a class="code" href="document__modele_8inc_8php.html#a5">start</a>');
|
|
<a name="l00549"></a>00549 <a class="code" href="readme_8php.html#a20">$ok</a>=0;
|
|
<a name="l00550"></a>00550 <span class="comment">// $y-=$gap-$decender;</span>
|
|
<a name="l00551"></a>00551 <a class="code" href="classCezpdf.html#o1">$y</a>-=$gap;
|
|
<a name="l00552"></a>00552 <span class="keywordflow">while</span> ($ok==0){
|
|
<a name="l00553"></a>00553 foreach($cols as $colName=>$colHeading){
|
|
<a name="l00554"></a>00554 $this-><a class="code" href="classCezpdf.html#a16">ezSetY</a>($y);
|
|
<a name="l00555"></a>00555 <span class="keywordflow">if</span> (isset($options[$colName]) && isset($options[$colName]['justification'])){
|
|
<a name="l00556"></a>00556 $justification = <a class="code" href="classCpdf.html#o23">$options</a>[$colName]['justification'];
|
|
<a name="l00557"></a>00557 } <span class="keywordflow">else</span> {
|
|
<a name="l00558"></a>00558 $justification = 'left';
|
|
<a name="l00559"></a>00559 }
|
|
<a name="l00560"></a>00560 $this-><a class="code" href="classCezpdf.html#a23">ezText</a>($colHeading,$<a class="code" href="tva_8inc_8php.html#a15">size</a>,array('aleft'=> $pos[$colName],'aright'=>($maxWidth[$colName]+$pos[$colName]),'justification'=>$justification));
|
|
<a name="l00561"></a>00561 $dy = <a class="code" href="classCezpdf.html#o1">$y</a>-$this->y;
|
|
<a name="l00562"></a>00562 <span class="keywordflow">if</span> ($dy>$mx){
|
|
<a name="l00563"></a>00563 $mx=$dy;
|
|
<a name="l00564"></a>00564 }
|
|
<a name="l00565"></a>00565 }
|
|
<a name="l00566"></a>00566 <a class="code" href="classCezpdf.html#o1">$y</a> = <a class="code" href="classCezpdf.html#o1">$y</a> - $mx - $gap + $decender;
|
|
<a name="l00567"></a>00567 <span class="comment">// $y -= $mx-$gap+$decender;</span>
|
|
<a name="l00568"></a>00568
|
|
<a name="l00569"></a>00569 <span class="comment">// now, if this has moved to a new page, then abort the transaction, move to a new page, and put it there</span>
|
|
<a name="l00570"></a>00570 <span class="comment">// do not check on the second time around, to avoid an infinite loop</span>
|
|
<a name="l00571"></a>00571 <span class="keywordflow">if</span> ($this->ezPageCount != $startPage && $secondGo==0){
|
|
<a name="l00572"></a>00572 $this-><a class="code" href="classCpdf.html#a73">transaction</a>('rewind');
|
|
<a name="l00573"></a>00573 $this-><a class="code" href="classCezpdf.html#a5">ezNewPage</a>();
|
|
<a name="l00574"></a>00574 <a class="code" href="classCezpdf.html#o1">$y</a> = $this->y - $gap-$decender;
|
|
<a name="l00575"></a>00575 <a class="code" href="readme_8php.html#a20">$ok</a>=0;
|
|
<a name="l00576"></a>00576 $secondGo=1;
|
|
<a name="l00577"></a>00577 <span class="comment">// $y = $store_y;</span>
|
|
<a name="l00578"></a>00578 $mx=0;
|
|
<a name="l00579"></a>00579
|
|
<a name="l00580"></a>00580 } <span class="keywordflow">else</span> {
|
|
<a name="l00581"></a>00581 $this-><a class="code" href="classCpdf.html#a73">transaction</a>('commit');
|
|
<a name="l00582"></a>00582 <a class="code" href="readme_8php.html#a20">$ok</a>=1;
|
|
<a name="l00583"></a>00583 }
|
|
<a name="l00584"></a>00584 }
|
|
<a name="l00585"></a>00585
|
|
<a name="l00586"></a>00586 <span class="keywordflow">return</span> $mx+$gap*2-$decender;
|
|
<a name="l00587"></a>00587 }
|
|
<a name="l00588"></a>00588
|
|
<a name="l00589"></a>00589 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l00590"></a>00590
|
|
<a name="l00591"></a><a class="code" href="classCezpdf.html#a20">00591</a> function <a class="code" href="classCezpdf.html#a20">ezPrvtGetTextWidth</a>($<a class="code" href="tva_8inc_8php.html#a15">size</a>,$text){
|
|
<a name="l00592"></a>00592 <span class="comment">// will calculate the maximum width, taking into account that the text may be broken</span>
|
|
<a name="l00593"></a>00593 <span class="comment">// by line breaks.</span>
|
|
<a name="l00594"></a>00594 $mx=0;
|
|
<a name="l00595"></a>00595 $lines = explode(<span class="stringliteral">"\n"</span>,$text);
|
|
<a name="l00596"></a>00596 foreach ($lines as $<a class="code" href="classCpdf.html#a34">line</a>){
|
|
<a name="l00597"></a>00597 <a class="code" href="balance_8php.html#a2">$w</a> = $this-><a class="code" href="classCpdf.html#a52">getTextWidth</a>($<a class="code" href="tva_8inc_8php.html#a15">size</a>,$line);
|
|
<a name="l00598"></a>00598 <span class="keywordflow">if</span> ($w>$mx){
|
|
<a name="l00599"></a>00599 $mx=<a class="code" href="balance_8php.html#a2">$w</a>;
|
|
<a name="l00600"></a>00600 }
|
|
<a name="l00601"></a>00601 }
|
|
<a name="l00602"></a>00602 <span class="keywordflow">return</span> $mx;
|
|
<a name="l00603"></a>00603 }
|
|
<a name="l00604"></a>00604
|
|
<a name="l00605"></a>00605 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l00606"></a>00606
|
|
<a name="l00607"></a><a class="code" href="classCezpdf.html#a21">00607</a> function <a class="code" href="classCezpdf.html#a21">ezTable</a>(&$data,$cols='',$title='',$options=''){
|
|
<a name="l00608"></a>00608 <span class="comment">// add a table of information to the pdf document</span>
|
|
<a name="l00609"></a>00609 <span class="comment">// $data is a two dimensional array</span>
|
|
<a name="l00610"></a>00610 <span class="comment">// $cols (optional) is an associative array, the keys are the names of the columns from $data</span>
|
|
<a name="l00611"></a>00611 <span class="comment">// to be presented (and in that order), the values are the titles to be given to the columns</span>
|
|
<a name="l00612"></a>00612 <span class="comment">// $title (optional) is the title to be put on the top of the table</span>
|
|
<a name="l00613"></a>00613 <span class="comment">//</span>
|
|
<a name="l00614"></a>00614 <span class="comment">// $options is an associative array which can contain:</span>
|
|
<a name="l00615"></a>00615 <span class="comment">// 'showLines'=> 0,1,2, default is 1 (show outside and top lines only), 2=> lines on each row</span>
|
|
<a name="l00616"></a>00616 <span class="comment">// 'showHeadings' => 0 or 1</span>
|
|
<a name="l00617"></a>00617 <span class="comment">// 'shaded'=> 0,1,2,3 default is 1 (1->alternate lines are shaded, 0->no shading, 2-> both shaded, second uses shadeCol2)</span>
|
|
<a name="l00618"></a>00618 <span class="comment">// 'shadeCol' => (r,g,b) array, defining the colour of the shading, default is (0.8,0.8,0.8)</span>
|
|
<a name="l00619"></a>00619 <span class="comment">// 'shadeCol2' => (r,g,b) array, defining the colour of the shading of the other blocks, default is (0.7,0.7,0.7)</span>
|
|
<a name="l00620"></a>00620 <span class="comment">// 'fontSize' => 10</span>
|
|
<a name="l00621"></a>00621 <span class="comment">// 'textCol' => (r,g,b) array, text colour</span>
|
|
<a name="l00622"></a>00622 <span class="comment">// 'titleFontSize' => 12</span>
|
|
<a name="l00623"></a>00623 <span class="comment">// 'rowGap' => 2 , the space added at the top and bottom of each row, between the text and the lines</span>
|
|
<a name="l00624"></a>00624 <span class="comment">// 'colGap' => 5 , the space on the left and right sides of each cell</span>
|
|
<a name="l00625"></a>00625 <span class="comment">// 'lineCol' => (r,g,b) array, defining the colour of the lines, default, black.</span>
|
|
<a name="l00626"></a>00626 <span class="comment">// 'xPos' => 'left','right','center','centre',or coordinate, reference coordinate in the x-direction</span>
|
|
<a name="l00627"></a>00627 <span class="comment">// 'xOrientation' => 'left','right','center','centre', position of the table w.r.t 'xPos' </span>
|
|
<a name="l00628"></a>00628 <span class="comment">// 'width'=> <number> which will specify the width of the table, if it turns out to not be this</span>
|
|
<a name="l00629"></a>00629 <span class="comment">// wide, then it will stretch the table to fit, if it is wider then each cell will be made</span>
|
|
<a name="l00630"></a>00630 <span class="comment">// proportionalty smaller, and the content may have to wrap.</span>
|
|
<a name="l00631"></a>00631 <span class="comment">// 'maxWidth'=> <number> similar to 'width', but will only make table smaller than it wants to be</span>
|
|
<a name="l00632"></a>00632 <span class="comment">// 'options' => array(<colname>=>array('justification'=>'left','width'=>100,'link'=>linkDataName),<colname>=>....)</span>
|
|
<a name="l00633"></a>00633 <span class="comment">// allow the setting of other paramaters for the individual columns</span>
|
|
<a name="l00634"></a>00634 <span class="comment">// 'minRowSpace'=> the minimum space between the bottom of each row and the bottom margin, in which a new row will be started</span>
|
|
<a name="l00635"></a>00635 <span class="comment">// if it is less, then a new page would be started, default=-100</span>
|
|
<a name="l00636"></a>00636 <span class="comment">// 'innerLineThickness'=>1</span>
|
|
<a name="l00637"></a>00637 <span class="comment">// 'outerLineThickness'=>1</span>
|
|
<a name="l00638"></a>00638 <span class="comment">// 'splitRows'=>0, 0 or 1, whether or not to allow the rows to be split across page boundaries</span>
|
|
<a name="l00639"></a>00639 <span class="comment">// 'protectRows'=>number, the number of rows to hold with the heading on page, ie, if there less than this number of</span>
|
|
<a name="l00640"></a>00640 <span class="comment">// rows on the page, then move the whole lot onto the next page, default=1</span>
|
|
<a name="l00641"></a>00641 <span class="comment">//</span>
|
|
<a name="l00642"></a>00642 <span class="comment">// note that the user will have had to make a font selection already or this will not </span>
|
|
<a name="l00643"></a>00643 <span class="comment">// produce a valid pdf file.</span>
|
|
<a name="l00644"></a>00644
|
|
<a name="l00645"></a>00645 <span class="keywordflow">if</span> (!is_array($data)){
|
|
<a name="l00646"></a>00646 <span class="keywordflow">return</span>;
|
|
<a name="l00647"></a>00647 }
|
|
<a name="l00648"></a>00648
|
|
<a name="l00649"></a>00649 <span class="keywordflow">if</span> (!is_array($cols)){
|
|
<a name="l00650"></a>00650 <span class="comment">// take the columns from the first row of the data set</span>
|
|
<a name="l00651"></a>00651 reset($data);
|
|
<a name="l00652"></a>00652 list($k,$v)=each($data);
|
|
<a name="l00653"></a>00653 <span class="keywordflow">if</span> (!is_array($v)){
|
|
<a name="l00654"></a>00654 <span class="keywordflow">return</span>;
|
|
<a name="l00655"></a>00655 }
|
|
<a name="l00656"></a>00656 $cols=array();
|
|
<a name="l00657"></a>00657 foreach($v as $k1=>$v1){
|
|
<a name="l00658"></a>00658 $cols[$k1]=$k1;
|
|
<a name="l00659"></a>00659 }
|
|
<a name="l00660"></a>00660 }
|
|
<a name="l00661"></a>00661
|
|
<a name="l00662"></a>00662 <span class="keywordflow">if</span> (!is_array($options)){
|
|
<a name="l00663"></a>00663 <a class="code" href="classCpdf.html#o23">$options</a>=array();
|
|
<a name="l00664"></a>00664 }
|
|
<a name="l00665"></a>00665
|
|
<a name="l00666"></a>00666 $defaults = array(
|
|
<a name="l00667"></a>00667 'shaded'=>1,'showLines'=>1,'shadeCol'=>array(0.8,0.8,0.8),'shadeCol2'=>array(0.7,0.7,0.7),'fontSize'=>10,'titleFontSize'=>12
|
|
<a name="l00668"></a>00668 ,'titleGap'=>5,'lineCol'=>array(0,0,0),'gap'=>5,'xPos'=>'centre<span class="charliteral">','</span>xOrientation'=>'centre'
|
|
<a name="l00669"></a>00669 ,'showHeadings'=>1,'textCol'=>array(0,0,0),'<a class="code" href="tva_8inc_8php.html#a17">width</a>'=>0,'maxWidth'=>0,'cols'=>array(),'minRowSpace'=>-100,'rowGap'=>2,'colGap'=>5
|
|
<a name="l00670"></a>00670 ,'innerLineThickness'=>1,'outerLineThickness'=>1,'splitRows'=>0,'protectRows'=>1
|
|
<a name="l00671"></a>00671 );
|
|
<a name="l00672"></a>00672
|
|
<a name="l00673"></a>00673 foreach($defaults as $key=>$<a class="code" href="client_8inc_8php.html#a6">value</a>){
|
|
<a name="l00674"></a>00674 <span class="keywordflow">if</span> (is_array($<a class="code" href="client_8inc_8php.html#a6">value</a>)){
|
|
<a name="l00675"></a>00675 <span class="keywordflow">if</span> (!isset($options[$key]) || !is_array($options[$key])){
|
|
<a name="l00676"></a>00676 <a class="code" href="classCpdf.html#o23">$options</a>[$key]=$value;
|
|
<a name="l00677"></a>00677 }
|
|
<a name="l00678"></a>00678 } <span class="keywordflow">else</span> {
|
|
<a name="l00679"></a>00679 <span class="keywordflow">if</span> (!isset($options[$key])){
|
|
<a name="l00680"></a>00680 <a class="code" href="classCpdf.html#o23">$options</a>[$key]=$value;
|
|
<a name="l00681"></a>00681 }
|
|
<a name="l00682"></a>00682 }
|
|
<a name="l00683"></a>00683 }
|
|
<a name="l00684"></a>00684 <a class="code" href="classCpdf.html#o23">$options</a>['gap']=2*<a class="code" href="classCpdf.html#o23">$options</a>['colGap'];
|
|
<a name="l00685"></a>00685
|
|
<a name="l00686"></a>00686 $middle = ($this->ez['pageWidth']-$this->ez['rightMargin'])/2+($this->ez['leftMargin'])/2;
|
|
<a name="l00687"></a>00687 <span class="comment">// figure out the maximum widths of the text within each column</span>
|
|
<a name="l00688"></a>00688 $maxWidth=array();
|
|
<a name="l00689"></a>00689 foreach($cols as $colName=>$colHeading){
|
|
<a name="l00690"></a>00690 $maxWidth[$colName]=0;
|
|
<a name="l00691"></a>00691 }
|
|
<a name="l00692"></a>00692 <span class="comment">// find the maximum cell widths based on the data</span>
|
|
<a name="l00693"></a>00693 foreach($data as $row){
|
|
<a name="l00694"></a>00694 foreach($cols as $colName=>$colHeading){
|
|
<a name="l00695"></a>00695 <a class="code" href="balance_8php.html#a2">$w</a> = $this-><a class="code" href="classCezpdf.html#a20">ezPrvtGetTextWidth</a>($options['fontSize'],(string)$row[$colName])*1.01;
|
|
<a name="l00696"></a>00696 <span class="keywordflow">if</span> ($w > $maxWidth[$colName]){
|
|
<a name="l00697"></a>00697 $maxWidth[$colName]=<a class="code" href="balance_8php.html#a2">$w</a>;
|
|
<a name="l00698"></a>00698 }
|
|
<a name="l00699"></a>00699 }
|
|
<a name="l00700"></a>00700 }
|
|
<a name="l00701"></a>00701 <span class="comment">// and the maximum widths to fit in the headings</span>
|
|
<a name="l00702"></a>00702 foreach($cols as $colName=>$colTitle){
|
|
<a name="l00703"></a>00703 <a class="code" href="balance_8php.html#a2">$w</a> = $this-><a class="code" href="classCezpdf.html#a20">ezPrvtGetTextWidth</a>($options['fontSize'],(string)$colTitle)*1.01;
|
|
<a name="l00704"></a>00704 <span class="keywordflow">if</span> ($w > $maxWidth[$colName]){
|
|
<a name="l00705"></a>00705 $maxWidth[$colName]=<a class="code" href="balance_8php.html#a2">$w</a>;
|
|
<a name="l00706"></a>00706 }
|
|
<a name="l00707"></a>00707 }
|
|
<a name="l00708"></a>00708
|
|
<a name="l00709"></a>00709 <span class="comment">// calculate the start positions of each of the columns</span>
|
|
<a name="l00710"></a>00710 $pos=array();
|
|
<a name="l00711"></a>00711 <a class="code" href="ecrit__ouv_8php.html#a9">$x</a>=0;
|
|
<a name="l00712"></a>00712 <a class="code" href="impress__rapport_8php.html#a3">$t</a>=<a class="code" href="ecrit__ouv_8php.html#a9">$x</a>;
|
|
<a name="l00713"></a>00713 $adjustmentWidth=0;
|
|
<a name="l00714"></a>00714 $setWidth=0;
|
|
<a name="l00715"></a>00715 foreach($maxWidth as $colName => $w){
|
|
<a name="l00716"></a>00716 $pos[$colName]=<a class="code" href="impress__rapport_8php.html#a3">$t</a>;
|
|
<a name="l00717"></a>00717 <span class="comment">// if the column width has been specified then set that here, also total the</span>
|
|
<a name="l00718"></a>00718 <span class="comment">// width avaliable for adjustment</span>
|
|
<a name="l00719"></a>00719 <span class="keywordflow">if</span> (isset($options['cols'][$colName]) && isset($options['cols'][$colName]['<a class="code" href="tva_8inc_8php.html#a17">width</a>']) && $options['cols'][$colName]['width']>0){
|
|
<a name="l00720"></a>00720 <a class="code" href="impress__rapport_8php.html#a3">$t</a>=<a class="code" href="impress__rapport_8php.html#a3">$t</a>+<a class="code" href="classCpdf.html#o23">$options</a>['cols'][$colName]['width'];
|
|
<a name="l00721"></a>00721 $maxWidth[$colName] = $options['cols'][$colName]['width']-$options['gap'];
|
|
<a name="l00722"></a>00722 $setWidth += $options['cols'][$colName]['width'];
|
|
<a name="l00723"></a>00723 } <span class="keywordflow">else</span> {
|
|
<a name="l00724"></a>00724 <a class="code" href="impress__rapport_8php.html#a3">$t</a>=<a class="code" href="impress__rapport_8php.html#a3">$t</a>+<a class="code" href="balance_8php.html#a2">$w</a>+<a class="code" href="classCpdf.html#o23">$options</a>['gap'];
|
|
<a name="l00725"></a>00725 $adjustmentWidth += <a class="code" href="balance_8php.html#a2">$w</a>;
|
|
<a name="l00726"></a>00726 $setWidth += $options['gap'];
|
|
<a name="l00727"></a>00727 }
|
|
<a name="l00728"></a>00728 }
|
|
<a name="l00729"></a>00729 $pos['_end_']=<a class="code" href="impress__rapport_8php.html#a3">$t</a>;
|
|
<a name="l00730"></a>00730
|
|
<a name="l00731"></a>00731 <span class="comment">// if maxWidth is specified, and the table is too wide, and the width has not been set,</span>
|
|
<a name="l00732"></a>00732 <span class="comment">// then set the width.</span>
|
|
<a name="l00733"></a>00733 <span class="keywordflow">if</span> ($options['<a class="code" href="tva_8inc_8php.html#a17">width</a>']==0 && $options['maxWidth'] && ($t-$x)>$options['maxWidth']){
|
|
<a name="l00734"></a>00734 <span class="comment">// then need to make this one smaller</span>
|
|
<a name="l00735"></a>00735 <a class="code" href="classCpdf.html#o23">$options</a>['<a class="code" href="tva_8inc_8php.html#a17">width</a>']=<a class="code" href="classCpdf.html#o23">$options</a>['maxWidth'];
|
|
<a name="l00736"></a>00736 }
|
|
<a name="l00737"></a>00737
|
|
<a name="l00738"></a>00738 <span class="keywordflow">if</span> ($options['<a class="code" href="tva_8inc_8php.html#a17">width</a>'] && $adjustmentWidth>0 && $setWidth<$options['<a class="code" href="tva_8inc_8php.html#a17">width</a>']){
|
|
<a name="l00739"></a>00739 <span class="comment">// first find the current widths of the columns involved in this mystery</span>
|
|
<a name="l00740"></a>00740 $cols0 = array();
|
|
<a name="l00741"></a>00741 $cols1 = array();
|
|
<a name="l00742"></a>00742 $xq=0;
|
|
<a name="l00743"></a>00743 $presentWidth=0;
|
|
<a name="l00744"></a>00744 $last='';
|
|
<a name="l00745"></a>00745 foreach($pos as $colName=>$p){
|
|
<a name="l00746"></a>00746 <span class="keywordflow">if</span> (!isset($options['cols'][$last]) || !isset($options['cols'][$last]['width']) || $options['cols'][$last]['width']<=0){
|
|
<a name="l00747"></a>00747 <span class="keywordflow">if</span> (strlen($last)){
|
|
<a name="l00748"></a>00748 $cols0[$last]=<a class="code" href="line__update_8php.html#a10">$p</a>-$xq -<a class="code" href="classCpdf.html#o23">$options</a>['gap'];
|
|
<a name="l00749"></a>00749 $presentWidth += (<a class="code" href="line__update_8php.html#a10">$p</a>-$xq - $options['gap']);
|
|
<a name="l00750"></a>00750 }
|
|
<a name="l00751"></a>00751 } <span class="keywordflow">else</span> {
|
|
<a name="l00752"></a>00752 $cols1[$last]=<a class="code" href="line__update_8php.html#a10">$p</a>-$xq;
|
|
<a name="l00753"></a>00753 }
|
|
<a name="l00754"></a>00754 $last=$colName;
|
|
<a name="l00755"></a>00755 $xq=<a class="code" href="line__update_8php.html#a10">$p</a>;
|
|
<a name="l00756"></a>00756 }
|
|
<a name="l00757"></a>00757 <span class="comment">// $cols0 contains the widths of all the columns which are not set</span>
|
|
<a name="l00758"></a>00758 $neededWidth = <a class="code" href="classCpdf.html#o23">$options</a>['width']-$setWidth;
|
|
<a name="l00759"></a>00759 <span class="comment">// if needed width is negative then add it equally to each column, else get more tricky</span>
|
|
<a name="l00760"></a>00760 <span class="keywordflow">if</span> ($presentWidth<$neededWidth){
|
|
<a name="l00761"></a>00761 foreach($cols0 as $colName=>$w){
|
|
<a name="l00762"></a>00762 $cols0[$colName]+= ($neededWidth-$presentWidth)/count($cols0);
|
|
<a name="l00763"></a>00763 }
|
|
<a name="l00764"></a>00764 } <span class="keywordflow">else</span> {
|
|
<a name="l00765"></a>00765
|
|
<a name="l00766"></a>00766 $cnt=0;
|
|
<a name="l00767"></a>00767 <span class="keywordflow">while</span> ($presentWidth>$neededWidth && $cnt<100){
|
|
<a name="l00768"></a>00768 $cnt++; <span class="comment">// insurance policy</span>
|
|
<a name="l00769"></a>00769 <span class="comment">// find the widest columns, and the next to widest width</span>
|
|
<a name="l00770"></a>00770 $aWidest = array();
|
|
<a name="l00771"></a>00771 $nWidest=0;
|
|
<a name="l00772"></a>00772 $widest=0;
|
|
<a name="l00773"></a>00773 foreach($cols0 as $colName=>$w){
|
|
<a name="l00774"></a>00774 <span class="keywordflow">if</span> ($w>$widest){
|
|
<a name="l00775"></a>00775 $aWidest=array($colName);
|
|
<a name="l00776"></a>00776 $nWidest = $widest;
|
|
<a name="l00777"></a>00777 $widest=<a class="code" href="balance_8php.html#a2">$w</a>;
|
|
<a name="l00778"></a>00778 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ($w==$widest){
|
|
<a name="l00779"></a>00779 $aWidest[]=$colName;
|
|
<a name="l00780"></a>00780 }
|
|
<a name="l00781"></a>00781 }
|
|
<a name="l00782"></a>00782 <span class="comment">// then figure out what the width of the widest columns would have to be to take up all the slack</span>
|
|
<a name="l00783"></a>00783 $newWidestWidth = $widest - ($presentWidth-$neededWidth)/count($aWidest);
|
|
<a name="l00784"></a>00784 <span class="keywordflow">if</span> ($newWidestWidth > $nWidest){
|
|
<a name="l00785"></a>00785 <span class="comment">// then there is space to set them to this</span>
|
|
<a name="l00786"></a>00786 foreach($aWidest as $colName){
|
|
<a name="l00787"></a>00787 $cols0[$colName] = $newWidestWidth;
|
|
<a name="l00788"></a>00788 }
|
|
<a name="l00789"></a>00789 $presentWidth=$neededWidth;
|
|
<a name="l00790"></a>00790 } <span class="keywordflow">else</span> {
|
|
<a name="l00791"></a>00791 <span class="comment">// there is not space, reduce the size of the widest ones down to the next size down, and we</span>
|
|
<a name="l00792"></a>00792 <span class="comment">// will go round again</span>
|
|
<a name="l00793"></a>00793 foreach($aWidest as $colName){
|
|
<a name="l00794"></a>00794 $cols0[$colName] = $nWidest;
|
|
<a name="l00795"></a>00795 }
|
|
<a name="l00796"></a>00796 $presentWidth=$presentWidth-($widest-$nWidest)*count($aWidest);
|
|
<a name="l00797"></a>00797 }
|
|
<a name="l00798"></a>00798 }
|
|
<a name="l00799"></a>00799 }
|
|
<a name="l00800"></a>00800 <span class="comment">// $cols0 now contains the new widths of the constrained columns.</span>
|
|
<a name="l00801"></a>00801 <span class="comment">// now need to update the $pos and $maxWidth arrays</span>
|
|
<a name="l00802"></a>00802 $xq=0;
|
|
<a name="l00803"></a>00803 foreach($pos as $colName=>$p){
|
|
<a name="l00804"></a>00804 $pos[$colName]=$xq;
|
|
<a name="l00805"></a>00805 <span class="keywordflow">if</span> (!isset($options['cols'][$colName]) || !isset($options['cols'][$colName]['width']) || $options['cols'][$colName]['width']<=0){
|
|
<a name="l00806"></a>00806 <span class="keywordflow">if</span> (isset($cols0[$colName])){
|
|
<a name="l00807"></a>00807 $xq += $cols0[$colName] + <a class="code" href="classCpdf.html#o23">$options</a>['gap'];
|
|
<a name="l00808"></a>00808 $maxWidth[$colName]=$cols0[$colName];
|
|
<a name="l00809"></a>00809 }
|
|
<a name="l00810"></a>00810 } <span class="keywordflow">else</span> {
|
|
<a name="l00811"></a>00811 <span class="keywordflow">if</span> (isset($cols1[$colName])){
|
|
<a name="l00812"></a>00812 $xq += $cols1[$colName];
|
|
<a name="l00813"></a>00813 }
|
|
<a name="l00814"></a>00814 }
|
|
<a name="l00815"></a>00815 }
|
|
<a name="l00816"></a>00816
|
|
<a name="l00817"></a>00817 <a class="code" href="impress__rapport_8php.html#a3">$t</a>=<a class="code" href="ecrit__ouv_8php.html#a9">$x</a>+<a class="code" href="classCpdf.html#o23">$options</a>['width'];
|
|
<a name="l00818"></a>00818 $pos['_end_']=<a class="code" href="impress__rapport_8php.html#a3">$t</a>;
|
|
<a name="l00819"></a>00819 }
|
|
<a name="l00820"></a>00820
|
|
<a name="l00821"></a>00821 <span class="comment">// now adjust the table to the correct location across the page</span>
|
|
<a name="l00822"></a>00822 <span class="keywordflow">switch</span> ($options['xPos']){
|
|
<a name="l00823"></a>00823 <span class="keywordflow">case</span> 'left':
|
|
<a name="l00824"></a>00824 $xref = $this->ez['leftMargin'];
|
|
<a name="l00825"></a>00825 <span class="keywordflow">break</span>;
|
|
<a name="l00826"></a>00826 <span class="keywordflow">case</span> 'right':
|
|
<a name="l00827"></a>00827 $xref = $this->ez['pageWidth'] - $this->ez['rightMargin'];
|
|
<a name="l00828"></a>00828 <span class="keywordflow">break</span>;
|
|
<a name="l00829"></a>00829 <span class="keywordflow">case</span> 'centre':
|
|
<a name="l00830"></a>00830 <span class="keywordflow">case</span> 'center':
|
|
<a name="l00831"></a>00831 $xref = $middle;
|
|
<a name="l00832"></a>00832 <span class="keywordflow">break</span>;
|
|
<a name="l00833"></a>00833 <span class="keywordflow">default</span>:
|
|
<a name="l00834"></a>00834 $xref = <a class="code" href="classCpdf.html#o23">$options</a>['xPos'];
|
|
<a name="l00835"></a>00835 <span class="keywordflow">break</span>;
|
|
<a name="l00836"></a>00836 }
|
|
<a name="l00837"></a>00837 <span class="keywordflow">switch</span> ($options['xOrientation']){
|
|
<a name="l00838"></a>00838 <span class="keywordflow">case</span> 'left':
|
|
<a name="l00839"></a>00839 $dx = $xref-<a class="code" href="impress__rapport_8php.html#a3">$t</a>;
|
|
<a name="l00840"></a>00840 <span class="keywordflow">break</span>;
|
|
<a name="l00841"></a>00841 <span class="keywordflow">case</span> 'right':
|
|
<a name="l00842"></a>00842 $dx = $xref;
|
|
<a name="l00843"></a>00843 <span class="keywordflow">break</span>;
|
|
<a name="l00844"></a>00844 <span class="keywordflow">case</span> 'centre':
|
|
<a name="l00845"></a>00845 <span class="keywordflow">case</span> 'center':
|
|
<a name="l00846"></a>00846 $dx = $xref-$t/2;
|
|
<a name="l00847"></a>00847 <span class="keywordflow">break</span>;
|
|
<a name="l00848"></a>00848 }
|
|
<a name="l00849"></a>00849
|
|
<a name="l00850"></a>00850
|
|
<a name="l00851"></a>00851 foreach($pos as $k=>$v){
|
|
<a name="l00852"></a>00852 $pos[$k]=$v+$dx;
|
|
<a name="l00853"></a>00853 }
|
|
<a name="l00854"></a>00854 $x0=<a class="code" href="ecrit__ouv_8php.html#a9">$x</a>+$dx;
|
|
<a name="l00855"></a>00855 $x1=<a class="code" href="impress__rapport_8php.html#a3">$t</a>+$dx;
|
|
<a name="l00856"></a>00856
|
|
<a name="l00857"></a>00857 $baseLeftMargin = $this->ez['leftMargin'];
|
|
<a name="l00858"></a>00858 $basePos = $pos;
|
|
<a name="l00859"></a>00859 $baseX0 = $x0;
|
|
<a name="l00860"></a>00860 $baseX1 = $x1;
|
|
<a name="l00861"></a>00861
|
|
<a name="l00862"></a>00862 <span class="comment">// ok, just about ready to make me a table</span>
|
|
<a name="l00863"></a>00863 $this-><a class="code" href="classCpdf.html#a32">setColor</a>($options['textCol'][0],$options['textCol'][1],$options['textCol'][2]);
|
|
<a name="l00864"></a>00864 $this-><a class="code" href="classCpdf.html#a33">setStrokeColor</a>($options['shadeCol'][0],$options['shadeCol'][1],$options['shadeCol'][2]);
|
|
<a name="l00865"></a>00865
|
|
<a name="l00866"></a>00866 $middle = ($x1+$x0)/2;
|
|
<a name="l00867"></a>00867
|
|
<a name="l00868"></a>00868 <span class="comment">// start a transaction which will be used to regress the table, if there are not enough rows protected</span>
|
|
<a name="l00869"></a>00869 <span class="keywordflow">if</span> ($options['protectRows']>0){
|
|
<a name="l00870"></a>00870 $this-><a class="code" href="classCpdf.html#a73">transaction</a>('<a class="code" href="document__modele_8inc_8php.html#a5">start</a>');
|
|
<a name="l00871"></a>00871 $movedOnce=0;
|
|
<a name="l00872"></a>00872 }
|
|
<a name="l00873"></a>00873 $abortTable = 1;
|
|
<a name="l00874"></a>00874 <span class="keywordflow">while</span> ($abortTable){
|
|
<a name="l00875"></a>00875 $abortTable=0;
|
|
<a name="l00876"></a>00876
|
|
<a name="l00877"></a>00877 $dm = $this->ez['leftMargin']-$baseLeftMargin;
|
|
<a name="l00878"></a>00878 foreach($basePos as $k=>$v){
|
|
<a name="l00879"></a>00879 $pos[$k]=$v+$dm;
|
|
<a name="l00880"></a>00880 }
|
|
<a name="l00881"></a>00881 $x0=$baseX0+$dm;
|
|
<a name="l00882"></a>00882 $x1=$baseX1+$dm;
|
|
<a name="l00883"></a>00883 $middle = ($x1+$x0)/2;
|
|
<a name="l00884"></a>00884
|
|
<a name="l00885"></a>00885
|
|
<a name="l00886"></a>00886 <span class="comment">// if the title is set, then do that</span>
|
|
<a name="l00887"></a>00887 <span class="keywordflow">if</span> (strlen($title)){
|
|
<a name="l00888"></a>00888 <a class="code" href="balance_8php.html#a2">$w</a> = $this-><a class="code" href="classCpdf.html#a52">getTextWidth</a>($options['titleFontSize'],$title);
|
|
<a name="l00889"></a>00889 $this->y -= $this-><a class="code" href="classCpdf.html#a45">getFontHeight</a>($options['titleFontSize']);
|
|
<a name="l00890"></a>00890 <span class="keywordflow">if</span> ($this->y < $this->ez['bottomMargin']){
|
|
<a name="l00891"></a>00891 $this-><a class="code" href="classCezpdf.html#a5">ezNewPage</a>();
|
|
<a name="l00892"></a>00892 <span class="comment">// margins may have changed on the newpage</span>
|
|
<a name="l00893"></a>00893 $dm = $this->ez['leftMargin']-$baseLeftMargin;
|
|
<a name="l00894"></a>00894 foreach($basePos as $k=>$v){
|
|
<a name="l00895"></a>00895 $pos[$k]=$v+$dm;
|
|
<a name="l00896"></a>00896 }
|
|
<a name="l00897"></a>00897 $x0=$baseX0+$dm;
|
|
<a name="l00898"></a>00898 $x1=$baseX1+$dm;
|
|
<a name="l00899"></a>00899 $middle = ($x1+$x0)/2;
|
|
<a name="l00900"></a>00900 $this->y -= $this-><a class="code" href="classCpdf.html#a45">getFontHeight</a>($options['titleFontSize']);
|
|
<a name="l00901"></a>00901 }
|
|
<a name="l00902"></a>00902 $this-><a class="code" href="classCpdf.html#a51">addText</a>($middle-$w/2,$this->y,$options['titleFontSize'],$title);
|
|
<a name="l00903"></a>00903 $this->y -= <a class="code" href="classCpdf.html#o23">$options</a>['titleGap'];
|
|
<a name="l00904"></a>00904 }
|
|
<a name="l00905"></a>00905
|
|
<a name="l00906"></a>00906 <span class="comment">// margins may have changed on the newpage</span>
|
|
<a name="l00907"></a>00907 $dm = $this->ez['leftMargin']-$baseLeftMargin;
|
|
<a name="l00908"></a>00908 foreach($basePos as $k=>$v){
|
|
<a name="l00909"></a>00909 $pos[$k]=$v+$dm;
|
|
<a name="l00910"></a>00910 }
|
|
<a name="l00911"></a>00911 $x0=$baseX0+$dm;
|
|
<a name="l00912"></a>00912 $x1=$baseX1+$dm;
|
|
<a name="l00913"></a>00913
|
|
<a name="l00914"></a>00914 <a class="code" href="classCezpdf.html#o1">$y</a>=$this->y; <span class="comment">// to simplify the code a bit</span>
|
|
<a name="l00915"></a>00915
|
|
<a name="l00916"></a>00916 <span class="comment">// make the table</span>
|
|
<a name="l00917"></a>00917 <a class="code" href="readme_8php.html#a9">$height</a> = $this-><a class="code" href="classCpdf.html#a45">getFontHeight</a>($options['fontSize']);
|
|
<a name="l00918"></a>00918 $decender = $this-><a class="code" href="classCpdf.html#a46">getFontDecender</a>($options['fontSize']);
|
|
<a name="l00919"></a>00919
|
|
<a name="l00920"></a>00920
|
|
<a name="l00921"></a>00921
|
|
<a name="l00922"></a>00922 $y0=<a class="code" href="classCezpdf.html#o1">$y</a>+$decender;
|
|
<a name="l00923"></a>00923 $dy=0;
|
|
<a name="l00924"></a>00924 <span class="keywordflow">if</span> ($options['showHeadings']){
|
|
<a name="l00925"></a>00925 <span class="comment">// this function will move the start of the table to a new page if it does not fit on this one</span>
|
|
<a name="l00926"></a>00926 $headingHeight = $this-><a class="code" href="classCezpdf.html#a19">ezPrvtTableColumnHeadings</a>($cols,$pos,$maxWidth,$height,$decender,$options['rowGap'],$options['fontSize'],$y,$options);
|
|
<a name="l00927"></a>00927 $y0 = <a class="code" href="classCezpdf.html#o1">$y</a>+$headingHeight;
|
|
<a name="l00928"></a>00928 $y1 = <a class="code" href="classCezpdf.html#o1">$y</a>;
|
|
<a name="l00929"></a>00929
|
|
<a name="l00930"></a>00930
|
|
<a name="l00931"></a>00931 $dm = $this->ez['leftMargin']-$baseLeftMargin;
|
|
<a name="l00932"></a>00932 foreach($basePos as $k=>$v){
|
|
<a name="l00933"></a>00933 $pos[$k]=$v+$dm;
|
|
<a name="l00934"></a>00934 }
|
|
<a name="l00935"></a>00935 $x0=$baseX0+$dm;
|
|
<a name="l00936"></a>00936 $x1=$baseX1+$dm;
|
|
<a name="l00937"></a>00937
|
|
<a name="l00938"></a>00938 } <span class="keywordflow">else</span> {
|
|
<a name="l00939"></a>00939 $y1 = $y0;
|
|
<a name="l00940"></a>00940 }
|
|
<a name="l00941"></a>00941 $firstLine=1;
|
|
<a name="l00942"></a>00942
|
|
<a name="l00943"></a>00943
|
|
<a name="l00944"></a>00944 <span class="comment">// open an object here so that the text can be put in over the shading</span>
|
|
<a name="l00945"></a>00945 <span class="keywordflow">if</span> ($options['shaded']){
|
|
<a name="l00946"></a>00946 $this-><a class="code" href="classCpdf.html#a55">saveState</a>();
|
|
<a name="l00947"></a>00947 $textObjectId = $this-><a class="code" href="classCpdf.html#a57">openObject</a>();
|
|
<a name="l00948"></a>00948 $this-><a class="code" href="classCpdf.html#a59">closeObject</a>();
|
|
<a name="l00949"></a>00949 $this-><a class="code" href="classCpdf.html#a61">addObject</a>($textObjectId);
|
|
<a name="l00950"></a>00950 $this-><a class="code" href="classCpdf.html#a58">reopenObject</a>($textObjectId);
|
|
<a name="l00951"></a>00951 }
|
|
<a name="l00952"></a>00952
|
|
<a name="l00953"></a>00953 $cnt=0;
|
|
<a name="l00954"></a>00954 $newPage=0;
|
|
<a name="l00955"></a>00955 foreach($data as $row){
|
|
<a name="l00956"></a>00956 $cnt++;
|
|
<a name="l00957"></a>00957 <span class="comment">// the transaction support will be used to prevent rows being split</span>
|
|
<a name="l00958"></a>00958 <span class="keywordflow">if</span> ($options['splitRows']==0){
|
|
<a name="l00959"></a>00959 $pageStart = $this->ezPageCount;
|
|
<a name="l00960"></a>00960 <span class="keywordflow">if</span> (isset($this->ez['columns']) && $this->ez['columns']['on']==1){
|
|
<a name="l00961"></a>00961 $columnStart = $this->ez['columns']['colNum'];
|
|
<a name="l00962"></a>00962 }
|
|
<a name="l00963"></a>00963 $this-><a class="code" href="classCpdf.html#a73">transaction</a>('<a class="code" href="document__modele_8inc_8php.html#a5">start</a>');
|
|
<a name="l00964"></a>00964 $row_orig = <a class="code" href="cbc__be_8inc_8php.html#a0">$row</a>;
|
|
<a name="l00965"></a>00965 $y_orig = <a class="code" href="classCezpdf.html#o1">$y</a>;
|
|
<a name="l00966"></a>00966 $y0_orig = $y0;
|
|
<a name="l00967"></a>00967 $y1_orig = $y1;
|
|
<a name="l00968"></a>00968 }
|
|
<a name="l00969"></a>00969 <a class="code" href="readme_8php.html#a20">$ok</a>=0;
|
|
<a name="l00970"></a>00970 $secondTurn=0;
|
|
<a name="l00971"></a>00971 <span class="keywordflow">while</span>(!$abortTable && <a class="code" href="readme_8php.html#a20">$ok</a> == 0){
|
|
<a name="l00972"></a>00972
|
|
<a name="l00973"></a>00973 $mx=0;
|
|
<a name="l00974"></a>00974 $newRow=1;
|
|
<a name="l00975"></a>00975 <span class="keywordflow">while</span>(!$abortTable && ($newPage || $newRow)){
|
|
<a name="l00976"></a>00976
|
|
<a name="l00977"></a>00977 <a class="code" href="classCezpdf.html#o1">$y</a>-=<a class="code" href="readme_8php.html#a9">$height</a>;
|
|
<a name="l00978"></a>00978 <span class="keywordflow">if</span> ($<a class="code" href="classCpdf.html#a43">newPage</a> || $y<$this->ez['bottomMargin'] || (isset($options['minRowSpace']) && $y<($this->ez['bottomMargin']+$options['minRowSpace'])) ){
|
|
<a name="l00979"></a>00979 <span class="comment">// check that enough rows are with the heading</span>
|
|
<a name="l00980"></a>00980 <span class="keywordflow">if</span> ($options['protectRows']>0 && $movedOnce==0 && $cnt<=$options['protectRows']){
|
|
<a name="l00981"></a>00981 <span class="comment">// then we need to move the whole table onto the next page</span>
|
|
<a name="l00982"></a>00982 $movedOnce = 1;
|
|
<a name="l00983"></a>00983 $abortTable = 1;
|
|
<a name="l00984"></a>00984 }
|
|
<a name="l00985"></a>00985
|
|
<a name="l00986"></a>00986 $y2=<a class="code" href="classCezpdf.html#o1">$y</a>-$mx+2*<a class="code" href="readme_8php.html#a9">$height</a>+$decender-$newRow*<a class="code" href="readme_8php.html#a9">$height</a>;
|
|
<a name="l00987"></a>00987 <span class="keywordflow">if</span> ($options['showLines']){
|
|
<a name="l00988"></a>00988 <span class="keywordflow">if</span> (!$options['showHeadings']){
|
|
<a name="l00989"></a>00989 $y0=$y1;
|
|
<a name="l00990"></a>00990 }
|
|
<a name="l00991"></a>00991 $this-><a class="code" href="classCezpdf.html#a18">ezPrvtTableDrawLines</a>($pos,$options['gap'],$x0,$x1,$y0,$y1,$y2,$options['lineCol'],$options['innerLineThickness'],$options['outerLineThickness'],$options['showLines']);
|
|
<a name="l00992"></a>00992 }
|
|
<a name="l00993"></a>00993 <span class="keywordflow">if</span> ($options['shaded']){
|
|
<a name="l00994"></a>00994 $this-><a class="code" href="classCpdf.html#a59">closeObject</a>();
|
|
<a name="l00995"></a>00995 $this-><a class="code" href="classCpdf.html#a56">restoreState</a>();
|
|
<a name="l00996"></a>00996 }
|
|
<a name="l00997"></a>00997 $this-><a class="code" href="classCezpdf.html#a5">ezNewPage</a>();
|
|
<a name="l00998"></a>00998 <span class="comment">// and the margins may have changed, this is due to the possibility of the columns being turned on</span>
|
|
<a name="l00999"></a>00999 <span class="comment">// as the columns are managed by manipulating the margins</span>
|
|
<a name="l01000"></a>01000
|
|
<a name="l01001"></a>01001 $dm = $this->ez['leftMargin']-$baseLeftMargin;
|
|
<a name="l01002"></a>01002 foreach($basePos as $k=>$v){
|
|
<a name="l01003"></a>01003 $pos[$k]=$v+$dm;
|
|
<a name="l01004"></a>01004 }
|
|
<a name="l01005"></a>01005 <span class="comment">// $x0=$x0+$dm;</span>
|
|
<a name="l01006"></a>01006 <span class="comment">// $x1=$x1+$dm;</span>
|
|
<a name="l01007"></a>01007 $x0=$baseX0+$dm;
|
|
<a name="l01008"></a>01008 $x1=$baseX1+$dm;
|
|
<a name="l01009"></a>01009
|
|
<a name="l01010"></a>01010 <span class="keywordflow">if</span> ($options['shaded']){
|
|
<a name="l01011"></a>01011 $this-><a class="code" href="classCpdf.html#a55">saveState</a>();
|
|
<a name="l01012"></a>01012 $textObjectId = $this-><a class="code" href="classCpdf.html#a57">openObject</a>();
|
|
<a name="l01013"></a>01013 $this-><a class="code" href="classCpdf.html#a59">closeObject</a>();
|
|
<a name="l01014"></a>01014 $this-><a class="code" href="classCpdf.html#a61">addObject</a>($textObjectId);
|
|
<a name="l01015"></a>01015 $this-><a class="code" href="classCpdf.html#a58">reopenObject</a>($textObjectId);
|
|
<a name="l01016"></a>01016 }
|
|
<a name="l01017"></a>01017 $this-><a class="code" href="classCpdf.html#a32">setColor</a>($options['textCol'][0],$options['textCol'][1],$options['textCol'][2],1);
|
|
<a name="l01018"></a>01018 <a class="code" href="classCezpdf.html#o1">$y</a> = $this->ez['pageHeight']-$this->ez['topMargin'];
|
|
<a name="l01019"></a>01019 $y0=<a class="code" href="classCezpdf.html#o1">$y</a>+$decender;
|
|
<a name="l01020"></a>01020 $mx=0;
|
|
<a name="l01021"></a>01021 <span class="keywordflow">if</span> ($options['showHeadings']){
|
|
<a name="l01022"></a>01022 $this-><a class="code" href="classCezpdf.html#a19">ezPrvtTableColumnHeadings</a>($cols,$pos,$maxWidth,$height,$decender,$options['rowGap'],$options['fontSize'],$y,$options);
|
|
<a name="l01023"></a>01023 $y1=<a class="code" href="classCezpdf.html#o1">$y</a>;
|
|
<a name="l01024"></a>01024 } <span class="keywordflow">else</span> {
|
|
<a name="l01025"></a>01025 $y1=$y0;
|
|
<a name="l01026"></a>01026 }
|
|
<a name="l01027"></a>01027 $firstLine=1;
|
|
<a name="l01028"></a>01028 <a class="code" href="classCezpdf.html#o1">$y</a> -= $height;
|
|
<a name="l01029"></a>01029 }
|
|
<a name="l01030"></a>01030 $newRow=0;
|
|
<a name="l01031"></a>01031 <span class="comment">// write the actual data</span>
|
|
<a name="l01032"></a>01032 <span class="comment">// if these cells need to be split over a page, then $newPage will be set, and the remaining</span>
|
|
<a name="l01033"></a>01033 <span class="comment">// text will be placed in $leftOvers</span>
|
|
<a name="l01034"></a>01034 $newPage=0;
|
|
<a name="l01035"></a>01035 $leftOvers=array();
|
|
<a name="l01036"></a>01036
|
|
<a name="l01037"></a>01037 foreach($cols as $colName=>$colTitle){
|
|
<a name="l01038"></a>01038 $this-><a class="code" href="classCezpdf.html#a16">ezSetY</a>($y+$height);
|
|
<a name="l01039"></a>01039 $colNewPage=0;
|
|
<a name="l01040"></a>01040 <span class="keywordflow">if</span> (isset($row[$colName])){
|
|
<a name="l01041"></a>01041 <span class="keywordflow">if</span> (isset($options['cols'][$colName]) && isset($options['cols'][$colName]['link']) && strlen($options['cols'][$colName]['link'])){
|
|
<a name="l01042"></a>01042
|
|
<a name="l01043"></a>01043 $lines = explode(<span class="stringliteral">"\n"</span>,$row[$colName]);
|
|
<a name="l01044"></a>01044 <span class="keywordflow">if</span> (isset($row[$options['cols'][$colName]['link']]) && strlen($row[$options['cols'][$colName]['link']])){
|
|
<a name="l01045"></a>01045 foreach($lines as $k=>$v){
|
|
<a name="l01046"></a>01046 $lines[$k]='<c:<a class="code" href="classCezpdf.html#a28">alink</a>:'.$row[<a class="code" href="classCpdf.html#o23">$options</a>['cols'][$colName]['link']].<span class="charliteral">'>'</span>.$v.'</c:<a class="code" href="classCezpdf.html#a28">alink</a>>';
|
|
<a name="l01047"></a>01047 }
|
|
<a name="l01048"></a>01048 }
|
|
<a name="l01049"></a>01049 } <span class="keywordflow">else</span> {
|
|
<a name="l01050"></a>01050 $lines = explode(<span class="stringliteral">"\n"</span>,$row[$colName]);
|
|
<a name="l01051"></a>01051 }
|
|
<a name="l01052"></a>01052 } <span class="keywordflow">else</span> {
|
|
<a name="l01053"></a>01053 $lines = array();
|
|
<a name="l01054"></a>01054 }
|
|
<a name="l01055"></a>01055 $this->y -= <a class="code" href="classCpdf.html#o23">$options</a>['rowGap'];
|
|
<a name="l01056"></a>01056 foreach ($lines as $<a class="code" href="classCpdf.html#a34">line</a>){
|
|
<a name="l01057"></a>01057 $line = $this-><a class="code" href="classCezpdf.html#a22">ezProcessText</a>($line);
|
|
<a name="l01058"></a>01058 <a class="code" href="bilan_8php.html#a2">$start</a>=1;
|
|
<a name="l01059"></a>01059
|
|
<a name="l01060"></a>01060 <span class="keywordflow">while</span> (strlen($line) || $<a class="code" href="document__modele_8inc_8php.html#a5">start</a>){
|
|
<a name="l01061"></a>01061 <a class="code" href="bilan_8php.html#a2">$start</a>=0;
|
|
<a name="l01062"></a>01062 <span class="keywordflow">if</span> (!$colNewPage){
|
|
<a name="l01063"></a>01063 $this->y=$this->y-<a class="code" href="readme_8php.html#a9">$height</a>;
|
|
<a name="l01064"></a>01064 }
|
|
<a name="l01065"></a>01065 <span class="keywordflow">if</span> ($this->y < $this->ez['bottomMargin']){
|
|
<a name="l01066"></a>01066 <span class="comment">// $this->ezNewPage();</span>
|
|
<a name="l01067"></a>01067 $newPage=1; <span class="comment">// whether a new page is required for any of the columns</span>
|
|
<a name="l01068"></a>01068 $colNewPage=1; <span class="comment">// whether a new page is required for this column</span>
|
|
<a name="l01069"></a>01069 }
|
|
<a name="l01070"></a>01070 <span class="keywordflow">if</span> ($colNewPage){
|
|
<a name="l01071"></a>01071 <span class="keywordflow">if</span> (isset($leftOvers[$colName])){
|
|
<a name="l01072"></a>01072 $leftOvers[$colName].=<span class="stringliteral">"\n"</span>.$line;
|
|
<a name="l01073"></a>01073 } <span class="keywordflow">else</span> {
|
|
<a name="l01074"></a>01074 $leftOvers[$colName] = $line;
|
|
<a name="l01075"></a>01075 }
|
|
<a name="l01076"></a>01076 $line='';
|
|
<a name="l01077"></a>01077 } <span class="keywordflow">else</span> {
|
|
<a name="l01078"></a>01078 <span class="keywordflow">if</span> (isset($options['cols'][$colName]) && isset($options['cols'][$colName]['justification']) ){
|
|
<a name="l01079"></a>01079 $just = <a class="code" href="classCpdf.html#o23">$options</a>['cols'][$colName]['justification'];
|
|
<a name="l01080"></a>01080 } <span class="keywordflow">else</span> {
|
|
<a name="l01081"></a>01081 $just='left';
|
|
<a name="l01082"></a>01082 }
|
|
<a name="l01083"></a>01083
|
|
<a name="l01084"></a>01084 $line=$this-><a class="code" href="classCpdf.html#a54">addTextWrap</a>($pos[$colName],$this->y,$maxWidth[$colName],$options['fontSize'],$line,$just);
|
|
<a name="l01085"></a>01085 }
|
|
<a name="l01086"></a>01086 }
|
|
<a name="l01087"></a>01087 }
|
|
<a name="l01088"></a>01088
|
|
<a name="l01089"></a>01089 $dy=<a class="code" href="classCezpdf.html#o1">$y</a>+<a class="code" href="readme_8php.html#a9">$height</a>-$this->y+<a class="code" href="classCpdf.html#o23">$options</a>['rowGap'];
|
|
<a name="l01090"></a>01090 <span class="keywordflow">if</span> ($dy-$height*$<a class="code" href="classCpdf.html#a43">newPage</a>>$mx){
|
|
<a name="l01091"></a>01091 $mx=$dy-<a class="code" href="readme_8php.html#a9">$height</a>*$newPage;
|
|
<a name="l01092"></a>01092 }
|
|
<a name="l01093"></a>01093 }
|
|
<a name="l01094"></a>01094 <span class="comment">// set $row to $leftOvers so that they will be processed onto the new page</span>
|
|
<a name="l01095"></a>01095 <a class="code" href="cbc__be_8inc_8php.html#a0">$row</a> = $leftOvers;
|
|
<a name="l01096"></a>01096 <span class="comment">// now add the shading underneath</span>
|
|
<a name="l01097"></a>01097 <span class="keywordflow">if</span> ($options['shaded'] && $cnt%2==0){
|
|
<a name="l01098"></a>01098 $this-><a class="code" href="classCpdf.html#a59">closeObject</a>();
|
|
<a name="l01099"></a>01099 $this-><a class="code" href="classCpdf.html#a32">setColor</a>($options['shadeCol'][0],$options['shadeCol'][1],$options['shadeCol'][2],1);
|
|
<a name="l01100"></a>01100 $this-><a class="code" href="classCpdf.html#a41">filledRectangle</a>($x0-$options['gap']/2,$y+$decender+$height-$mx,$x1-$x0,$mx);
|
|
<a name="l01101"></a>01101 $this-><a class="code" href="classCpdf.html#a58">reopenObject</a>($textObjectId);
|
|
<a name="l01102"></a>01102 }
|
|
<a name="l01103"></a>01103
|
|
<a name="l01104"></a>01104 <span class="keywordflow">if</span> ($options['shaded']==2 && $cnt%2==1){
|
|
<a name="l01105"></a>01105 $this-><a class="code" href="classCpdf.html#a59">closeObject</a>();
|
|
<a name="l01106"></a>01106 $this-><a class="code" href="classCpdf.html#a32">setColor</a>($options['shadeCol2'][0],$options['shadeCol2'][1],$options['shadeCol2'][2],1);
|
|
<a name="l01107"></a>01107 $this-><a class="code" href="classCpdf.html#a41">filledRectangle</a>($x0-$options['gap']/2,$y+$decender+$height-$mx,$x1-$x0,$mx);
|
|
<a name="l01108"></a>01108 $this-><a class="code" href="classCpdf.html#a58">reopenObject</a>($textObjectId);
|
|
<a name="l01109"></a>01109 }
|
|
<a name="l01110"></a>01110
|
|
<a name="l01111"></a>01111 <span class="keywordflow">if</span> ($options['showLines']>1){
|
|
<a name="l01112"></a>01112 <span class="comment">// then draw a line on the top of each block</span>
|
|
<a name="l01113"></a>01113 <span class="comment">// $this->closeObject();</span>
|
|
<a name="l01114"></a>01114 $this-><a class="code" href="classCpdf.html#a55">saveState</a>();
|
|
<a name="l01115"></a>01115 $this-><a class="code" href="classCpdf.html#a33">setStrokeColor</a>($options['lineCol'][0],$options['lineCol'][1],$options['lineCol'][2],1);
|
|
<a name="l01116"></a>01116 <span class="comment">// $this->line($x0-$options['gap']/2,$y+$decender+$height-$mx,$x1-$x0,$mx);</span>
|
|
<a name="l01117"></a>01117 <span class="keywordflow">if</span> ($firstLine){
|
|
<a name="l01118"></a>01118 $this-><a class="code" href="classCpdf.html#a39">setLineStyle</a>($options['outerLineThickness']);
|
|
<a name="l01119"></a>01119 $firstLine=0;
|
|
<a name="l01120"></a>01120 } <span class="keywordflow">else</span> {
|
|
<a name="l01121"></a>01121 $this-><a class="code" href="classCpdf.html#a39">setLineStyle</a>($options['innerLineThickness']);
|
|
<a name="l01122"></a>01122 }
|
|
<a name="l01123"></a>01123 $this-><a class="code" href="classCpdf.html#a34">line</a>($x0-$options['gap']/2,$y+$decender+$height,$x1-$options['gap']/2,$y+$decender+$height);
|
|
<a name="l01124"></a>01124 $this-><a class="code" href="classCpdf.html#a56">restoreState</a>();
|
|
<a name="l01125"></a>01125 <span class="comment">// $this->reopenObject($textObjectId);</span>
|
|
<a name="l01126"></a>01126 }
|
|
<a name="l01127"></a>01127 } <span class="comment">// end of while </span>
|
|
<a name="l01128"></a>01128 <a class="code" href="classCezpdf.html#o1">$y</a>=<a class="code" href="classCezpdf.html#o1">$y</a>-$mx+<a class="code" href="readme_8php.html#a9">$height</a>;
|
|
<a name="l01129"></a>01129
|
|
<a name="l01130"></a>01130 <span class="comment">// checking row split over pages</span>
|
|
<a name="l01131"></a>01131 <span class="keywordflow">if</span> ($options['splitRows']==0){
|
|
<a name="l01132"></a>01132 <span class="keywordflow">if</span> ( ( ($this->ezPageCount != $pageStart) || (isset($this->ez['columns']) && $this->ez['columns']['on']==1 && $columnStart != $this->ez['columns']['colNum'] )) && $secondTurn==0){
|
|
<a name="l01133"></a>01133 <span class="comment">// then we need to go back and try that again !</span>
|
|
<a name="l01134"></a>01134 $newPage=1;
|
|
<a name="l01135"></a>01135 $secondTurn=1;
|
|
<a name="l01136"></a>01136 $this-><a class="code" href="classCpdf.html#a73">transaction</a>('rewind');
|
|
<a name="l01137"></a>01137 <a class="code" href="cbc__be_8inc_8php.html#a0">$row</a> = $row_orig;
|
|
<a name="l01138"></a>01138 <a class="code" href="classCezpdf.html#o1">$y</a> = $y_orig;
|
|
<a name="l01139"></a>01139 $y0 = $y0_orig;
|
|
<a name="l01140"></a>01140 $y1 = $y1_orig;
|
|
<a name="l01141"></a>01141 $ok=0;
|
|
<a name="l01142"></a>01142
|
|
<a name="l01143"></a>01143 $dm = $this->ez['leftMargin']-$baseLeftMargin;
|
|
<a name="l01144"></a>01144 foreach($basePos as $k=>$v){
|
|
<a name="l01145"></a>01145 $pos[$k]=$v+$dm;
|
|
<a name="l01146"></a>01146 }
|
|
<a name="l01147"></a>01147 $x0=$baseX0+$dm;
|
|
<a name="l01148"></a>01148 $x1=$baseX1+$dm;
|
|
<a name="l01149"></a>01149
|
|
<a name="l01150"></a>01150 } <span class="keywordflow">else</span> {
|
|
<a name="l01151"></a>01151 $this-><a class="code" href="classCpdf.html#a73">transaction</a>('commit');
|
|
<a name="l01152"></a>01152 $ok=1;
|
|
<a name="l01153"></a>01153 }
|
|
<a name="l01154"></a>01154 } <span class="keywordflow">else</span> {
|
|
<a name="l01155"></a>01155 $ok=1; <span class="comment">// don't go round the loop if splitting rows is allowed</span>
|
|
<a name="l01156"></a>01156 }
|
|
<a name="l01157"></a>01157
|
|
<a name="l01158"></a>01158 } <span class="comment">// end of while to check for row splitting</span>
|
|
<a name="l01159"></a>01159 <span class="keywordflow">if</span> ($abortTable){
|
|
<a name="l01160"></a>01160 <span class="keywordflow">if</span> ($ok==0){
|
|
<a name="l01161"></a>01161 $this-><a class="code" href="classCpdf.html#a73">transaction</a>('abort');
|
|
<a name="l01162"></a>01162 }
|
|
<a name="l01163"></a>01163 <span class="comment">// only the outer transaction should be operational</span>
|
|
<a name="l01164"></a>01164 $this-><a class="code" href="classCpdf.html#a73">transaction</a>('rewind');
|
|
<a name="l01165"></a>01165 $this-><a class="code" href="classCezpdf.html#a5">ezNewPage</a>();
|
|
<a name="l01166"></a>01166 <span class="keywordflow">break</span>;
|
|
<a name="l01167"></a>01167 }
|
|
<a name="l01168"></a>01168
|
|
<a name="l01169"></a>01169 } <span class="comment">// end of foreach ($data as $row)</span>
|
|
<a name="l01170"></a>01170
|
|
<a name="l01171"></a>01171 } <span class="comment">// end of while ($abortTable)</span>
|
|
<a name="l01172"></a>01172
|
|
<a name="l01173"></a>01173 <span class="comment">// table has been put on the page, the rows guarded as required, commit.</span>
|
|
<a name="l01174"></a>01174 $this-><a class="code" href="classCpdf.html#a73">transaction</a>('commit');
|
|
<a name="l01175"></a>01175
|
|
<a name="l01176"></a>01176 $y2=<a class="code" href="classCezpdf.html#o1">$y</a>+$decender;
|
|
<a name="l01177"></a>01177 <span class="keywordflow">if</span> ($options['showLines']){
|
|
<a name="l01178"></a>01178 <span class="keywordflow">if</span> (!$options['showHeadings']){
|
|
<a name="l01179"></a>01179 $y0=$y1;
|
|
<a name="l01180"></a>01180 }
|
|
<a name="l01181"></a>01181 $this-><a class="code" href="classCezpdf.html#a18">ezPrvtTableDrawLines</a>($pos,$options['gap'],$x0,$x1,$y0,$y1,$y2,$options['lineCol'],$options['innerLineThickness'],$options['outerLineThickness'],$options['showLines']);
|
|
<a name="l01182"></a>01182 }
|
|
<a name="l01183"></a>01183
|
|
<a name="l01184"></a>01184 <span class="comment">// close the object for drawing the text on top</span>
|
|
<a name="l01185"></a>01185 <span class="keywordflow">if</span> ($options['shaded']){
|
|
<a name="l01186"></a>01186 $this-><a class="code" href="classCpdf.html#a59">closeObject</a>();
|
|
<a name="l01187"></a>01187 $this-><a class="code" href="classCpdf.html#a56">restoreState</a>();
|
|
<a name="l01188"></a>01188 }
|
|
<a name="l01189"></a>01189
|
|
<a name="l01190"></a>01190 $this->y=<a class="code" href="classCezpdf.html#o1">$y</a>;
|
|
<a name="l01191"></a>01191 <span class="keywordflow">return</span> <a class="code" href="classCezpdf.html#o1">$y</a>;
|
|
<a name="l01192"></a>01192 }
|
|
<a name="l01193"></a>01193
|
|
<a name="l01194"></a>01194 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l01195"></a><a class="code" href="classCezpdf.html#a22">01195</a> function <a class="code" href="classCezpdf.html#a22">ezProcessText</a>($text){
|
|
<a name="l01196"></a>01196 <span class="comment">// this function will intially be used to implement underlining support, but could be used for a range of other</span>
|
|
<a name="l01197"></a>01197 <span class="comment">// purposes</span>
|
|
<a name="l01198"></a>01198 <a class="code" href="client_8inc_8php.html#a8">$search</a> = array('<u><span class="charliteral">','</span><U><span class="charliteral">','</span></u><span class="charliteral">','</span></U>');
|
|
<a name="l01199"></a>01199 $replace = array('<c:uline><span class="charliteral">','</span><c:uline><span class="charliteral">','</span></c:uline><span class="charliteral">','</span></c:uline>');
|
|
<a name="l01200"></a>01200 <span class="keywordflow">return</span> str_replace($search,$replace,$text);
|
|
<a name="l01201"></a>01201 }
|
|
<a name="l01202"></a>01202
|
|
<a name="l01203"></a>01203 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l01204"></a>01204
|
|
<a name="l01205"></a><a class="code" href="classCezpdf.html#a23">01205</a> function <a class="code" href="classCezpdf.html#a23">ezText</a>($text,$<a class="code" href="tva_8inc_8php.html#a15">size</a>=0,$options=array(),$test=0){
|
|
<a name="l01206"></a>01206 <span class="comment">// this will add a string of text to the document, starting at the current drawing</span>
|
|
<a name="l01207"></a>01207 <span class="comment">// position.</span>
|
|
<a name="l01208"></a>01208 <span class="comment">// it will wrap to keep within the margins, including optional offsets from the left</span>
|
|
<a name="l01209"></a>01209 <span class="comment">// and the right, if $size is not specified, then it will be the last one used, or</span>
|
|
<a name="l01210"></a>01210 <span class="comment">// the default value (12 I think).</span>
|
|
<a name="l01211"></a>01211 <span class="comment">// the text will go to the start of the next line when a return code "\n" is found.</span>
|
|
<a name="l01212"></a>01212 <span class="comment">// possible options are:</span>
|
|
<a name="l01213"></a>01213 <span class="comment">// 'left'=> number, gap to leave from the left margin</span>
|
|
<a name="l01214"></a>01214 <span class="comment">// 'right'=> number, gap to leave from the right margin</span>
|
|
<a name="l01215"></a>01215 <span class="comment">// 'aleft'=> number, absolute left position (overrides 'left')</span>
|
|
<a name="l01216"></a>01216 <span class="comment">// 'aright'=> number, absolute right position (overrides 'right')</span>
|
|
<a name="l01217"></a>01217 <span class="comment">// 'justification' => 'left','right','center','centre','full'</span>
|
|
<a name="l01218"></a>01218
|
|
<a name="l01219"></a>01219 <span class="comment">// only set one of the next two items (leading overrides spacing)</span>
|
|
<a name="l01220"></a>01220 <span class="comment">// 'leading' => number, defines the total height taken by the line, independent of the font height.</span>
|
|
<a name="l01221"></a>01221 <span class="comment">// 'spacing' => a real number, though usually set to one of 1, 1.5, 2 (line spacing as used in word processing)</span>
|
|
<a name="l01222"></a>01222
|
|
<a name="l01223"></a>01223 <span class="comment">// if $test is set then this should just check if the text is going to flow onto a new page or not, returning true or false</span>
|
|
<a name="l01224"></a>01224
|
|
<a name="l01225"></a>01225 <span class="comment">// apply the filtering which will make the underlining function.</span>
|
|
<a name="l01226"></a>01226 $text = $this-><a class="code" href="classCezpdf.html#a22">ezProcessText</a>($text);
|
|
<a name="l01227"></a>01227
|
|
<a name="l01228"></a>01228 $newPage=<span class="keyword">false</span>;
|
|
<a name="l01229"></a>01229 $store_y = $this->y;
|
|
<a name="l01230"></a>01230
|
|
<a name="l01231"></a>01231 <span class="keywordflow">if</span> (is_array($options) && isset($options['aleft'])){
|
|
<a name="l01232"></a>01232 $left=<a class="code" href="classCpdf.html#o23">$options</a>['aleft'];
|
|
<a name="l01233"></a>01233 } <span class="keywordflow">else</span> {
|
|
<a name="l01234"></a>01234 $left = $this->ez['leftMargin'] + ((is_array($options) && isset($options['left']))?<a class="code" href="classCpdf.html#o23">$options</a>['left']:0);
|
|
<a name="l01235"></a>01235 }
|
|
<a name="l01236"></a>01236 <span class="keywordflow">if</span> (is_array($options) && isset($options['aright'])){
|
|
<a name="l01237"></a>01237 <a class="code" href="user__sec_8php.html#a15">$right</a>=<a class="code" href="classCpdf.html#o23">$options</a>['aright'];
|
|
<a name="l01238"></a>01238 } <span class="keywordflow">else</span> {
|
|
<a name="l01239"></a>01239 <a class="code" href="user__sec_8php.html#a15">$right</a> = $this->ez['pageWidth'] - $this->ez['rightMargin'] - ((is_array($options) && isset($options['right']))?<a class="code" href="classCpdf.html#o23">$options</a>['right']:0);
|
|
<a name="l01240"></a>01240 }
|
|
<a name="l01241"></a>01241 <span class="keywordflow">if</span> ($<a class="code" href="tva_8inc_8php.html#a15">size</a><=0){
|
|
<a name="l01242"></a>01242 <a class="code" href="readme_8php.html#a8">$size</a> = $this->ez['fontSize'];
|
|
<a name="l01243"></a>01243 } <span class="keywordflow">else</span> {
|
|
<a name="l01244"></a>01244 $this->ez['fontSize']=<a class="code" href="readme_8php.html#a8">$size</a>;
|
|
<a name="l01245"></a>01245 }
|
|
<a name="l01246"></a>01246
|
|
<a name="l01247"></a>01247 <span class="keywordflow">if</span> (is_array($options) && isset($options['justification'])){
|
|
<a name="l01248"></a>01248 $just = <a class="code" href="classCpdf.html#o23">$options</a>['justification'];
|
|
<a name="l01249"></a>01249 } <span class="keywordflow">else</span> {
|
|
<a name="l01250"></a>01250 $just = 'left';
|
|
<a name="l01251"></a>01251 }
|
|
<a name="l01252"></a>01252
|
|
<a name="l01253"></a>01253 <span class="comment">// modifications to give leading and spacing based on those given by Craig Heydenburg 1/1/02</span>
|
|
<a name="l01254"></a>01254 <span class="keywordflow">if</span> (is_array($options) && isset($options['leading'])) { ## use leading instead of spacing
|
|
<a name="l01255"></a>01255 <a class="code" href="readme_8php.html#a9">$height</a> = <a class="code" href="classCpdf.html#o23">$options</a>['leading'];
|
|
<a name="l01256"></a>01256 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (is_array($options) && isset($options['spacing'])) {
|
|
<a name="l01257"></a>01257 <a class="code" href="readme_8php.html#a9">$height</a> = $this-><a class="code" href="classCpdf.html#a45">getFontHeight</a>($<a class="code" href="tva_8inc_8php.html#a15">size</a>) * <a class="code" href="classCpdf.html#o23">$options</a>['spacing'];
|
|
<a name="l01258"></a>01258 } <span class="keywordflow">else</span> {
|
|
<a name="l01259"></a>01259 <a class="code" href="readme_8php.html#a9">$height</a> = $this-><a class="code" href="classCpdf.html#a45">getFontHeight</a>($<a class="code" href="tva_8inc_8php.html#a15">size</a>);
|
|
<a name="l01260"></a>01260 }
|
|
<a name="l01261"></a>01261
|
|
<a name="l01262"></a>01262
|
|
<a name="l01263"></a>01263 $lines = explode(<span class="stringliteral">"\n"</span>,$text);
|
|
<a name="l01264"></a>01264 foreach ($lines as $<a class="code" href="classCpdf.html#a34">line</a>){
|
|
<a name="l01265"></a>01265 <a class="code" href="bilan_8php.html#a2">$start</a>=1;
|
|
<a name="l01266"></a>01266 <span class="keywordflow">while</span> (strlen($line) || $<a class="code" href="document__modele_8inc_8php.html#a5">start</a>){
|
|
<a name="l01267"></a>01267 <a class="code" href="bilan_8php.html#a2">$start</a>=0;
|
|
<a name="l01268"></a>01268 $this->y=$this->y-<a class="code" href="readme_8php.html#a9">$height</a>;
|
|
<a name="l01269"></a>01269 <span class="keywordflow">if</span> ($this->y < $this->ez['bottomMargin']){
|
|
<a name="l01270"></a>01270 <span class="keywordflow">if</span> ($test){
|
|
<a name="l01271"></a>01271 $newPage=<span class="keyword">true</span>;
|
|
<a name="l01272"></a>01272 } <span class="keywordflow">else</span> {
|
|
<a name="l01273"></a>01273 $this-><a class="code" href="classCezpdf.html#a5">ezNewPage</a>();
|
|
<a name="l01274"></a>01274 <span class="comment">// and then re-calc the left and right, in case they have changed due to columns</span>
|
|
<a name="l01275"></a>01275 }
|
|
<a name="l01276"></a>01276 }
|
|
<a name="l01277"></a>01277 <span class="keywordflow">if</span> (is_array($options) && isset($options['aleft'])){
|
|
<a name="l01278"></a>01278 $left=<a class="code" href="classCpdf.html#o23">$options</a>['aleft'];
|
|
<a name="l01279"></a>01279 } <span class="keywordflow">else</span> {
|
|
<a name="l01280"></a>01280 $left = $this->ez['leftMargin'] + ((is_array($options) && isset($options['left']))?<a class="code" href="classCpdf.html#o23">$options</a>['left']:0);
|
|
<a name="l01281"></a>01281 }
|
|
<a name="l01282"></a>01282 <span class="keywordflow">if</span> (is_array($options) && isset($options['aright'])){
|
|
<a name="l01283"></a>01283 <a class="code" href="user__sec_8php.html#a15">$right</a>=<a class="code" href="classCpdf.html#o23">$options</a>['aright'];
|
|
<a name="l01284"></a>01284 } <span class="keywordflow">else</span> {
|
|
<a name="l01285"></a>01285 <a class="code" href="user__sec_8php.html#a15">$right</a> = $this->ez['pageWidth'] - $this->ez['rightMargin'] - ((is_array($options) && isset($options['right']))?<a class="code" href="classCpdf.html#o23">$options</a>['right']:0);
|
|
<a name="l01286"></a>01286 }
|
|
<a name="l01287"></a>01287 $line=$this-><a class="code" href="classCpdf.html#a54">addTextWrap</a>($left,$this->y,$right-$left,$<a class="code" href="tva_8inc_8php.html#a15">size</a>,$line,$just,0,$test);
|
|
<a name="l01288"></a>01288 }
|
|
<a name="l01289"></a>01289 }
|
|
<a name="l01290"></a>01290
|
|
<a name="l01291"></a>01291 <span class="keywordflow">if</span> ($test){
|
|
<a name="l01292"></a>01292 $this->y=$store_y;
|
|
<a name="l01293"></a>01293 <span class="keywordflow">return</span> $newPage;
|
|
<a name="l01294"></a>01294 } <span class="keywordflow">else</span> {
|
|
<a name="l01295"></a>01295 <span class="keywordflow">return</span> $this->y;
|
|
<a name="l01296"></a>01296 }
|
|
<a name="l01297"></a>01297 }
|
|
<a name="l01298"></a>01298
|
|
<a name="l01299"></a>01299 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l01300"></a>01300
|
|
<a name="l01301"></a><a class="code" href="classCezpdf.html#a24">01301</a> function <a class="code" href="classCezpdf.html#a24">ezImage</a>($image,$pad = 5,$<a class="code" href="tva_8inc_8php.html#a17">width</a> = 0,$resize = 'full',$just = 'center',$border = ''){
|
|
<a name="l01302"></a>01302 <span class="comment">//beta ezimage function</span>
|
|
<a name="l01303"></a>01303 <span class="keywordflow">if</span> (stristr($image,':<span class="comment">//'))//copy to temp file</span>
|
|
<a name="l01304"></a>01304 {
|
|
<a name="l01305"></a>01305 $fp = @fopen($image,<span class="stringliteral">"rb"</span>);
|
|
<a name="l01306"></a>01306 <span class="keywordflow">while</span>(!feof($fp))
|
|
<a name="l01307"></a>01307 {
|
|
<a name="l01308"></a>01308 $cont.= fread($fp,1024);
|
|
<a name="l01309"></a>01309 }
|
|
<a name="l01310"></a>01310 fclose($fp);
|
|
<a name="l01311"></a>01311 $image = tempnam (<span class="stringliteral">"/tmp"</span>, <span class="stringliteral">"php-pdf"</span>);
|
|
<a name="l01312"></a>01312 $fp2 = @fopen($image,<span class="stringliteral">"w"</span>);
|
|
<a name="l01313"></a>01313 fwrite($fp2,$cont);
|
|
<a name="l01314"></a>01314 fclose($fp2);
|
|
<a name="l01315"></a>01315 $temp = <span class="keyword">true</span>;
|
|
<a name="l01316"></a>01316 }
|
|
<a name="l01317"></a>01317
|
|
<a name="l01318"></a>01318 <span class="keywordflow">if</span> (!(file_exists($image))) <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">//return immediately if image file does not exist</span>
|
|
<a name="l01319"></a>01319 $imageInfo = getimagesize($image);
|
|
<a name="l01320"></a>01320 <span class="keywordflow">switch</span> ($imageInfo[2]){
|
|
<a name="l01321"></a>01321 <span class="keywordflow">case</span> 2:
|
|
<a name="l01322"></a>01322 $type = <span class="stringliteral">"jpeg"</span>;
|
|
<a name="l01323"></a>01323 <span class="keywordflow">break</span>;
|
|
<a name="l01324"></a>01324 <span class="keywordflow">case</span> 3:
|
|
<a name="l01325"></a>01325 $type = <span class="stringliteral">"png"</span>;
|
|
<a name="l01326"></a>01326 <span class="keywordflow">break</span>;
|
|
<a name="l01327"></a>01327 <span class="keywordflow">default</span>:
|
|
<a name="l01328"></a>01328 <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">//return if file is not jpg or png</span>
|
|
<a name="l01329"></a>01329 }
|
|
<a name="l01330"></a>01330 <span class="keywordflow">if</span> ($<a class="code" href="tva_8inc_8php.html#a17">width</a> == 0) $<a class="code" href="tva_8inc_8php.html#a17">width</a> = $imageInfo[0]; <span class="comment">//set width</span>
|
|
<a name="l01331"></a>01331 $ratio = $imageInfo[0]/$imageInfo[1];
|
|
<a name="l01332"></a>01332
|
|
<a name="l01333"></a>01333 <span class="comment">//get maximum width of image</span>
|
|
<a name="l01334"></a>01334 <span class="keywordflow">if</span> (isset($this->ez['columns']) && $this->ez['columns']['on'] == 1)
|
|
<a name="l01335"></a>01335 {
|
|
<a name="l01336"></a>01336 $bigwidth = $this->ez['columns']['<a class="code" href="tva_8inc_8php.html#a17">width</a>'] - ($pad * 2);
|
|
<a name="l01337"></a>01337 }
|
|
<a name="l01338"></a>01338 <span class="keywordflow">else</span>
|
|
<a name="l01339"></a>01339 {
|
|
<a name="l01340"></a>01340 $bigwidth = $this->ez['pageWidth'] - ($pad * 2);
|
|
<a name="l01341"></a>01341 }
|
|
<a name="l01342"></a>01342 <span class="comment">//fix width if larger than maximum or if $resize=full</span>
|
|
<a name="l01343"></a>01343 <span class="keywordflow">if</span> ($resize == 'full' || $resize == '<a class="code" href="tva_8inc_8php.html#a17">width</a>' || $<a class="code" href="tva_8inc_8php.html#a17">width</a> > $bigwidth)
|
|
<a name="l01344"></a>01344 {
|
|
<a name="l01345"></a>01345 $<a class="code" href="tva_8inc_8php.html#a17">width</a> = $bigwidth;
|
|
<a name="l01346"></a>01346
|
|
<a name="l01347"></a>01347 }
|
|
<a name="l01348"></a>01348
|
|
<a name="l01349"></a>01349 $height = ($<a class="code" href="tva_8inc_8php.html#a17">width</a>/$ratio); <span class="comment">//set height</span>
|
|
<a name="l01350"></a>01350
|
|
<a name="l01351"></a>01351 <span class="comment">//fix size if runs off page</span>
|
|
<a name="l01352"></a>01352 <span class="keywordflow">if</span> ($height > ($this->y - $this->ez['bottomMargin'] - ($pad * 2)))
|
|
<a name="l01353"></a>01353 {
|
|
<a name="l01354"></a>01354 if ($resize != 'full')
|
|
<a name="l01355"></a>01355 {
|
|
<a name="l01356"></a>01356 $this->ezNewPage();
|
|
<a name="l01357"></a>01357 }
|
|
<a name="l01358"></a>01358 <span class="keywordflow">else</span>
|
|
<a name="l01359"></a>01359 {
|
|
<a name="l01360"></a>01360 <a class="code" href="readme_8php.html#a9">$height</a> = ($this->y - $this->ez['bottomMargin'] - ($pad * 2)); <span class="comment">//shrink height</span>
|
|
<a name="l01361"></a>01361 $width = (<a class="code" href="readme_8php.html#a9">$height</a>*$ratio); <span class="comment">//fix width</span>
|
|
<a name="l01362"></a>01362 }
|
|
<a name="l01363"></a>01363 }
|
|
<a name="l01364"></a>01364
|
|
<a name="l01365"></a>01365 <span class="comment">//fix x-offset if image smaller than bigwidth</span>
|
|
<a name="l01366"></a>01366 <span class="keywordflow">if</span> ($<a class="code" href="tva_8inc_8php.html#a17">width</a> < $bigwidth)
|
|
<a name="l01367"></a>01367 {
|
|
<a name="l01368"></a>01368 <span class="comment">//center if justification=center</span>
|
|
<a name="l01369"></a>01369 <span class="keywordflow">if</span> ($just == 'center')
|
|
<a name="l01370"></a>01370 {
|
|
<a name="l01371"></a>01371 <a class="code" href="facture_8inc_8php.html#a14">$offset</a> = ($bigwidth - $width) / 2;
|
|
<a name="l01372"></a>01372 }
|
|
<a name="l01373"></a>01373 <span class="comment">//move to right if justification=right</span>
|
|
<a name="l01374"></a>01374 <span class="keywordflow">if</span> ($just == 'right')
|
|
<a name="l01375"></a>01375 {
|
|
<a name="l01376"></a>01376 <a class="code" href="facture_8inc_8php.html#a14">$offset</a> = ($bigwidth - $width);
|
|
<a name="l01377"></a>01377 }
|
|
<a name="l01378"></a>01378 <span class="comment">//leave at left if justification=left</span>
|
|
<a name="l01379"></a>01379 <span class="keywordflow">if</span> ($just == 'left')
|
|
<a name="l01380"></a>01380 {
|
|
<a name="l01381"></a>01381 <a class="code" href="facture_8inc_8php.html#a14">$offset</a> = 0;
|
|
<a name="l01382"></a>01382 }
|
|
<a name="l01383"></a>01383 }
|
|
<a name="l01384"></a>01384
|
|
<a name="l01385"></a>01385
|
|
<a name="l01386"></a>01386 <span class="comment">//call appropriate function</span>
|
|
<a name="l01387"></a>01387 <span class="keywordflow">if</span> ($type == <span class="stringliteral">"jpeg"</span>){
|
|
<a name="l01388"></a>01388 $this->addJpegFromFile($image,$this->ez['leftMargin'] + $pad + $offset, $this->y + $this->getFontHeight($this->ez['fontSize']) - $pad - <a class="code" href="readme_8php.html#a9">$height</a>,$width);
|
|
<a name="l01389"></a>01389 }
|
|
<a name="l01390"></a>01390
|
|
<a name="l01391"></a>01391 <span class="keywordflow">if</span> ($type == <span class="stringliteral">"png"</span>){
|
|
<a name="l01392"></a>01392 $this->addPngFromFile($image,$this->ez['leftMargin'] + $pad + $offset, $this->y + $this->getFontHeight($this->ez['fontSize']) - $pad - <a class="code" href="readme_8php.html#a9">$height</a>,$width);
|
|
<a name="l01393"></a>01393 }
|
|
<a name="l01394"></a>01394 <span class="comment">//draw border</span>
|
|
<a name="l01395"></a>01395 <span class="keywordflow">if</span> ($border != '')
|
|
<a name="l01396"></a>01396 {
|
|
<a name="l01397"></a>01397 <span class="keywordflow">if</span> (!(isset($border['color'])))
|
|
<a name="l01398"></a>01398 {
|
|
<a name="l01399"></a>01399 $border['color']['red'] = .5;
|
|
<a name="l01400"></a>01400 $border['color']['blue'] = .5;
|
|
<a name="l01401"></a>01401 $border['color']['green'] = .5;
|
|
<a name="l01402"></a>01402 }
|
|
<a name="l01403"></a>01403 <span class="keywordflow">if</span> (!(isset($border['<a class="code" href="tva_8inc_8php.html#a17">width</a>']))) $border['width'] = 1;
|
|
<a name="l01404"></a>01404 <span class="keywordflow">if</span> (!(isset($border['cap']))) $border['cap'] = 'round';
|
|
<a name="l01405"></a>01405 <span class="keywordflow">if</span> (!(isset($border['join']))) $border['join'] = 'round';
|
|
<a name="l01406"></a>01406
|
|
<a name="l01407"></a>01407
|
|
<a name="l01408"></a>01408 $this->setStrokeColor($border['color']['red'],$border['color']['green'],$border['color']['blue']);
|
|
<a name="l01409"></a>01409 $this->setLineStyle($border['width'],$border['cap'],$border['join']);
|
|
<a name="l01410"></a>01410 $this->rectangle($this->ez['leftMargin'] + $pad + $offset, $this->y + $this->getFontHeight($this->ez['fontSize']) - $pad - <a class="code" href="readme_8php.html#a9">$height</a>,$width,$height);
|
|
<a name="l01411"></a>01411
|
|
<a name="l01412"></a>01412 }
|
|
<a name="l01413"></a>01413 <span class="comment">// move y below image</span>
|
|
<a name="l01414"></a>01414 $this->y = $this->y - $pad - <a class="code" href="readme_8php.html#a9">$height</a>;
|
|
<a name="l01415"></a>01415 <span class="comment">//remove tempfile for remote images</span>
|
|
<a name="l01416"></a>01416 <span class="keywordflow">if</span> ($temp == <span class="keyword">true</span>) unlink($image);
|
|
<a name="l01417"></a>01417
|
|
<a name="l01418"></a>01418 }
|
|
<a name="l01419"></a>01419 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l01420"></a>01420
|
|
<a name="l01421"></a>01421 <span class="comment">// note that templating code is still considered developmental - have not really figured</span>
|
|
<a name="l01422"></a>01422 <span class="comment">// out a good way of doing this yet.</span>
|
|
<a name="l01423"></a><a class="code" href="classCezpdf.html#a25">01423</a> function loadTemplate($templateFile){
|
|
<a name="l01424"></a>01424 <span class="comment">// this function will load the requested template ($file includes full or relative pathname)</span>
|
|
<a name="l01425"></a>01425 <span class="comment">// the code for the template will be modified to make it name safe, and then stored in </span>
|
|
<a name="l01426"></a>01426 <span class="comment">// an array for later use</span>
|
|
<a name="l01427"></a>01427 <span class="comment">// The id of the template will be returned for the user to operate on it later</span>
|
|
<a name="l01428"></a>01428 <span class="keywordflow">if</span> (!file_exists($templateFile)){
|
|
<a name="l01429"></a>01429 <span class="keywordflow">return</span> -1;
|
|
<a name="l01430"></a>01430 }
|
|
<a name="l01431"></a>01431
|
|
<a name="l01432"></a>01432 <a class="code" href="eub__be_8inc_8php.html#a3">$code</a> = implode('',file($templateFile));
|
|
<a name="l01433"></a>01433 <span class="keywordflow">if</span> (!strlen($code)){
|
|
<a name="l01434"></a>01434 <span class="keywordflow">return</span>;
|
|
<a name="l01435"></a>01435 }
|
|
<a name="l01436"></a>01436
|
|
<a name="l01437"></a>01437 <a class="code" href="eub__be_8inc_8php.html#a3">$code</a> = trim($code);
|
|
<a name="l01438"></a>01438 <span class="keywordflow">if</span> (substr($code,0,5)=='<?php'){
|
|
<a name="l01439"></a>01439 <a class="code" href="eub__be_8inc_8php.html#a3">$code</a> = substr($code,5);
|
|
<a name="l01440"></a>01440 }
|
|
<a name="l01441"></a>01441 <span class="keywordflow">if</span> (substr($code,-2)=='?>'){
|
|
<a name="l01442"></a>01442 <a class="code" href="eub__be_8inc_8php.html#a3">$code</a> = substr($code,0,strlen($code)-2);
|
|
<a name="l01443"></a>01443 }
|
|
<a name="l01444"></a>01444 <span class="keywordflow">if</span> (isset($this->ez['numTemplates'])){
|
|
<a name="l01445"></a>01445 $newNum = $this->ez['numTemplates'];
|
|
<a name="l01446"></a>01446 $this->ez['numTemplates']++;
|
|
<a name="l01447"></a>01447 } <span class="keywordflow">else</span> {
|
|
<a name="l01448"></a>01448 $newNum=0;
|
|
<a name="l01449"></a>01449 $this->ez['numTemplates']=1;
|
|
<a name="l01450"></a>01450 $this->ez['templates']=array();
|
|
<a name="l01451"></a>01451 }
|
|
<a name="l01452"></a>01452
|
|
<a name="l01453"></a>01453 $this->ez['templates'][$newNum]['code']=<a class="code" href="eub__be_8inc_8php.html#a3">$code</a>;
|
|
<a name="l01454"></a>01454
|
|
<a name="l01455"></a>01455 <span class="keywordflow">return</span> $newNum;
|
|
<a name="l01456"></a>01456 }
|
|
<a name="l01457"></a>01457
|
|
<a name="l01458"></a>01458 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l01459"></a>01459
|
|
<a name="l01460"></a><a class="code" href="classCezpdf.html#a26">01460</a> function execTemplate($<span class="keywordtype">id</span>,$data=array(),$options=array()){
|
|
<a name="l01461"></a>01461 <span class="comment">// execute the given template on the current document.</span>
|
|
<a name="l01462"></a>01462 <span class="keywordflow">if</span> (!isset($this->ez['templates'][$<span class="keywordtype">id</span>])){
|
|
<a name="l01463"></a>01463 <span class="keywordflow">return</span>;
|
|
<a name="l01464"></a>01464 }
|
|
<a name="l01465"></a>01465 eval($this->ez['templates'][$<span class="keywordtype">id</span>]['code']);
|
|
<a name="l01466"></a>01466 }
|
|
<a name="l01467"></a>01467
|
|
<a name="l01468"></a>01468 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l01469"></a><a class="code" href="classCezpdf.html#a27">01469</a> function ilink($info){
|
|
<a name="l01470"></a>01470 $this->alink($info,1);
|
|
<a name="l01471"></a>01471 }
|
|
<a name="l01472"></a>01472
|
|
<a name="l01473"></a><a class="code" href="classCezpdf.html#a28">01473</a> function alink($info,$internal=0){
|
|
<a name="l01474"></a>01474 <span class="comment">// a callback function to support the formation of clickable links within the document</span>
|
|
<a name="l01475"></a>01475 $lineFactor=0.05; <span class="comment">// the thickness of the line as a proportion of the height. also the drop of the line.</span>
|
|
<a name="l01476"></a>01476 <span class="keywordflow">switch</span>(<a class="code" href="print__invoice_8php.html#a8">$info</a>['status']){
|
|
<a name="l01477"></a>01477 <span class="keywordflow">case</span> '<a class="code" href="document__modele_8inc_8php.html#a5">start</a>':
|
|
<a name="l01478"></a>01478 <span class="keywordflow">case</span> 'sol':
|
|
<a name="l01479"></a>01479 <span class="comment">// the beginning of the link</span>
|
|
<a name="l01480"></a>01480 <span class="comment">// this should contain the URl for the link as the 'p' entry, and will also contain the value of 'nCallback'</span>
|
|
<a name="l01481"></a>01481 <span class="keywordflow">if</span> (!isset($this->ez['links'])){
|
|
<a name="l01482"></a>01482 $this->ez['links']=array();
|
|
<a name="l01483"></a>01483 }
|
|
<a name="l01484"></a>01484 <a class="code" href="balance_8php.html#a11">$i</a> = <a class="code" href="print__invoice_8php.html#a8">$info</a>['nCallback'];
|
|
<a name="l01485"></a>01485 $this->ez['links'][<a class="code" href="balance_8php.html#a11">$i</a>] = array(<span class="charliteral">'x'</span>=>$info[<span class="charliteral">'x'</span>],<span class="charliteral">'y'</span>=>$info[<span class="charliteral">'y'</span>],'angle'=>$info['angle'],'decender'=>$info['decender'],'height'=>$info['height'],'url'=>$info[<span class="charliteral">'p'</span>]);
|
|
<a name="l01486"></a>01486 <span class="keywordflow">if</span> ($internal==0){
|
|
<a name="l01487"></a>01487 $this->saveState();
|
|
<a name="l01488"></a>01488 $this->setColor(0,0,1);
|
|
<a name="l01489"></a>01489 $this->setStrokeColor(0,0,1);
|
|
<a name="l01490"></a>01490 $thick = <a class="code" href="print__invoice_8php.html#a8">$info</a>['height']*$lineFactor;
|
|
<a name="l01491"></a>01491 $this->setLineStyle($thick);
|
|
<a name="l01492"></a>01492 }
|
|
<a name="l01493"></a>01493 <span class="keywordflow">break</span>;
|
|
<a name="l01494"></a>01494 <span class="keywordflow">case</span> 'end':
|
|
<a name="l01495"></a>01495 <span class="keywordflow">case</span> 'eol':
|
|
<a name="l01496"></a>01496 <span class="comment">// the end of the link</span>
|
|
<a name="l01497"></a>01497 <span class="comment">// assume that it is the most recent opening which has closed</span>
|
|
<a name="l01498"></a>01498 <a class="code" href="balance_8php.html#a11">$i</a> = <a class="code" href="print__invoice_8php.html#a8">$info</a>['nCallback'];
|
|
<a name="l01499"></a>01499 <a class="code" href="bilan_8php.html#a2">$start</a> = $this->ez['links'][<a class="code" href="balance_8php.html#a11">$i</a>];
|
|
<a name="l01500"></a>01500 <span class="comment">// add underlining</span>
|
|
<a name="l01501"></a>01501 <span class="keywordflow">if</span> ($internal){
|
|
<a name="l01502"></a>01502 $this->addInternalLink($<a class="code" href="document__modele_8inc_8php.html#a5">start</a>['url'],$<a class="code" href="document__modele_8inc_8php.html#a5">start</a>[<span class="charliteral">'x'</span>],$<a class="code" href="document__modele_8inc_8php.html#a5">start</a>[<span class="charliteral">'y'</span>]+$<a class="code" href="document__modele_8inc_8php.html#a5">start</a>['decender'],$info[<span class="charliteral">'x'</span>],$<a class="code" href="document__modele_8inc_8php.html#a5">start</a>[<span class="charliteral">'y'</span>]+$<a class="code" href="document__modele_8inc_8php.html#a5">start</a>['decender']+$<a class="code" href="document__modele_8inc_8php.html#a5">start</a>['height']);
|
|
<a name="l01503"></a>01503 } <span class="keywordflow">else</span> {
|
|
<a name="l01504"></a>01504 <a class="code" href="balance_8php.html#a9">$a</a> = deg2rad((<span class="keywordtype">float</span>)$<a class="code" href="document__modele_8inc_8php.html#a5">start</a>['angle']-90.0);
|
|
<a name="l01505"></a>01505 $drop = <a class="code" href="bilan_8php.html#a2">$start</a>['height']*$lineFactor*1.5;
|
|
<a name="l01506"></a>01506 $dropx = cos($a)*$drop;
|
|
<a name="l01507"></a>01507 $dropy = -sin($a)*$drop;
|
|
<a name="l01508"></a>01508 $this->line($<a class="code" href="document__modele_8inc_8php.html#a5">start</a>[<span class="charliteral">'x'</span>]-$dropx,$<a class="code" href="document__modele_8inc_8php.html#a5">start</a>[<span class="charliteral">'y'</span>]-$dropy,$info[<span class="charliteral">'x'</span>]-$dropx,$info[<span class="charliteral">'y'</span>]-$dropy);
|
|
<a name="l01509"></a>01509 $this->addLink($<a class="code" href="document__modele_8inc_8php.html#a5">start</a>['url'],$<a class="code" href="document__modele_8inc_8php.html#a5">start</a>[<span class="charliteral">'x'</span>],$<a class="code" href="document__modele_8inc_8php.html#a5">start</a>[<span class="charliteral">'y'</span>]+$<a class="code" href="document__modele_8inc_8php.html#a5">start</a>['decender'],$info[<span class="charliteral">'x'</span>],$<a class="code" href="document__modele_8inc_8php.html#a5">start</a>[<span class="charliteral">'y'</span>]+$<a class="code" href="document__modele_8inc_8php.html#a5">start</a>['decender']+$<a class="code" href="document__modele_8inc_8php.html#a5">start</a>['height']);
|
|
<a name="l01510"></a>01510 $this->restoreState();
|
|
<a name="l01511"></a>01511 }
|
|
<a name="l01512"></a>01512 <span class="keywordflow">break</span>;
|
|
<a name="l01513"></a>01513 }
|
|
<a name="l01514"></a>01514 }
|
|
<a name="l01515"></a>01515
|
|
<a name="l01516"></a>01516 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l01517"></a>01517
|
|
<a name="l01518"></a><a class="code" href="classCezpdf.html#a29">01518</a> function uline($info){
|
|
<a name="l01519"></a>01519 <span class="comment">// a callback function to support underlining</span>
|
|
<a name="l01520"></a>01520 $lineFactor=0.05; <span class="comment">// the thickness of the line as a proportion of the height. also the drop of the line.</span>
|
|
<a name="l01521"></a>01521 <span class="keywordflow">switch</span>(<a class="code" href="print__invoice_8php.html#a8">$info</a>['status']){
|
|
<a name="l01522"></a>01522 <span class="keywordflow">case</span> '<a class="code" href="document__modele_8inc_8php.html#a5">start</a>':
|
|
<a name="l01523"></a>01523 <span class="keywordflow">case</span> 'sol':
|
|
<a name="l01524"></a>01524
|
|
<a name="l01525"></a>01525 <span class="comment">// the beginning of the underline zone</span>
|
|
<a name="l01526"></a>01526 <span class="keywordflow">if</span> (!isset($this->ez['links'])){
|
|
<a name="l01527"></a>01527 $this->ez['links']=array();
|
|
<a name="l01528"></a>01528 }
|
|
<a name="l01529"></a>01529 <a class="code" href="balance_8php.html#a11">$i</a> = <a class="code" href="print__invoice_8php.html#a8">$info</a>['nCallback'];
|
|
<a name="l01530"></a>01530 $this->ez['links'][<a class="code" href="balance_8php.html#a11">$i</a>] = array(<span class="charliteral">'x'</span>=>$info[<span class="charliteral">'x'</span>],<span class="charliteral">'y'</span>=>$info[<span class="charliteral">'y'</span>],'angle'=>$info['angle'],'decender'=>$info['decender'],'height'=>$info['height']);
|
|
<a name="l01531"></a>01531 $this->saveState();
|
|
<a name="l01532"></a>01532 $thick = <a class="code" href="print__invoice_8php.html#a8">$info</a>['height']*$lineFactor;
|
|
<a name="l01533"></a>01533 $this->setLineStyle($thick);
|
|
<a name="l01534"></a>01534 <span class="keywordflow">break</span>;
|
|
<a name="l01535"></a>01535 <span class="keywordflow">case</span> 'end':
|
|
<a name="l01536"></a>01536 <span class="keywordflow">case</span> 'eol':
|
|
<a name="l01537"></a>01537 <span class="comment">// the end of the link</span>
|
|
<a name="l01538"></a>01538 <span class="comment">// assume that it is the most recent opening which has closed</span>
|
|
<a name="l01539"></a>01539 <a class="code" href="balance_8php.html#a11">$i</a> = <a class="code" href="print__invoice_8php.html#a8">$info</a>['nCallback'];
|
|
<a name="l01540"></a>01540 <a class="code" href="bilan_8php.html#a2">$start</a> = $this->ez['links'][<a class="code" href="balance_8php.html#a11">$i</a>];
|
|
<a name="l01541"></a>01541 <span class="comment">// add underlining</span>
|
|
<a name="l01542"></a>01542 <a class="code" href="balance_8php.html#a9">$a</a> = deg2rad((<span class="keywordtype">float</span>)$<a class="code" href="document__modele_8inc_8php.html#a5">start</a>['angle']-90.0);
|
|
<a name="l01543"></a>01543 $drop = <a class="code" href="bilan_8php.html#a2">$start</a>['height']*$lineFactor*1.5;
|
|
<a name="l01544"></a>01544 $dropx = cos($a)*$drop;
|
|
<a name="l01545"></a>01545 $dropy = -sin($a)*$drop;
|
|
<a name="l01546"></a>01546 $this->line($<a class="code" href="document__modele_8inc_8php.html#a5">start</a>[<span class="charliteral">'x'</span>]-$dropx,$<a class="code" href="document__modele_8inc_8php.html#a5">start</a>[<span class="charliteral">'y'</span>]-$dropy,$info[<span class="charliteral">'x'</span>]-$dropx,$info[<span class="charliteral">'y'</span>]-$dropy);
|
|
<a name="l01547"></a>01547 $this->restoreState();
|
|
<a name="l01548"></a>01548 <span class="keywordflow">break</span>;
|
|
<a name="l01549"></a>01549 }
|
|
<a name="l01550"></a>01550 }
|
|
<a name="l01551"></a>01551
|
|
<a name="l01552"></a>01552 <span class="comment">// ------------------------------------------------------------------------------</span>
|
|
<a name="l01553"></a>01553
|
|
<a name="l01554"></a>01554 }
|
|
<a name="l01555"></a>01555 ?>
|
|
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Jun 23 00:12:45 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>
|