Bin schon ziemlich weit mit dem Teil und poste mal die Beschreibung verbunden mit der Frage, ob es dafür vielleicht Verwendung als Modul gibt:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#
# Erzeugt aus einer als Hash übergebenen Tabelle ein DIN A4 PDF
#
# Aufbau der zu übergebenden Tabelle:
# [xxx] in eckigen Klammern sind Variablen, ohne eckige Klammern sind Konstanten
#
# $tabelle{[zeile]}{[spalte]} = [inhalt]
#
# Zusätzlich können folgende Parameter nach Wunsch optional angegeben werden:
# ===========================================================================
# $tabelle{log} = [pfad/datei] # Dateipfad und -name für ein Logfile (wenn nicht angegeben, wird kein Logfile erzeugt)
# $tabelle{author} = [name] # Angabe des 'Authors' in den Header-Infos
# $tabelle{title} = [text] # Angabe des 'Title' in den Header-Infos
# $tabelle{randlinks} = [pixel] # Für einen geeigneten Lochungsrand ist 40 empfehlenswert
# $tabelle{randrechts} = [pixel] # Für einen ansehnliches Bild ist 15 empfehlenswert
# $tabelle{cellpadding} = [pixel] # Innenabstand des Zelleninhalts zum Zellenrand
# $tabelle{kopflinks} = [inhalt] # Überschrift links oben
# $tabelle{kopfrechts} = [inhalt] # Überschrift rechts oben
# $tabelle{stretchhor} = [0|1] # Horizontale Streckung auf max. Seitenbreite, wenn Inhalt schmal 0=nein, 1=ja
# $tabelle{align[spalte]} = [center|right] # Gibt an, ob die Spalte zentriert oder rechtsbündig sein soll, Voreinstellung ist linksbündig
#
# Aufruf: my ($seiten,$pdf) = &maketab2pdf (\%tabelle);
# =======
#
# Rückgabe:
# =========
# Array mit zwei Werten: [0] = Anzahl Seiten wenn Wert auf Regex /^\d+$/ matcht; Fehlermeldung wenn nicht
# [1] = Das PDF als String, wenn kein Fehler aufgetreten ist, siehe Beispiel unten
#
# Beispiel:
# =========
# my %tabelle;
# $tabelle{1}{1} = '1.'; $tabelle{1}{2} = 'Montag'; $tabelle{1}{3} = '12:45'; $tabelle{1}{4} = '15:45';
# $tabelle{align1} = 'right';
# $tabelle{align3} = 'center';
# $tabelle{align4} = 'center';
# my ($seiten,$pdf) = &maketab2pdf (\%tabelle);
# if ($seiten =~ /^\d+$/) { print "PDF mit $seiten Seiten:\n$pdf\n"; }
# else { print "FEHLER: $seiten\n"; }
#
Im übrigen die Frage, ob jemand Lust hat, weiter mit daran zu arbeiten.
Was ich unbedingt noch einbauen möchte, derzeit aber nur grobe Vorstellungen von habe:
1. Verarbeitung von Zeilen, die breiter als die Tabelle sind (Zeilenumbrüche innerhalb von Zellen trotz gleichmäßiger Spaltenbreiten)
2. Verarbeitung von Tabellen über mehr als eine Seite hinweg (Definition Kopfzeilen etc.)
10 print "Hallo"
20 goto 10