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->SetFont('Arial', 'B', 15);
$this->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->SetFont('Arial', 'B', 15);
$this->Cell(0, 10, $this->title, 1, 1, 'C');
}
$pdf->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->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->Output('S');
$mail->AddStringAttachment($doc, 'doc.pdf', 'base64', 'application/pdf');
$mail->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>
|