File: FAQ.htm

package info (click to toggle)
php-fpdf 3%3A1.8.4.dfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 772 kB
  • sloc: php: 3,254; makefile: 45; sh: 5
file content (269 lines) | stat: -rw-r--r-- 11,844 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
<!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>FAQ</title>
<link type="text/css" rel="stylesheet" href="fpdf.css">
<style type="text/css">
ul {list-style-type:none; margin:0; padding:0}
ul#answers li {margin-top:1.8em}
.question {font-weight:bold; color:#900000}
</style>
</head>
<body>
<h1>FAQ</h1>
<ul>
<li><b>1.</b> <a href='#q1'>Esattamente qual' la licenza di FPDF? Ci sono limitazioni all'utilizzo?</a></li>
<li><b>2.</b> <a href='#q2'>Quando tento di generare un PDF, ricevo il seguente messaggio di errore: "Some data has already been output, can't send PDF file".</a></li>
<li><b>3.</b> <a href='#q3'>I caratteri accentati vengono sostituiti da strani caratteri come é.</a></li>
<li><b>4.</b> <a href='#q4'>Tento di inserire il simbolo dell'Euro ma non funziona.</a></li>
<li><b>5.</b> <a href='#q5'>Provo a visualizzare una variabile nel metodo Header, ma non viene stampato nulla.</a></li>
<li><b>6.</b> <a href='#q6'>Ho definito i metodi Header e Footer nella mia classe PDF ma non appare nulla.</a></li>
<li><b>7.</b> <a href='#q7'>Non riesco a far funzionare le interruzioni di linea. Inserisco i \n nella stringa stampata da MultiCell ma non funziona.</a></li>
<li><b>8.</b> <a href='#q8'>Per generare il PDF uso jQuery, ma non viene mostrato.</a></li>
<li><b>9.</b> <a href='#q9'>Ho disegnato un frame di dimensioni molto precise, ma quando viene stampato noto alcune differenze.</a></li>
<li><b>10.</b> <a href='#q10'>Vorrei utilizzare l'intera superficie della pagina, ma quando stampo restano sempre alcuni margini. Come posso eliminarli?</a></li>
<li><b>11.</b> <a href='#q11'>Come posso impostare uno sfondo nel mio PDF?</a></li>
<li><b>12.</b> <a href='#q12'>Come posso impostare una specifica intestazione o un piede nella prima pagina?</a></li>
<li><b>13.</b> <a href='#q13'>Vorrei poter utilizzare estensioni rese disponibili tramite diversi script. Come posso combinarle?</a></li>
<li><b>14.</b> <a href='#q14'>Come posso aprire il PDF in una nuova scheda?</a></li>
<li><b>15.</b> <a href='#q15'>Come posso inviare il PDF tramite email?</a></li>
<li><b>16.</b> <a href='#q16'>Qual' il limite delle dimensioni dei file che posso generare con FPDF?</a></li>
<li><b>17.</b> <a href='#q17'>Posso modificare un PDF con FPDF?</a></li>
<li><b>18.</b> <a href='#q18'>Vorrei creare un motore di ricerca in PHP e indicizzare i file PDF. Posso farlo utilizzando FPDF?</a></li>
<li><b>19.</b> <a href='#q19'>Posso convertire una pagina HTML in PDF con FPDF?</a></li>
<li><b>20.</b> <a href='#q20'>Posso concatenare files PDF con FPDF?</a></li>
</ul>

<ul id='answers'>
<li id='q1'>
<p><b>1.</b> <span class='question'>Esattamente qual' la licenza di FPDF? Ci sono limitazioni all'utilizzo?</span></p>
FPDF  rilasciata con licenza permissiva: non vi sono restrizioni di utilizzo. Puoi incorporarla
liberamente nelle tue applicazioni (commerciali o meno), con o senza modifiche.
</li>

<li id='q2'>
<p><b>2.</b> <span class='question'>Quando tento di generare un PDF, ricevo il seguente messaggio di errore: "Some data has already been output, can't send PDF file".</span></p>
Non devi inviare al browser nient'altro che il solo PDF: non HTML, nessuno spazio o ritorno di carrello. Un
caso comune consiste nell'avere uno spazio bianco indesiderato alla fine dello script di un file incluso.<br>
Se non riesci a determinare da dove possa derivare l'errore, il seguente altro messaggio di errore
eventualmente apparso appena prima potr aiutarti:<br>
<br>
<b>Warning:</b> Cannot modify header information - headers already sent by (output started at script.php:X).<br>
<br>
Ci significa che lo script.php genera qualche output alla riga X. Vai a tale linea di codice e correggila.
Nel caso in cui tale messaggio non appaia, prima controlla di non aver disabilitato i messaggi d'errore e
poi aggiungi all'inizio del tuo script le seguenti linee:
<div class="doc-source">
<pre><code>ob_end_clean();</code></pre>
</div>
</li>

<li id='q3'>
<p><b>3.</b> <span class='question'>I caratteri accentati vengono sostituiti da strani caratteri come é.</span></p>
Non utilizzare la codifica UTF-8. I font standard FPDF utilizzano ISO-8859-1 o windows-1252.
Vi  la possibilit di effettuare una conversione verso ISO-8859-1 tramite utf8_decode():
<div class="doc-source">
<pre><code>$str = utf8_decode($str);</code></pre>
</div>
Ma alcuni caratteri, come il simbolo di Euro, non possono essere convertiti correttamente. Se l'estensione
iconv  disponibile, la via migliore  la seguente:
<div class="doc-source">
<pre><code>$str = iconv('UTF-8', 'windows-1252', $str);</code></pre>
</div>
</li>

<li id='q4'>
<p><b>4.</b> <span class='question'>Tento di inserire il simbolo dell'Euro ma non funziona.</span></p>
I font standard hanno il simbolo dell'euro alla posizione 128. Puoi definire per convenienza una costante
come questa:
<div class="doc-source">
<pre><code>define('EURO', chr(128));</code></pre>
</div>
</li>

<li id='q5'>
<p><b>5.</b> <span class='question'>Provo a visualizzare una variabile nel metodo Header, ma non viene stampato nulla.</span></p>
Devi utilizzare la parola chiave <code>global</code> per accedere alle variabili globali, per esempio:
<div class="doc-source">
<pre><code>function Header()
{
    global $title;

    $this-&gt;SetFont('Arial', 'B', 15);
    $this-&gt;Cell(0, 10, $title, 1, 1, 'C');
}</code></pre>
</div>
In alternativa, puoi utilizzare una propriet dell'oggetto:
<div class="doc-source">
<pre><code>function Header()
{
    $this-&gt;SetFont('Arial', 'B', 15);
    $this-&gt;Cell(0, 10, $this-&gt;title, 1, 1, 'C');
}

$pdf-&gt;title = 'My title';</code></pre>
</div>
</li>

<li id='q6'>
<p><b>6.</b> <span class='question'>Ho definito i metodi Header e Footer nella mia classe PDF ma non appare nulla.</span></p>
Devi creare un oggetto dalla classe PDF, non FPDF:
<div class="doc-source">
<pre><code>$pdf = new PDF();</code></pre>
</div>
</li>

<li id='q7'>
<p><b>7.</b> <span class='question'>Non riesco a far funzionare le interruzioni di linea. Inserisco i \n nella stringa stampata da MultiCell ma non funziona.</span></p>
Devi chiudere la stringa tra virgolette, non tra apici singoli.
</li>

<li id='q8'>
<p><b>8.</b> <span class='question'>Per generare il PDF uso jQuery, ma non viene mostrato.</span></p>
Non usare una richiesta AJAX per recuperare il file PDF.
</li>

<li id='q9'>
<p><b>9.</b> <span class='question'>Ho disegnato un frame di dimensioni molto precise, ma quando viene stampato noto alcune differenze.</span></p>
Per rispettare le dimensioni, scegli "Nessuno" nel settaggio della scala di stampa al posto di
"Restringi all'area di stampa" nel box di dialogo della stampa.
</li>

<li id='q10'>
<p><b>10.</b> <span class='question'>Vorrei utilizzare l'intera superficie della pagina, ma quando stampo restano sempre alcuni margini. Come posso eliminarli?</span></p>
Tutte le stampanti hanno dei margini fisici (diversi a seconda del modello), ed  quindi impossibile
rimuoverli e stampare su tutta la superficie della carta.
</li>

<li id='q11'>
<p><b>11.</b> <span class='question'>Come posso impostare uno sfondo nel mio PDF?</span></p>
Per un'immagine, effettua una chiamata a Image() all'interno del metodo Header(), prima di ogni altro
output. Per impostare un colore di sfondo usa Rect().
</li>

<li id='q12'>
<p><b>12.</b> <span class='question'>Come posso impostare una specifica intestazione o un piede nella prima pagina?</span></p>
Semplicemente, testa il numero di pagina:
<div class="doc-source">
<pre><code>function Header()
{
    if($this-&gt;PageNo()==1)
    {
        //First page
        ...
    }
    else
    {
        //Other pages
        ...
    }
}</code></pre>
</div>
</li>

<li id='q13'>
<p><b>13.</b> <span class='question'>Vorrei poter utilizzare estensioni rese disponibili tramite diversi script. Come posso combinarle?</span></p>
Utilizza un'ereditariet a catena. Se hai due classi, diciamo A in a.php:
<div class="doc-source">
<pre><code>require('fpdf.php');

class A extends FPDF
{
...
}</code></pre>
</div>
e B in b.php:
<div class="doc-source">
<pre><code>require('fpdf.php');

class B extends FPDF
{
...
}</code></pre>
</div>
poi, effettua B extend A:
<div class="doc-source">
<pre><code>require('a.php');

class B extends A
{
...
}</code></pre>
</div>
e la tua classe extend B:
<div class="doc-source">
<pre><code>require('b.php');

class PDF extends B
{
...
}

$pdf = new PDF();</code></pre>
</div>
</li>

<li id='q14'>
<p><b>14.</b> <span class='question'>Come posso aprire il PDF in una nuova scheda?</span></p>
Basta fare quanto si fa per una pagina HTML o per altro: aggiungere un target = "_blank" al proprio link o form.
</li>

<li id='q15'>
<p><b>15.</b> <span class='question'>Come posso inviare il PDF tramite email?</span></p>
Come ogni altro file, ma una via semplice  utilizzare <a href="https://github.com/PHPMailer/PHPMailer" target="_blank">PHPMailer</a>
e il suo sistema di allegati in-memory:
<div class="doc-source">
<pre><code>$mail = new PHPMailer();
...
$doc = $pdf-&gt;Output('S');
$mail-&gt;AddStringAttachment($doc, 'doc.pdf', 'base64', 'application/pdf');
$mail-&gt;Send();</code></pre>
</div>
</li>

<li id='q16'>
<p><b>16.</b> <span class='question'>Qual' il limite delle dimensioni dei file che posso generare con FPDF?</span></p>
Non c' un limite particolare. Ci sono comunque alcune restrizioni:
<br>
<br>
- La massima dimensione di memoria allocata per gli script PHP  impostata. Per documenti
molto grandi, specialmetne con immagini, questo limite potrebbe essere raggiunto (il file
viene generato nella memoria). Questo parametro  configurabile nel file php.ini.
<br>
<br>
- Il tempo massimo di esecuzione  impostato di default a 30 secondi. Questo limite pu naturalmente
essere raggiunto con facilit. E' configurato nel file php.ini e pu essere alterato dinamicamente con
la funzione set_time_limit().
</li>

<li id='q17'>
<p><b>17.</b> <span class='question'>Posso modificare un PDF con FPDF?</span></p>
Grazie all'estensione <a href="https://www.setasign.com/products/fpdi/about/" target="_blank">FPDI</a>,
 possibile importare pagine da un documento PDF preesistente.
Poi, puoi aggiungere ad esse altro contenuto.
</li>

<li id='q18'>
<p><b>18.</b> <span class='question'>Vorrei creare un motore di ricerca in PHP e indicizzare i file PDF. Posso farlo utilizzando FPDF?</span></p>
No, ma esiste una utility scritta in C e rilasciata sotto licenza GPL, pdftotext, che consente di estrarre
il contenuto testuale da un PDF. E' fornita col il pacchetto <a href="https://www.xpdfreader.com" target="_blank">Xpdf</a>.
</li>

<li id='q19'>
<p><b>19.</b> <span class='question'>Posso convertire una pagina HTML in PDF con FPDF?</span></p>
Non pagine del "mondo reale". No, ma esiste una utility scritta in C e rilasciata sotto licenza GPL,
<a href="https://www.msweet.org/htmldoc/" target="_blank">HTMLDOC</a>, che permette di farlo
ottenendo buoni risultati.
</li>

<li id='q20'>
<p><b>20.</b> <span class='question'>Posso concatenare files PDF con FPDF?</span></p>
Non direttamente, ma  possibile utilizzare <a href="https://www.setasign.com/products/fpdi/demos/concatenate-fake/" target="_blank">FPDI</a>
per raggiungere tale obiettivo. Esistono anche alcuni tools liberi a linea di comando:
<a href="https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/" target="_blank">pdftk</a> e
<a href="http://thierry.schmit.free.fr/spip/spip.php?article15" target="_blank">mbtPdfAsm</a>.
</li>
</ul>
</body>
</html>