Files
2019-04 Update Mailversand
Archiv
Auswertung
admin
FCKeditor
anschreiben
anschreiben_kehl
import
livesearch
livesearch2
overlib
prints
#alt
Praxisstellen-Dateien
decoders
doc
filters
font
makefont
tutorial
20k_c1.txt
20k_c2.txt
calligra.afm
calligra.php
calligra.ttf
calligra.z
countries.txt
index.htm
logo.png
logo_pb.png
makefont.php
tuto1.htm
tuto1.php
tuto2.htm
tuto2.php
tuto3.htm
tuto3.php
tuto4.htm
tuto4.php
tuto5.htm
tuto5.php
tuto6.htm
tuto6.php
tuto7.htm
tuto7.php
FPDI-1.6.1.zip
Praxisstellen.doc
Praxisstellen.htm
Zustimmung.doc
as_utf_class.php
class.fpdf_table.php
class.multicelltag.php
class.string_tags.php
composer.json
demo.php
fpdf.css
fpdf.php
fpdf181.zip
fpdf_tpl.php
fpdi.php
fpdi_bridge.php
fpdi_pdf_parser.php
histo.htm
newpdf.pdf
pdf_context.php
pdf_parser.php
pdfdoc.pdf
praxisstellen.pdf
praxisstellen.php
table_def.inc
table_def_kehl.inc
teilnehmer.php
wrapper_functions.php
zustimmung.pdf
zustimmung.php
#anz_anm.php
#bereiche.php
#fehlende_pu.php
#liste_pu.php
#pu_standorte.php
#puzuweisung.php
#sperrzeiten.php
.4
Vorgehensweise.txt
adm_anleg.php
adm_bearb.php
adminrechte.php
adminrechte_del.php
aenderung.php
ag_tage_admin.php
ag_tage_admin_alt.php
ag_tage_admin_neu.php
agzuweisung.php
ajax.js
anmschluss.php
anschreiben.zip
arr.php
ausland_mit_agstandort.php
ausnahme.php
auswertung_anz_teilnehmer.php
bearbeiten.php
bearbeiten_alt.php
bearbeiten_neu.php
ch_attr.php
daten_pruefen_admin.php
datenblatt.php
datenblatt_kehl.php
datenblatt_kehl_alt.php
datenblatt_kehl_neu.php
datenblatt_lubu.php
datenblatt_lubu_alt.php
datenblatt_lubu_neu.php
datenvergleich.php
datenvergleich_alt.php
datenvergleich_erst.php
datenvergleich_neu.php
datenverleich.php
dst_bearb.php
expo_auslandsstellen.php
expo_jahrgangsstatus.php
fehlende_ant.php
fehlende_sozuweisung.php
fehlender_standort.php
fehlender_standort_alt.php
fehlender_standort_neu.php
func_get_vert_block.php
func_mail_att.php
func_printqueue_antrag.php
hauptframe.htm
hauptframe_jahr.php
historie.php
historie_alt.php
historie_neu.php
index.php
jahrgang.php
jahrgangsstatus.php
jahrgangsstatus_verkuerzt.php
jquery-1.9.1.js
kennwortwechsel_admin.php
liste_w.php
livesearch2.php
livesearch_dst.php
livesearch_stud.php
login_log.php
logout_admin.php
mail.php
mail_zusage.php
menuframe.php
offene_aendant.php
offene_beurteilung.php
offene_erstant.php
pdf_gen.php
pdf_gen_alt.php
pdf_gen_ges_akte.php
pdf_gen_ges_kehl.php
pdf_gen_ges_lubu.php
pdf_gen_ges_mail.php
pdf_gen_kehl.php
pdf_gen_kehl_alt.php
pdf_gen_kehl_neu.php
pdf_gen_mail.php
pdf_gen_mail_einzel.php
pdf_gen_neu.php
pdf_gen_so_zuw.php
pdf_gen_so_zuw_alt.php
pdf_gen_so_zuw_neu.php
praxisstellen_admin.php
praxisstellen_admin_alt.php
sozuweisung.php
sozuweisung_alt.php
sozuweisung_neu.php
stan_admin_anleg.php
stan_admin_bearb.php
stan_admin_del.php
stan_useronline.php
standort_erfassen.php
standorte_2014.php
stelle_in_bw_mit_ag_standort_ausserhalb_bw.php
stud_bearb.php
test.php
test1.php
topframe.htm
ungestellte_ant.php
vert_bereich.php
zuweisung_mail.php
balance_img
fancybox
images
js
mail
standort
stud
#pdf_gen.php
#pdf_gen_alt.php
#pdf_gen_ges_lubu.php
#pdf_gen_kehl.php
#pdf_gen_kehl_alt.php
#pdf_gen_kehl_neu.php
#pdf_gen_neu.php
++ Printqueue zurücksetzen.txt.lnk
.gitignore
Auswertung_besuchte Stellen der Studs - alle Jahrgänge.sql
Auswertung_besuchte Stellen der Studs.sql
Pflicht.sql
Trigger.sql
VIEW_stan_zuw_so.sql
VIEW_stan_zuw_so_neu.sql
anz_anm.php
bearbeiten_neu.php
historie.php
historie_alt.php
historie_neu.php
index.php
index_db.php
index_ldap.php
ldap_info.php
ldap_info_hsnet.php
login.css
menuframe.php
styles_pc.css
test.html
umzugsverguetung.sql
stellenantrag_neu/admin/prints/tutorial/tuto5.htm
2022-11-28 09:17:05 +01:00

135 lines
12 KiB
HTML
Executable File

<!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>Tables</title>
<link type="text/css" rel="stylesheet" href="../fpdf.css">
</head>
<body>
<h1>Tables</h1>
This tutorial shows different ways to make tables.
<div class="source">
<pre><code>&lt;?php
<span class="kw">require(</span><span class="str">'fpdf.php'</span><span class="kw">);
class </span>PDF <span class="kw">extends </span>FPDF
<span class="kw">{
</span><span class="cmt">// Load data
</span><span class="kw">function </span>LoadData<span class="kw">(</span>$file<span class="kw">)
{
</span><span class="cmt">// Read file lines
</span>$lines <span class="kw">= </span>file<span class="kw">(</span>$file<span class="kw">);
</span>$data <span class="kw">= array();
foreach(</span>$lines <span class="kw">as </span>$line<span class="kw">)
</span>$data<span class="kw">[] = </span>explode<span class="kw">(</span><span class="str">';'</span><span class="kw">,</span>trim<span class="kw">(</span>$line<span class="kw">));
return </span>$data<span class="kw">;
}
</span><span class="cmt">// Simple table
</span><span class="kw">function </span>BasicTable<span class="kw">(</span>$header<span class="kw">, </span>$data<span class="kw">)
{
</span><span class="cmt">// Header
</span><span class="kw">foreach(</span>$header <span class="kw">as </span>$col<span class="kw">)
</span>$<span class="kw">this-&gt;</span>Cell<span class="kw">(</span>40<span class="kw">,</span>7<span class="kw">,</span>$col<span class="kw">,</span>1<span class="kw">);
</span>$<span class="kw">this-&gt;</span>Ln<span class="kw">();
</span><span class="cmt">// Data
</span><span class="kw">foreach(</span>$data <span class="kw">as </span>$row<span class="kw">)
{
foreach(</span>$row <span class="kw">as </span>$col<span class="kw">)
</span>$<span class="kw">this-&gt;</span>Cell<span class="kw">(</span>40<span class="kw">,</span>6<span class="kw">,</span>$col<span class="kw">,</span>1<span class="kw">);
</span>$<span class="kw">this-&gt;</span>Ln<span class="kw">();
}
}
</span><span class="cmt">// Better table
</span><span class="kw">function </span>ImprovedTable<span class="kw">(</span>$header<span class="kw">, </span>$data<span class="kw">)
{
</span><span class="cmt">// Column widths
</span>$w <span class="kw">= array(</span>40<span class="kw">, </span>35<span class="kw">, </span>40<span class="kw">, </span>45<span class="kw">);
</span><span class="cmt">// Header
</span><span class="kw">for(</span>$i<span class="kw">=</span>0<span class="kw">;</span>$i<span class="kw">&lt;</span>count<span class="kw">(</span>$header<span class="kw">);</span>$i<span class="kw">++)
</span>$<span class="kw">this-&gt;</span>Cell<span class="kw">(</span>$w<span class="kw">[</span>$i<span class="kw">],</span>7<span class="kw">,</span>$header<span class="kw">[</span>$i<span class="kw">],</span>1<span class="kw">,</span>0<span class="kw">,</span><span class="str">'C'</span><span class="kw">);
</span>$<span class="kw">this-&gt;</span>Ln<span class="kw">();
</span><span class="cmt">// Data
</span><span class="kw">foreach(</span>$data <span class="kw">as </span>$row<span class="kw">)
{
</span>$<span class="kw">this-&gt;</span>Cell<span class="kw">(</span>$w<span class="kw">[</span>0<span class="kw">],</span>6<span class="kw">,</span>$row<span class="kw">[</span>0<span class="kw">],</span><span class="str">'LR'</span><span class="kw">);
</span>$<span class="kw">this-&gt;</span>Cell<span class="kw">(</span>$w<span class="kw">[</span>1<span class="kw">],</span>6<span class="kw">,</span>$row<span class="kw">[</span>1<span class="kw">],</span><span class="str">'LR'</span><span class="kw">);
</span>$<span class="kw">this-&gt;</span>Cell<span class="kw">(</span>$w<span class="kw">[</span>2<span class="kw">],</span>6<span class="kw">,</span>number_format<span class="kw">(</span>$row<span class="kw">[</span>2<span class="kw">]),</span><span class="str">'LR'</span><span class="kw">,</span>0<span class="kw">,</span><span class="str">'R'</span><span class="kw">);
</span>$<span class="kw">this-&gt;</span>Cell<span class="kw">(</span>$w<span class="kw">[</span>3<span class="kw">],</span>6<span class="kw">,</span>number_format<span class="kw">(</span>$row<span class="kw">[</span>3<span class="kw">]),</span><span class="str">'LR'</span><span class="kw">,</span>0<span class="kw">,</span><span class="str">'R'</span><span class="kw">);
</span>$<span class="kw">this-&gt;</span>Ln<span class="kw">();
}
</span><span class="cmt">// Closing line
</span>$<span class="kw">this-&gt;</span>Cell<span class="kw">(</span>array_sum<span class="kw">(</span>$w<span class="kw">),</span>0<span class="kw">,</span><span class="str">''</span><span class="kw">,</span><span class="str">'T'</span><span class="kw">);
}
</span><span class="cmt">// Colored table
</span><span class="kw">function </span>FancyTable<span class="kw">(</span>$header<span class="kw">, </span>$data<span class="kw">)
{
</span><span class="cmt">// Colors, line width and bold font
</span>$<span class="kw">this-&gt;</span>SetFillColor<span class="kw">(</span>255<span class="kw">,</span>0<span class="kw">,</span>0<span class="kw">);
</span>$<span class="kw">this-&gt;</span>SetTextColor<span class="kw">(</span>255<span class="kw">);
</span>$<span class="kw">this-&gt;</span>SetDrawColor<span class="kw">(</span>128<span class="kw">,</span>0<span class="kw">,</span>0<span class="kw">);
</span>$<span class="kw">this-&gt;</span>SetLineWidth<span class="kw">(</span>.3<span class="kw">);
</span>$<span class="kw">this-&gt;</span>SetFont<span class="kw">(</span><span class="str">''</span><span class="kw">,</span><span class="str">'B'</span><span class="kw">);
</span><span class="cmt">// Header
</span>$w <span class="kw">= array(</span>40<span class="kw">, </span>35<span class="kw">, </span>40<span class="kw">, </span>45<span class="kw">);
for(</span>$i<span class="kw">=</span>0<span class="kw">;</span>$i<span class="kw">&lt;</span>count<span class="kw">(</span>$header<span class="kw">);</span>$i<span class="kw">++)
</span>$<span class="kw">this-&gt;</span>Cell<span class="kw">(</span>$w<span class="kw">[</span>$i<span class="kw">],</span>7<span class="kw">,</span>$header<span class="kw">[</span>$i<span class="kw">],</span>1<span class="kw">,</span>0<span class="kw">,</span><span class="str">'C'</span><span class="kw">,</span>true<span class="kw">);
</span>$<span class="kw">this-&gt;</span>Ln<span class="kw">();
</span><span class="cmt">// Color and font restoration
</span>$<span class="kw">this-&gt;</span>SetFillColor<span class="kw">(</span>224<span class="kw">,</span>235<span class="kw">,</span>255<span class="kw">);
</span>$<span class="kw">this-&gt;</span>SetTextColor<span class="kw">(</span>0<span class="kw">);
</span>$<span class="kw">this-&gt;</span>SetFont<span class="kw">(</span><span class="str">''</span><span class="kw">);
</span><span class="cmt">// Data
</span>$fill <span class="kw">= </span>false<span class="kw">;
foreach(</span>$data <span class="kw">as </span>$row<span class="kw">)
{
</span>$<span class="kw">this-&gt;</span>Cell<span class="kw">(</span>$w<span class="kw">[</span>0<span class="kw">],</span>6<span class="kw">,</span>$row<span class="kw">[</span>0<span class="kw">],</span><span class="str">'LR'</span><span class="kw">,</span>0<span class="kw">,</span><span class="str">'L'</span><span class="kw">,</span>$fill<span class="kw">);
</span>$<span class="kw">this-&gt;</span>Cell<span class="kw">(</span>$w<span class="kw">[</span>1<span class="kw">],</span>6<span class="kw">,</span>$row<span class="kw">[</span>1<span class="kw">],</span><span class="str">'LR'</span><span class="kw">,</span>0<span class="kw">,</span><span class="str">'L'</span><span class="kw">,</span>$fill<span class="kw">);
</span>$<span class="kw">this-&gt;</span>Cell<span class="kw">(</span>$w<span class="kw">[</span>2<span class="kw">],</span>6<span class="kw">,</span>number_format<span class="kw">(</span>$row<span class="kw">[</span>2<span class="kw">]),</span><span class="str">'LR'</span><span class="kw">,</span>0<span class="kw">,</span><span class="str">'R'</span><span class="kw">,</span>$fill<span class="kw">);
</span>$<span class="kw">this-&gt;</span>Cell<span class="kw">(</span>$w<span class="kw">[</span>3<span class="kw">],</span>6<span class="kw">,</span>number_format<span class="kw">(</span>$row<span class="kw">[</span>3<span class="kw">]),</span><span class="str">'LR'</span><span class="kw">,</span>0<span class="kw">,</span><span class="str">'R'</span><span class="kw">,</span>$fill<span class="kw">);
</span>$<span class="kw">this-&gt;</span>Ln<span class="kw">();
</span>$fill <span class="kw">= !</span>$fill<span class="kw">;
}
</span><span class="cmt">// Closing line
</span>$<span class="kw">this-&gt;</span>Cell<span class="kw">(</span>array_sum<span class="kw">(</span>$w<span class="kw">),</span>0<span class="kw">,</span><span class="str">''</span><span class="kw">,</span><span class="str">'T'</span><span class="kw">);
}
}
</span>$pdf <span class="kw">= new </span>PDF<span class="kw">();
</span><span class="cmt">// Column headings
</span>$header <span class="kw">= array(</span><span class="str">'Country'</span><span class="kw">, </span><span class="str">'Capital'</span><span class="kw">, </span><span class="str">'Area (sq km)'</span><span class="kw">, </span><span class="str">'Pop. (thousands)'</span><span class="kw">);
</span><span class="cmt">// Data loading
</span>$data <span class="kw">= </span>$pdf<span class="kw">-&gt;</span>LoadData<span class="kw">(</span><span class="str">'countries.txt'</span><span class="kw">);
</span>$pdf<span class="kw">-&gt;</span>SetFont<span class="kw">(</span><span class="str">'Arial'</span><span class="kw">,</span><span class="str">''</span><span class="kw">,</span>14<span class="kw">);
</span>$pdf<span class="kw">-&gt;</span>AddPage<span class="kw">();
</span>$pdf<span class="kw">-&gt;</span>BasicTable<span class="kw">(</span>$header<span class="kw">,</span>$data<span class="kw">);
</span>$pdf<span class="kw">-&gt;</span>AddPage<span class="kw">();
</span>$pdf<span class="kw">-&gt;</span>ImprovedTable<span class="kw">(</span>$header<span class="kw">,</span>$data<span class="kw">);
</span>$pdf<span class="kw">-&gt;</span>AddPage<span class="kw">();
</span>$pdf<span class="kw">-&gt;</span>FancyTable<span class="kw">(</span>$header<span class="kw">,</span>$data<span class="kw">);
</span>$pdf<span class="kw">-&gt;</span>Output<span class="kw">();
</span>?&gt;</code></pre>
</div>
<p class='demo'><a href='tuto5.php' target='_blank' class='demo'>[Demo]</a></p>
A table being just a collection of cells, it's natural to build one from them. The first
example is achieved in the most basic way possible: simple framed cells, all of the same size
and left aligned. The result is rudimentary but very quick to obtain.
<br>
<br>
The second table brings some improvements: each column has its own width, headings are centered,
and numbers right aligned. Moreover, horizontal lines have been removed. This is done by means
of the <code>border</code> parameter of the <a href='../doc/cell.htm'>Cell()</a> method, which specifies which sides of the
cell must be drawn. Here we want the left (<code>L</code>) and right (<code>R</code>) ones. It remains
the problem of the horizontal line to finish the table. There are two possibilities: either
check for the last line in the loop, in which case we use <code>LRB</code> for the <code>border</code>
parameter; or, as done here, add the line once the loop is over.
<br>
<br>
The third table is similar to the second one but uses colors. Fill, text and line colors are
simply specified. Alternate coloring for rows is obtained by using alternatively transparent
and filled cells.
</body>
</html>