Modul PDF: Unterschied zwischen den Versionen
Zeile 136: | Zeile 136: | ||
'''Parameter''' | '''Parameter''' | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | FY := FY - FindParamSingleReplaced('d', 0) * FZoom; | ||
+ | LRandUnten := FindParamSingleReplaced('mb', 20) * FZoom; | ||
+ | LName := FindParamStringReplaced('n', ''); | ||
+ | LWidth := FindParamSingleReplaced('w', 0) * FZoom; | ||
+ | LHeight := FindParamSingleReplaced('h', 0) * FZoom; | ||
+ | LX := FindParamSingleReplaced('x', 0) * FZoom; | ||
+ | LY := FindParamSingleReplaced('y', -1) * FZoom; | ||
+ | if LY < 0 then begin | ||
+ | FY := FY - LHeight; | ||
+ | if FY < LRandUnten then begin | ||
+ | PdfAddPage; | ||
+ | FY := FY - LHeight; | ||
+ | end; | ||
+ | LY := FY; | ||
+ | end; | ||
+ | FPDF.Canvas.DrawXObject(LX, LY, LWidth, LHeight, LName); | ||
+ | end; | ||
'''Beispiel''' | '''Beispiel''' | ||
− | |||
==#pdf_newpage== | ==#pdf_newpage== |
Version vom 22. Dezember 2020, 17:56 Uhr
Inhaltsverzeichnis
Im Modul PDF werden die Routinen zusammengefasst, die zur Erstellung von PDF-Dateien verwendet werden.
#pdf_start
Beginnt ein PDF-Dokument.
Derzeit wird nur das Format DIN A4 im Hoch- oder Querformat unterstützt.
Parameter
- pal (PageLandscape) - Wenn Y, dann wird die Seite im Querformat erstellt; Default N; Funktionen werden ersetzt
Beispiel
#pdf_start #pdf_text c="Hello World" #pdf_stop fn=$DIR(doc)\test.pdf
#pdf_stop
Beendet das PDF-Dokument und speichert es.
Parameter
- fn ("FileName") - dateiname, unter dem das Dokument gespeichert wird; Funktionen werden ersetzt. Ist der Parameter leer, so wird ein Dateiauswahldialog geöffnet.
Beispiel
#pdf_start #pdf_text c="Hello World" #pdf_stop fn=$DIR(doc)\test.pdf
#pdf_text
Fügt eine Textzeile ein.
Parameter
- a ("align") - Ausrichtung des Textes
- c ("center") - zentriert
- d2 - rechtsbündig auf zwei Dezimalstellen
- d4 - rechtsbündig auf vier Dezimalstellen
- l - linksbündig
- r - rechtsbündig
- c ("caption") - Text, der ausgegeben werden soll; Funktionen werden ersetzt
- grp ("group") - Gruppenwert; wenn dieser Wert vom vorherigen abweicht, dann wird eine neue Gruppe begonnen; Funktionen werden ersetzt
- l - Linker Rand; Funktionen werden ersetzt; Default 18mm
- mb ("margin bottom") - Wird nach dem Zeilenumbruch dieser untere Rand unterschritten, dann wird eine neue Spalte beziehungsweise neue Seite begonnen; Funktionen werden ersetzt; default 15 mm.
- r - Rechter Rand; Funktionen werden ersetzt; Default 15mm
Beispiel
#pdf_text c="Dies ist ein Test" l=30 r=100 a=c
#pdf_texto
Wie #pdf_text, mit dem Unterschied, dass kein Zeilenvorschub erfolgt.
Parameter
siehe #pdf_text
Beispiel
#pdf_texto c="Eine Beispielzeile mit " #pdf_font b=Y #pdf_text l=53 c="einem Font-Wechsel "
#pdf_font
Setzt den Font für die Textaufgabe.
Parameter
- b ("bold") - Wenn Y, dann wird der Font fett dargestellt.
- cl ("color") - Farbe, als Hex-Wert oder als Farbkonstante
- i ("italic") - Wenn Y, dann wird der Font kursiv dargestellt.
- n ("name") - Name der Schriftart; Default ist Helvetica
- s ("size") - Größe der Schriftart in typographischen Punkt; Funktionen werden ersetzt; Default 10. Die Zeilenhöhe ist 120% der Schriftgröße
Beispiel
#setfont s=12 b=Y
#pdf_sety
Setzt die Y-Position.
Bei der Ausgabe mit #pdf_text haben wir einen automatischen Zeilenvorschub. Sollen jedoch Absätze eingefügt werden, dann muss die Y-Position entsprechend verändert werden.
Der 0-Punkt bei PDF liegt in der linken, unteren Ecke. Die obere Ecke bei einem stehenden DIN A4-Blatt liegt also bei 297 mm, die Y-Position reduziert sich also laufend, wenn das Blatt von oben nach unten beschrieben wird.
Parameter
- d ("distance") - Reduziert den Y- Wert um den angegebenen Wert in mm; Funktionen werden ersetzt.
- y - Setzt die Y-Position als absoluten Wert in mm; Funktionen werden ersetzt.
Beispiel
#pdf_text Zeile 1 #pdf_text Zeile 2 #pdf_sety d=5 #pdf_text Neuer Absatz #pdf_text weitere Zeile
#pdf_checknewline
Fügt eine neue Zeile ein. Liegt die Position dann unter dem unteren Rand, wird eine neue Spalte beziehungsweise eine neue Seite begonnen.
Parameter
- mb ("margin bottom") - Unterer Rand in mm; wird dieser Wert unterschritten, dann wird eine neue Spalte beziehungsweise eine neue Seite begonnen. Funktionen werden ersetzt; default ist 20.
Beispiel
#pdf_checknewline mb=15
#pdf_loadpic
Das Laden und das Einfügen von Bildern sind getrennte Anweisungen, da ein und dasselbe Bild nur einmal geladen wird (und dann nur einmal in der PDF-Datei ist), aber öfters eingefügt werden kann.
Parameter
- fn ("FileName") - Dateiname der Datei, aus welcher das Bild geladen wird.
- n - Name des Bildes. Muss um Dokument eindeutig sein.
Beispiel
#pdf_loadpic n=logo fn=i:\temp\logo_firma.BMP #pdf_insertpic n=logo w=60 h=40 x=50 y=50
#pdf_insertpic
Parameter
FY := FY - FindParamSingleReplaced('d', 0) * FZoom; LRandUnten := FindParamSingleReplaced('mb', 20) * FZoom; LName := FindParamStringReplaced('n', ); LWidth := FindParamSingleReplaced('w', 0) * FZoom; LHeight := FindParamSingleReplaced('h', 0) * FZoom; LX := FindParamSingleReplaced('x', 0) * FZoom; LY := FindParamSingleReplaced('y', -1) * FZoom; if LY < 0 then begin FY := FY - LHeight; if FY < LRandUnten then begin PdfAddPage; FY := FY - LHeight; end; LY := FY; end; FPDF.Canvas.DrawXObject(LX, LY, LWidth, LHeight, LName);
end;
Beispiel
#pdf_newpage
Parameter
Beispiel
#pdf_newcol
Parameter
Beispiel
#pdf_execsub
Parameter
Beispiel
#pdf_multi
Parameter
Beispiel
#pdf_multibb
Parameter
Beispiel
#pdf_line
Parameter
Beispiel
#pdf_coldef
Parameter
Beispiel