source: spip-zone/_plugins_/article_pdf/branches/php7/pdf/lib_pdf_spip.php @ 112756

Last change on this file since 112756 was 112756, checked in by root, 4 months ago

php7 compatible

  • nouvelle version de la librairie et adaptation aux nouvelles méthodes
  • appel correct de constructeur de classe
  • appel correct de constante
  • passage correct de string
  • appel correct des fonctions de callback sur preg_replace
File size: 4.7 KB
Line 
1<?php
2
3/**
4 * class PDF_SPIP extends PDF :
5 */
6
7
8class PDF_SPIP extends PDF
9{
10//Private properties
11var $copyright;               //current page number
12
13// haut, gauche,  bas, droite
14function SetAllMargins($TopMargin, $LeftMargin, $BottomMargin, $RightMargin)
15{
16        // gauche, haut, droite
17        $this->SetMargins($LeftMargin,$TopMargin,$RightMargin);
18
19        // bas
20        $this->SetAutoPageBreak('auto', $BottomMargin*3/2);
21}
22
23
24function Header()
25{
26        global $titre ;
27
28        $this->SetY($this->tMargin/2);
29        $this->SetLineWidth(0.3);
30        $this->Line($this->lMargin - 3, $this->tMargin, $this->w - $this->rMargin + 3, $this->tMargin);
31
32        //Police helvetica gras 8
33        $this->SetFont('helvetica','B',12);
34        $this->SetTextColor(0,0,0);
35
36        $this->Cell(0,$this->tMargin/2, $titre ,0,0,'C');
37
38        // $this->tMargin = marge du haut, définie dans FPDF
39        $this->Ln(9);
40}
41
42
43/* /// Pied de page du document)
44/* ///////////////////////////// */
45function Footer()
46{
47        global $conf_nom_site , $conf_url_site  ;
48
49        $this->SetY(-$this->bMargin/2);
50        $this->SetLineWidth(0.3);
51        $this->Line($this->lMargin - 3, $this->GetY(), $this->w - $this->rMargin + 3, $this->GetY());
52
53
54        //Police helvetica 8
55        $this->SetFont('helvetica','I',8);
56        $this->SetTextColor(0,0,0);
57
58        // Copyright
59        $this->Cell(0,6,texte_script(pdf_first_clean(_T('articlepdf:copyright'))).$conf_nom_site ,0,0,'L',0,$conf_url_site );
60
61        //Numéro de page
62        $this->SetX($this->w-$this->rMargin*2-5);
63        $this ->Cell(0,6,'Page '.$this->PageNo().'/{nb}', 0, 1, 'C');
64}
65
66function GenerateTitlePage()
67{
68        global $site, $rubrique, $yahoo, $surtitre, $titre, $soustitre;
69        global $logo_site,  $logo_fichier, $logo_lien;
70        global $auteur, $descriptif;
71        global $conf_url_site;
72        global $DateParution,$DateMiseEnLigne;
73
74
75        // En-tête
76        if (isset($logo_site) and $logo_site)
77        {
78                //Logo du site centré
79                $w = $this->w;
80                $largeur = 60;
81                $position_x = ($w/2)-($largeur/2);
82                $position_y = 50;
83                $this->Image($logo_site, $position_x, $position_y, $largeur);
84        }
85
86        $this->SetFont('times','',12);
87        $this->SetXY($this->rMargin+25,$this->tMargin+6);
88        //$this->MultiCell(0,5, texte_script(pdf_first_clean(_T('articlepdf:extrait_de'))) . $site);
89
90        $this->SetXY($this->rMargin+25,$this->tMargin+14);
91        $this->PutLink($conf_url_site,$conf_url_site);
92
93
94        //Surtitre (type du document)
95        $this->unhtmlentities($surtitre);
96        $this->SetXY(20,92);
97        $this->SetFont('courier','B',14);
98        $this->MultiCell(170,6,$surtitre,0,'C',0);
99
100
101        //Titre centré
102        $this->SetXY(20,100);
103        $this->SetFont('helvetica','B',32);
104        $this->unhtmlentities($titre);
105        $this->MultiCell(170,20,$titre,0,'C',0);
106
107
108        // Rubriques
109        $this->Ln(2);
110        $this->SetFont('helvetica','',8);
111        $this->MultiCell(0,5,$yahoo,0,'C',0);
112
113        // Logo
114
115        if (isset($logo_fichier) and $logo_fichier) {
116                $x = $this->GetX();
117                $y = $this->GetY();
118                $this->SetLink($link);
119                $this->Image($logo_fichier,30,170,50,'','',$logo_lien,'0');
120                $this->SetXY($xi, $yi);
121    }
122
123        //Dates
124        $this->SetFont('times','',10);
125
126        if ($DateMiseEnLigne)
127        {
128                $this->SetXY(110,184);
129                $DateMiseEnLigne = $this->unhtmlentities($DateMiseEnLigne);
130                $this->MultiCell(0,6, texte_script(pdf_first_clean(_T('articlepdf:date_de_mise_en_ligne')))."$DateMiseEnLigne",0,'L',0);
131        }
132
133        if ($DateParution)
134        {
135                $this->SetXY(110,190);
136                $DateParution = $this->unhtmlentities($DateParution);
137                $this->MultiCell(0,6,texte_script(pdf_first_clean(_T('articlepdf:date_de_parution')))."$DateParution",0,'L',0);
138        }
139
140
141        // Descriptif
142        /*
143        if ($descriptif)
144        {
145
146                $this->SetFont('helvetica','B',10) ;
147                $this->SetXY($this->rMargin+5,220);
148                $this->SetFont('helvetica', 'BU', 10);
149                $this->Write(5, texte_script(pdf_first_clean(_T('articlepdf:description'))));
150                $this->Ln();
151                $this->SetFont('times', '', 8);
152                $this->WriteHTML($descriptif,5) ;
153        }
154        */
155
156        if ($this->copyright)
157        {
158                $this->SetXY(45,250);
159                $this->SetFont('times', 'B', 10);
160                $this->MultiCell(120,8,$this->copyright,'TB','C',0);
161        }
162}
163
164function GenerateText()
165{
166        global $texte, $chapo, $ps, $notes ;
167
168        $this->SetFont('helvetica');
169        if ($chapo)
170        {
171                // Chapeau
172                $this->SetFont('times','B',13);
173                $this->WriteHTML($chapo,5);
174                $this->Ln(12);
175        }
176
177        //Texte - justifie
178        $this->SetFont('helvetica','',10);
179        $this->WriteHTML($texte,5);
180        $this->Ln(12);
181        if ($ps)
182        {
183                //ps
184                $this->SetFont('','I',8);
185                $this->WriteHTML(texte_script(pdf_first_clean(_T('articlepdf:post_scriptum'))),4);
186                $this->WriteHTML($ps,4);
187                $this->Ln(8);
188        }
189        if ($notes) {
190                //notes
191                $this->SetFont('','',8);
192                $this->WriteHTML($notes,3);
193                $this->Ln();
194        }
195}
196
197function BuildDocument()
198{
199        $this->AddPage();
200        $this->GenerateTitlePage();
201        $this->AddPage();
202        $this->GenerateText();
203
204        // On repasse en police à la bonne taille pour le nombre de pages.
205        $this->SetFont('helvetica','I',8);
206        $this->AliasNbPages();
207}
208
209function SetCopyright($copyright)
210{
211        $this->copyright=$copyright;
212}
213
214
215//
216}
Note: See TracBrowser for help on using the repository browser.