Creare documenti PDF in Php

pdf php

pdf php

In questo articolo vediamo dei modi per creare documenti PDF al volo utilizzando PHP.

Attualmente il formato Pdf (Portable Document Format) è in pratica uno standard, per quanto riguarda i documenti multipiattaforma.
Esistono numerose librerie PHP che permettono la creazione di file PDF e qui cercheremo di analizzarno qualcuna.

FPDF

FPDF è una libreria scritta in php che permette di generare file PDF con puro PHP, vale a dire senza utilizzare la libreria PDFlib. Il suo punto di forza è nella semplicità del suo codice e nella vasta comunità che ha messo a disposizione alcune soluzioni pronte molto utili.

La libreria dispone di un’ampia documentazione in forma di manuale e di tutorial.

La lettera F di FPDF sta per Free infatti la si può utilizzare per qualsiasi tipo di utilizzo e modificarlo in base alle  esigenze.  FPDF ha altri vantaggi, funzioni decisamente di alto livello:

  • Scelta dell’unità di misura, il formato pagina e dei margini
  • Pagina di intestazione e piè di pagina
  • Interruzione di pagina e di Linea automatica
  • Giustificazione del testo
  • Supporto delle immagini (JPEG e PNG)
  • Colori
  • Links
  • TrueType, Type1 e il supporto di codifica
  • Pagina di compressione

FPDF non richiede alcuna estensione (eccetto zlib per attivare la compressione) e lavora con PHP4 e PHP5.

Ulteriori informazioni su FPDF sono disponibili all’indirizzo: fpdf.org/.

Per utilizzare FPDF basta richiamarla da qualsiasi pagina tramite una require()

require('fpdf.php');

A questo punto con poche righe di codice sarà possibile generare i nostri documenti PDF al volo.

Vediamo un esempio :

< ?php
require('fpdf.php');
$pdf =new FPDF();
$pdf -> AddPage();
$pdf -> SetFont('Arial', 'B', 16 );
$pdf -> Cell(40, 10, 'Pdf document' );
$pdf -> Output();
?>

E’ possibile modificare i parametri predefiniti passandoli come argomento alla classe ad esempio:

$pdf=new FPDF('L','cm','A3');

Dove “L” indica il formato con allineamento orrizzontale e “cm” l’unità di misura espressa in centimetri.

Tramite il metodo output(), il documento viene creato e spedito al browser.

 

TCPDF

Da Fpdf è nata TCPDF è una classe Open Source PHP per la generazione di documenti PDF. Il progetto TCPDF è stato avviato nel 2002 e oggi conta milioni di utilizzatori in tutto il mondo.
TCPDF è un Software Libero e Open Source (FLOSS). Può essere scaricata da SourceForge.

PDFlib

La libreria PDFlib è un’estensione di php che si interfaccia ad API scritte in ANSI C quindi è la libreria più veloce in circolazione.
Inoltre facendo parte di php è anche molto ben documentata.
Tuttavia è poco diffusa poiché richiede interventi sull’installazione di PHP, poichè essendo un’estensione dell’interprete si ha la necessità di ricompilare il php stesso.
Inoltre è distribuita a pagamento con licenze che partono dai 795,00 Euro per server!

Per informazioni si può consultare la pagina ufficiale PDFlib.
Ecco anche per questa libreria un breve esempio per capirne il funzionamento.

< ?
    $pdf = pdf_new();
    pdf_open_file($pdf, "filepdfdiesempio.pdf");
    pdf_begin_page($pdf, 595, 842);
    pdf_show_xy($pdf, "testo da inserire nel nostro file pdf",50, 750);
    pdf_end_page($pdf);
    pdf_close($pdf);
?>

Vediamo alcune delle funzioni usate:

pdf_new() Crea un’istanza dell’oggetto PDF Lib che viene aperta da pdf_open_file().

pdf_begin_page() Imposta il formato della pagina.

pdf_show_xy() è usata per scrivere all’interno del documento pdf da creare.

pdf_end_page() : Chiude il buffer di memoria del file temporaneo

pdf_close() : Distrugge l’oggetto PDF Lib




About Mauro De Filippis 2895 Articles
Laureato in Ingegneria Informatica nel 2008 presso l'Università degli Studi di Lecce con una tesi in Processi di Produzione Robotizzati dal titolo "Integrazione delle tecniche di progettazione del ciclo di lavorazione con programmazione della produzione”. Le mie attività principali sono : sviluppo di applicativi ANSI C per terminali POS basati su processori ARM Risc 32Bit con 2-4 MB di Ram (progettazione, sviluppo e test delle applicazioni ) sviluppo in ambiente .NET sviluppo Web in ambiente PHP, ASP Installazione, progettazione, utilizzo di Db MS SQL Server, Mysql, Acces , Oracle Da anni mi occupo di CMS Open Source, in particolare di Joomla e Wordpress. Mia è la Guida Wordpress 3.5, la Guida Joomla 2.5 , il Corso online Joomla! 2.5 ed il Corso online Wordpress Mi occupo anche di LMS in particolare di Moodle e Docebo. Google+ by Mauro De Filippis

1 Commento

  1. Salve, vorrei un aiuto un problema che mi sta assillando da diversi giorni.
    Cercherò di descrivere il problema.

    Grazie a FPDF.PHP ho generato un file PDF per la stampa del registro del professore. Esso stampa le lezioni svolte durante il quadrimestre. Se un insegnante svolge poche lezioni durante tale periodo, la pagina creata dal file PDF riesce bene a contenerle, e vengono correttamente visualizzate.
    Il problema si verifica quando in una materia sono previste diverse ore d’insegnamento per mese e nella pagina creata dal file PDF vengono visualizzate solo in parte, cioè solo le lezioni di settembre e una parte del mese di ottobre e le lezioni svolte fino a gennaio non vengono stampate, come mostrato nel esempio :
    http://registroonweb.it/registro/stampaRegistro.php?a=1&b=C300&c=1

    Vorrei, che una volta stampate le prime 15 lezioni, il programma automaticamente creasse una nuova pagina con l’elenco degli alunni e le successive 15 lezioni e così via per tutte le lezioni svolte durante il quadrimestre.

    Puoi aiutarmi a risolvere questo problema, per favore?

    Grazie in anticipo.

    Claudio

Leave a Reply

L'indirizzo email non sarà pubblicato.


*