1. Esattamente qual'è la licenza di FPDF? Ci sono limitazioni all'utilizzo?
FPDF è rilasciata con licenza permissiva: non vi sono restrizioni di utilizzo. Puoi incorporarla liberamente nelle tue applicazioni (commerciali o meno), con o senza modifiche.2. Quando tento di generare un PDF, ricevo il seguente messaggio di errore: "Some data has already been output, can't send PDF file".
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.ob_end_clean();
3. I caratteri accentati vengono sostituiti da strani caratteri come é.
Non utilizzare la codifica UTF-8. I font standard FPDF utilizzano windows-1252. Vi è la possibilità di effettuare una conversione tramite iconv:$str = iconv('UTF-8', 'windows-1252', $str);
$str = mb_convert_encoding($str, 'windows-1252', 'UTF-8');
4. Tento di inserire il simbolo dell'Euro ma non funziona.
I font standard hanno il simbolo dell'euro alla posizione 128. Puoi definire per convenienza una costante come questa:define('EURO', chr(128));
5. Provo a visualizzare una variabile nel metodo Header, ma non viene stampato nulla.
Devi utilizzare la parola chiaveglobal
per accedere alle variabili globali, per esempio:
function Header()
{
global $title;
$this->SetFont('Arial', 'B', 15);
$this->Cell(0, 10, $title, 1, 1, 'C');
}
function Header()
{
$this->SetFont('Arial', 'B', 15);
$this->Cell(0, 10, $this->title, 1, 1, 'C');
}
$pdf->title = 'My title';
6. Ho definito i metodi Header e Footer nella mia classe PDF ma non appare nulla.
Devi creare un oggetto dalla classe PDF, non FPDF:$pdf = new PDF();
7. Non riesco a far funzionare le interruzioni di linea. Inserisco i \n nella stringa stampata da MultiCell ma non funziona.
Devi chiudere la stringa tra virgolette, non tra apici singoli.8. Per generare il PDF uso jQuery, ma non viene mostrato.
Non usare una richiesta AJAX per recuperare il file PDF.9. Ho disegnato un frame di dimensioni molto precise, ma quando viene stampato noto alcune differenze.
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.10. Vorrei utilizzare l'intera superficie della pagina, ma quando stampo restano sempre alcuni margini. Come posso eliminarli?
Tutte le stampanti hanno dei margini fisici (diversi a seconda del modello), ed è quindi impossibile rimuoverli e stampare su tutta la superficie della carta.11. Come posso impostare uno sfondo nel mio PDF?
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().12. Come posso impostare una specifica intestazione o un piede nella prima pagina?
Semplicemente, testa il numero di pagina:function Header()
{
if($this->PageNo()==1)
{
//First page
...
}
else
{
//Other pages
...
}
}
13. Vorrei poter utilizzare estensioni rese disponibili tramite diversi script. Come posso combinarle?
Utilizza un'ereditarietà a catena. Se hai due classi, diciamo A in a.php:require('fpdf.php');
class A extends FPDF
{
...
}
require('fpdf.php');
class B extends FPDF
{
...
}
require('a.php');
class B extends A
{
...
}
require('b.php');
class PDF extends B
{
...
}
$pdf = new PDF();
14. Come posso aprire il PDF in una nuova scheda?
Basta fare quanto si fa per una pagina HTML o per altro: aggiungere un target = "_blank" al proprio link o form.15. Come posso inviare il PDF tramite email?
Come ogni altro file, ma una via semplice è utilizzare PHPMailer e il suo sistema di allegati in-memory:$mail = new PHPMailer();
...
$doc = $pdf->Output('S');
$mail->AddStringAttachment($doc, 'doc.pdf', 'base64', 'application/pdf');
$mail->Send();
16. Qual'è il limite delle dimensioni dei file che posso generare con FPDF?
Non c'è un limite particolare. Ci sono comunque alcune restrizioni:17. Posso modificare un PDF con FPDF?
Grazie all'estensione FPDI, è possibile importare pagine da un documento PDF preesistente. Poi, puoi aggiungere ad esse altro contenuto.18. Vorrei creare un motore di ricerca in PHP e indicizzare i file PDF. Posso farlo utilizzando FPDF?
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 Xpdf.19. Posso convertire una pagina HTML in PDF con FPDF?
Non pagine del "mondo reale". No, ma esiste una utility scritta in C e rilasciata sotto licenza GPL, HTMLDOC, che permette di farlo ottenendo buoni risultati.20. Posso concatenare files PDF con FPDF?
Non direttamente, ma è possibile utilizzare FPDI per raggiungere tale obiettivo. Esistono anche alcuni tools liberi a linea di comando: pdftk e mbtPdfAsm.