Gestaltung von PDF-Berichten mit FPDF und PHP

fpdf-solvetic.jpg

FPDF ist eine Bibliothek , genauer gesagt eine Reihe von Klassen, die in PHP geschrieben wurden und das Generieren von PDF-Dateien ermöglichen, indem die Arbeit mit PHP erleichtert wird. Früher wurde die PDFlib-Bibliothek verwendet.

Mit FPDF können Sie viele Parameter konfigurieren, um das zu generierende Dokument zu formen. Dazu gehören Typ und Größe des Buchstabens sowie das Format und die Ränder der Seite. Verwalten Sie die Kopf- und Fußzeile, Seitenzahlen und viele weitere Parameter.

So installieren Sie die FPDF-Bibliothek auf einer Website

Die Bibliothek ist eine Klasse, für die Arbeit ist mindestens PHP 4 erforderlich. Die meisten Server unterstützen bereits PHP 5.3 oder 5.4. Sie können die Bibliothek unter folgendem Link herunterladen: http://www.fpdf.org/

Sobald die Zip-Datei heruntergeladen ist, entpacken wir sie und legen sie entweder lokal oder auf dem endgültigen Server auf unserem Server ab. Wir erstellen ein Verzeichnis namens pdf und laden dort die Dateien der Bibliothek hoch, dann werden wir sie entweder vom Backend oder vom Frontend einbinden.

Für die Installation sind keine weiteren Anforderungen erforderlich. Wir werden daher prüfen, ob diese recht einfach sind.

Wir beginnen mit FPDF von PHP .

Sehen wir uns ein einfaches Beispiel für die Funktionsweise der Bibliothek an. Wir werden eine index.php-Datei erstellen und im Code können wir eine PDF-Datei mit einem Titel und einem Text anzeigen. Der Code lautet wie folgt:

 <? php erfordern ('pdf / fpdf.php'); $ pdf = neues FPDF (); $ pdf-> AddPage (); $ pdf-> SetFont ('Arial', 'B', 16); $ pdf-> Cell (50.10, 'Testing FPDF', 1.1, 'L'); $ pdf-> Cell (50,5, 'Sprunglinie', 1,1); $ pdf-> SetFont ('Arial', 'B', 10); $ pdf-> MultiCell (190.5, 'Lorem Ipsum ist einfach der Ausfülltext für Druck- und Textdateien.) Lorem Ipsum ist seit 1500, als ein Drucker (N. Die Person, die die Druckerpresse benutzt) unbekannt benutzte eine Textgalerie und mischte sie so, dass es ihm gelang, ein Lehrbuchexemplar zu erstellen. Er überlebte nicht nur 500 Jahre, sondern trug auch als Fülltext in elektronische Dokumente ein. Da es im Wesentlichen dasselbe wie das Original war, wurde es in den 60er Jahren mit der Erstellung von "Letraset" -Blättern, die Lorem Ipsum-Passagen enthielten, und in jüngerer Zeit mit selbstveröffentlichender Software wie Aldus PageMaker, die Versionen von Lorem Ipsum enthielt, populär . '); $ pdf-> Output (); ?> 

fpdf.jpg

Schauen wir uns die Cell-Eigenschaft genauer an. Die Parameter lauten wie folgt

 $ pdf-> Cell (50.10, 'Testing FPDF', 1.1, 'L'); 

Zelle (Breite, Höhe, Text, Rahmen, Zeilenumbruch, Textausrichtung)

See also  Was ist und wie wird Mmc.exe (Microsoft Management Console) verwendet?

Wir klären, welche Grenze die Werte 1 annehmen kann: mit Grenze und 0 ohne Grenze.
Sprunglinie 1 Sprunglinie und 0: Sprunglinie nicht. In diesem Fall haben wir, um verständlich zu sein, den Zeilenumbruch identifiziert, aber er sollte ohne Text und ohne Rand erfolgen.

Jetzt der gleiche Code, aber wir entfernen die Kanten, indem wir 1 durch Null ändern, und konvertieren den Text in utf8, um das Problem von Tilden und ñ zu lösen.

 $ pdf-> Cell (50,10, 'Testing FPDF', 0,1, 'L'); $ pdf-> Cell (50,5, '', 0,1); $ pdf-> SetFont ('Arial', 'B', 10); // Wir konvertieren den Text nach utf8 $ text = utf8_decode ('Lorem Ipsum ... ...'); $ pdf-> MultiCell (190,5, $ text); 

Das Ergebnis ist das Folgende:

fpdf2.jpg

Wann wird Cell oder Multicell verwendet?

CELL
Es dient zum Erstellen einer Zelle, wir müssen die Länge des Inhalts genau kennen, da sich seine Größe nur deshalb nicht von selbst ändert, wenn der Inhalt breiter ist, verlässt es die Zelle.

MEHRZELLIG
Es ist nützlich, wenn wir Textabschnitte haben, bei denen wir nicht wissen, wie viel Platz sie einnehmen. Anstatt also eine Höhe für die Zelle festzulegen, wird die Breite und die Höhe für den Text angepasst, der in der Zelle angezeigt wird. Dabei wird die Textgröße der Multicell-Zelle geändert.

Wir können sowohl die Cell- als auch die MultiCell-Funktion verwenden, überall müssen wir nur definieren, welche Schriftart wir verwenden, bevor wir die einzelnen Funktionen aufrufen.

Als nächstes erstellen wir eine Kopf- und Fußzeile für unser PDF-Dokument. Dazu verwenden wir die Methoden FPDF Header () und Footer () . Diese Methoden werden vererbt und automatisch ausgeführt, wenn sie vorhanden sind. Wenn die Seite mit AddPage () erstellt wird, erkennt sie, ob die Methoden vorhanden sind, führt sie jedoch nicht aus. Jedes Mal, wenn eine neue Seite erstellt wird, werden die Kopf- und Fußzeilenmethoden erneut ausgeführt.

See also  So zeigen Sie die BIOS-Version auf einem PC an Windows 10, 8, 7

Anhand eines Beispiels, in dem eine einfache Liste der Verkäufe von Produkten und Beträgen erstellt wird, wird auch erläutert, wie eine Konstante als Währungssymbol definiert wird.

 <? php erfordern ('pdf / fpdf.php'); // Wir erstellen die neue pdf-Klasse, die von fpdf erbt Klasse PDF erweitert FPDF { // Verwenden Sie die Header () - Funktion und passen Sie sie an, um den Seitenkopf anzuzeigen Funktion Header () { // setze den Schrifttyp Arial Bold 16 $ this-> SetFont ('Arial', 'B', 16); // Wir platzieren eine Zelle ohne Inhalt, um den Titel oder die Zelle des Titels rechts zu zentrieren $ this-> Cell (50); // wir definieren die Zelle den Titel $ this-> Cell (100.10, 'Header Sales Report', 1.0, 'C'); // Zeilenumbruch springt 20 Zeilen $ this-> Ln (20); } // Wir verwenden die Funktion Footer () und passen sie an, um die Fußzeile anzuzeigen Funktion Footer () { // Wir legen die Position der nächsten Zelle fest, die 1,5 cm vom Ende der Seite entfernt ist $ this-> SetY (-15); // Setze die Schriftart Arial italica 10 $ this-> SetFont ('Arial', 'I', 10); // Seitenzahl $ this-> Cell (0,10, 'Page'. $ this-> PageNo (). '/ {nb}', 0,0, 'C'); } } 

Die Seitenzahl wird durch die Funktion festgelegt:

 $ this-> PageNo () 

fpdf3.jpg

Wir werden eine Liste von Produkten in PDF erstellen, wir werden die Produkte aus einer Datenbank in MySQL nehmen und über PHP die Datenbank konsultieren und die Liste auf dynamische Weise generieren.

Wir erstellen eine Marktdatenbank und fügen innerhalb der Produkttabelle keine Hilfstabellen für Kategorien und Artikel hinzu.

 - - Datenbank: "Markt" - - Tabellenstruktur für die Tabelle "Produkte" - CREATE TABLE IF NOT EXISTS `products` ( `int_publication_id (11) NOT NULL AUTO_INCREMENT, `idrubro` int (11) DEFAULT NULL, `idcategoria` int (11) DEFAULT NULL, `idsubcategoria` 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` decimal (10,2) DEFAULT NULL, `active` varchar (3) DEFAULT NULL, `Kommentar` Text, `title` varchar (255) DEFAULT NULL, `stock` int (11) STANDARD NULL, PRIMARY KEY (`id_publication`) ) ENGINE = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 1; 

Dann verbinden wir uns per PHP mit der Datenbank, konsultieren alle Produkte und generieren die PDF-Liste:

 <? php error_reporting (0); erfordern ('pdf / fpdf.php'); // Verbindung zur Datenbank herstellen $ link = mysql_connect ("localhost", "root"); mysql_select_db ("market", $ link); // Überprüfen Sie die Produkttabelle, um alle Produkte anzufordern $ result = mysql_query ("SELECT * FROM products", $ link); // Wir haben die Klasse installiert, um das PDF-Dokument zu generieren $ pdf = neues FPDF (); // Wir fügen die erste Seite dem PDF-Dokument hinzu $ pdf-> AddPage (); // Legen Sie den Anfang des oberen Rands in 25 Pixel fest $ y_axis_initial = 25; // Wir setzen den Buchstabentyp und erstellen den Titel der Seite. Es ist kein Header, er wird nicht wiederholt $ pdf-> SetFont ('Arial', 'B', 12); $ pdf-> Zelle (40,6, '', 0,0, 'C'); $ pdf-> Cell (100.6, 'LIST OF PRODUCTS', 1.0, 'C'); $ pdf-> Ln (10); // Wir erstellen die Zellen für den Titel jeder Spalte und weisen einen grauen Hintergrund und die Schriftart zu $ 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-> Cell (30,6, 'Photo', 1,0, 'C', 1); $ pdf-> Ln (10); // Starten Sie die Erstellung der Produktpakete gemäß der MySQL-Abfrage while ($ row = mysql_fetch_array ($ result)) { $ title = $ row ['title']; $ price = $ row ['price']; $ image = "photos /".$ row ['image1']; $ pdf-> Zelle (125,15, $ title, 1,0, 'L', 0); $ pdf-> Cell (30,15, $ price, 1,0, 'R', 1); // Ich zeige das iamgen in der Zelle GetX und GetY geben die aktuellen Koordinaten der Zeile an $ pdf-> Zelle (30, 15, $ pdf-> Bild ($ image, $ pdf-> GetX () + 5, $ pdf-> GetY () + 3, 20), 1, 0, 'C', false); $ pdf-> Ln (15); } mysql_close ($ link); // Wir zeigen das PDF-Dokument $ pdf-> Output (); ?> 

fpdf4.jpg

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *