Come progettare report PDF con FPDF e PHP?

Quando parliamo di FPDF ci riferiamo a una libreria, una sorta di insieme di classi scritte in PHP che ci consente come utenti di generare tutti i tipi di file PDF, il che a sua volta ci consente di risparmiare una grande quantità di lavoro in PHP.

Una delle chiavi del successo che FPDF ha tra gli utenti è legata al fatto che è possibile configurare molti dei parametri principali che personalizzeranno il documento in questione, come il carattere tipografico o la sua dimensione, il suo formato, i margini, ecc.

Come progettare report PDF con FPDF e PHP? 1

Come installare la libreria FPDF su un sito Web

La prima cosa che dobbiamo considerare quando parliamo della possibilità di installare FDPF è che stiamo parlando di una libreria che rappresenta una classe, mentre per farlo funzionare dobbiamo avere almeno PHP 4 . Pertanto, se non lo hai, inizia installando PHP .

In ogni caso, non ti preoccupare, poiché la maggior parte dei server supporta già PHP 5.3 o 5.4 e, nel caso in cui non hai la libreria sul tuo PC, puoi scaricarla facilmente da http: //www.fpdf. org / .

Una volta scaricato, il file ZIP apparirà sul tuo computer, che devi decomprimere e colorare sul tuo server locale o sul server finale, creando anche una directory chiamata PDF, in cui caricherai i file della libreria . Nient’altro è necessario per l’installazione.

Come progettare report PDF con FPDF e PHP? 2

Primi passi con FPDF di PHP

Per iniziare ad abituarci a questo sistema, ti mostreremo un semplice esempio di come funziona questa libreria, creando un file index.php, grazie al quale puoi posizionare il codice per visualizzare un file PDF con un titolo e un testo, di questa modalità:

<? php

richiedono (‘pdf / fpdf.php’);

$ pdf = new FPDF ();
$ pdf-> AddPage ();

$ pdf-> SetFont (‘Arial’, ‘B’, 16);
$ pdf-> Cella (50,10, ‘Testing FPDF’, 1,1, ‘L’);

$ pdf-> Cell (50.5, ‘interruzione di riga’, 1.1);

$ pdf-> SetFont (‘Arial’, ‘B’, 10);
$ pdf-> MultiCell (190.5, ‘Lorem Ipsum o qualsiasi testo di riempimento ..’);

$ pdf-> Output ();

?>
fpdf.jpg

Da questo, è conveniente concentrarsi in dettaglio sulla proprietà Cell , che ha questi parametri:

$ pdf-> Cella (50,10, ‘Testing FPDF’, 1,1, ‘L’);

Cella (larghezza, altezza, testo, bordo, interruzione di riga, allineamento del testo)

In questi casi devi tenere conto del fatto che il bordo può contemplare i valori 1: con bordo e 0 senza bordo. Allo stesso modo è possibile personalizzare le interruzioni di riga in modo che si adattino specificamente a ciò che ti interessa.

Allo stesso modo, è possibile modificare il codice per rimuovere i bordi, convertendo il testo in utf8 in modo che non ci siano problemi di tilde o Ñ.

$ pdf-> Cella (50,10, “Test FPDF”, 0,1, “L”);

$ pdf-> Cella (50.5, ”, 0.1);

$ pdf-> SetFont (‘Arial’, ‘B’, 10);

// converte il testo in utf8
$ text = utf8_decode (‘Lorem Ipsum ……’);

$ pdf-> MultiCell (190.5, $ testo);

Come progettare report PDF con FPDF e PHP? 3

Quando utilizzare Cell o Multicell?

Sappiamo, d’altra parte, che molti utenti hanno dubbi su quando usare Cell o Multi Cell , ed è per questo che nelle seguenti righe vogliamo mostrarti le differenze tra loro, in modo da tenerne conto:

  • Cella: utilizzata per creare una cella, anche se dobbiamo conoscere esattamente la lunghezza del contenuto in modo che non sia deformato.
  • Super cella: utile quando abbiamo paragrafi che non sappiamo quanto occupano, poiché le celle si adatteranno al contenuto.

In ogni caso, l’importante è che saremo in grado di usare Cell o Super Cell quando lo consideriamo appropriato, quindi devi solo definire quale tipo di font vuoi usare in queste celle prima di invocare la funzione .

Ancora una volta, quindi non hai dubbi, ti mostreremo quali sono i passaggi che devi seguire quando vuoi creare un’intestazione o un piè di pagina per il tuo PDF, usando FPDF Header () e Footer ( ).

Il vantaggio di questi metodi è che vengono eseguiti quasi automaticamente in modo che lo sforzo che dobbiamo fare come utenti sia minimo e ogni volta che può essere salvato quando non abbiamo grandi capacità informatiche, è apprezzato.

Un esempio che pensa alla vendita di prodotti con i loro prezzi sarebbe il seguente:

<? php

richiedono (‘pdf / fpdf.php’);

// Creiamo la nuova classe pdf che eredita da fpdf

classe PDF estende FPDF
{

// usa la funzione Header () e personalizzala per mostrare la
funzione header della pagina Header ()

{

// imposta il tipo di carattere Arial Bold 16
$ this-> SetFont (‘Arial’, ‘B’, 16);

// mettiamo una cella senza contenuto per centrare il titolo o la cella del titolo a destra
$ this-> Cell (50);

// definiamo nella cella il titolo
$ this-> Cell (100,10, “Intestazione report vendite”, 1,0, “C”);

// Salti di interruzione di riga 20 righe
$ this-> Ln (20);

}

// usa la funzione Footer () e personalizzala per mostrare la
funzione footer Footer ()

{
// Imposta la posizione della cella successiva in modo fisso a 1,5 cm dalla parte inferiore della pagina

$ this-> SetY (-15);
// Imposta il carattere Arial italica 10

$ this-> SetFont (‘Arial’, ‘I’, 10);
// Numero di pagina

$ this-> Cell (0.10, ‘Page’. $ this-> PageNo (). ‘/ {nb}’, 0.0, ‘C’);
}

}
$ this-> PageNo (imposteremo il numero di pagina)

Dopo aver considerato quanto sopra, il passaggio successivo ha a che fare con la creazione di un elenco di prodotti in formato PDF, in modo tale che li prenderemo da un database in MySQL e grazie a PHP genereremo automaticamente l’elenco.

In questo esempio non aggiungeremo tabelle ausiliarie di categorie ed elementi:


– Database: `mercato`


– Struttura della tabella per la tabella `prodotti`

CREA TABELLA SE NON ESISTE `products` (
` id_publicacion` int (11) NOT NULL AUTO_INCREMENT,

`idrubro` int (11) DEFAULT NULL,
` idcategory` int (11) DEFAULT NULL,

`idsubcategory` int (11) DEFAULT NULL,
` image1` varchar (255) DEFAULT NULL,

`image2` varchar (255) DEFAULT NULL,
` image3` varchar (255) DEFAULT NULL,

`image4` varchar (255) DEFAULT NULL,
` image5` varchar (255) DEFAULT NULL,

`image6` varchar (255) DEFAULT NULL,
` price` decimale (10,2) DEFAULT NULL,

`active` varchar (3) DEFAULT NULL,` comment`
text,

`title` varchar (255) DEFAULT NULL,
` stock` int (11) DEFAULT NULL,

CHIAVE PRIMARIA (`post_id`)
) MOTORE = CARATTERISTICHE PREDEFINITE MyISAM = latin1 AUTO_INCREMENT = 1;

Considerando quanto sopra, l’unica cosa di cui abbiamo bisogno è connetterci tramite PHP al database per consultare tutti i prodotti in questo modo:

<? php error_reporting (0);

richiedono (‘pdf / fpdf.php’);

// Mi collego al database
$ link = mysql_connect (“localhost”, “root”);

mysql_select_db (“mercato”, $ link);
// Controlla la tabella dei prodotti che richiede tutti i prodotti

$ risultato = mysql_query (“SELEZIONA * DA prodotti”, $ link);

// Abbiamo installato la classe per generare il documento pdf
$ pdf = new FPDF ();

// Aggiungiamo la prima pagina al documento pdf
$ pdf-> AddPage ();

// Imposta l’inizio del margine superiore in 25 pixel

$ y_axis_initial = 25;

// Imposta il carattere tipografico e crea il titolo della pagina. Non è un’intestazione non verrà ripetuta
$ pdf-> SetFont (‘Arial’, ‘B’, 12);

$ pdf-> Cella (40.6, ”, 0.0, ‘C’);
$ pdf-> Cella (100.6, ‘ELENCO PRODOTTI’, 1.0, ‘C’);

$ pdf-> Ln (10);

// Creiamo le celle per i titoli di ogni colonna e assegniamo uno sfondo grigio e il carattere
$ pdf-> SetFillColor (232.232.232);

$ pdf-> SetFont (‘Arial’, ‘B’, 10);
$ pdf-> Cell (125.6, ‘Title’, 1.0, ‘C’, 1);

$ pdf-> Cell (30.6, ‘Price’, 1.0, ‘C’, 1);
$ pdf-> Cella (30.6, ‘Foto’, 1.0, ‘C’, 1);

$ pdf-> Ln (10);

// Inizio a creare gli elenchi di prodotti in base alla query MySQL

while ($ row = mysql_fetch_array ($ risultato))
{

$ title = $ row [‘title’];

$ price = $ row [‘price’];
$ image = “photos /†.$ riga [‘image1 ′];

$ pdf-> Cella (125.15, $ title, 1.0, ‘L’, 0);

$ pdf-> Cella (30.15, $ price, 1.0, ‘R’, 1);
// Mostro l’iamgen all’interno della cella GetX e GetY fornisce le coordinate correnti della riga

$ pdf-> Cella (30, 15, $ pdf-> Immagine ($ image, $ pdf-> GetX () + 5, $ pdf-> GetY () + 3, 20), 1, 0, ‘C’, false);

$ pdf-> Ln (15);

}

mysql_close ($ link);

// Mostriamo il documento pdf
$ pdf-> Output ();

?>.

Sei stato in grado di creare i tuoi primi report PDF con FPDF e PHP grazie a questo trucco?

 

Potrebbe interessarti

Lascia un commento