Modul PDF: Unterschied zwischen den Versionen
(45 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 18: | Zeile 18: | ||
* #pdf_insertpic - Bild einfügen | * #pdf_insertpic - Bild einfügen | ||
* #pdf_line - Linie zeichnen | * #pdf_line - Linie zeichnen | ||
+ | * #pdf_createbarcode - Barcodes erstellen | ||
'''Positionierung''' | '''Positionierung''' | ||
Zeile 40: | Zeile 41: | ||
'''Parameter''' | '''Parameter''' | ||
+ | * cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt | ||
+ | * fn ("FileName") - dateiname, unter dem das Dokument gespeichert wird; Funktionen werden ersetzt. Ist der Parameter leer, so wird ein Dateiauswahldialog geöffnet. | ||
* pal (PageLandscape) - Wenn Y, dann wird die Seite im Querformat erstellt; Default N; Funktionen werden ersetzt | * pal (PageLandscape) - Wenn Y, dann wird die Seite im Querformat erstellt; Default N; Funktionen werden ersetzt | ||
+ | * tfn (temporary file name) - Wenn gesetzt, dann wird die Datei zunächst unter diesem Dateinamen erzeugt und erst bei #pdf_stop auf den Dateinamen fn gesetzt. Benötigt wird dies, wenn in Verzeichnissen erzeugt wird, in denen Prozesse automatisch Dateien verarbeiten (die sich dann gegebenenfalls unvollständige Dateien greifen könnten). Mit tfn kann vorübergehend ein Dateiname verwendet werden, der bei der Verarbeitung ignoriert wird, oder die Datei vorübergehend in einem anderen Verzeichnis erzeugt werden. Funktionen werden ersetzt. | ||
'''Beispiel''' | '''Beispiel''' | ||
− | #pdf_start | + | #pdf_start fn=$DIR(doc)\test.pdf |
#pdf_text c="Hello World" | #pdf_text c="Hello World" | ||
− | #pdf_stop | + | #pdf_stop |
==#pdf_stop== | ==#pdf_stop== | ||
Zeile 54: | Zeile 58: | ||
'''Parameter''' | '''Parameter''' | ||
− | * | + | * cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt |
* o ("open") - Wenn Y, wird das PDF-Dokument nach der Erstellung geöffnet; default N; Funktionen werden ersetzt | * o ("open") - Wenn Y, wird das PDF-Dokument nach der Erstellung geöffnet; default N; Funktionen werden ersetzt | ||
'''Beispiel''' | '''Beispiel''' | ||
− | #pdf_start | + | #pdf_start fn=$DIR(doc)\test.pdf |
#pdf_text c="Hello World" | #pdf_text c="Hello World" | ||
− | #pdf_stop | + | #pdf_stop |
==#pdf_text== | ==#pdf_text== | ||
Zeile 75: | Zeile 79: | ||
** r - rechtsbündig | ** r - rechtsbündig | ||
* c ("caption") - Text, der ausgegeben werden soll; Funktionen werden ersetzt | * c ("caption") - Text, der ausgegeben werden soll; Funktionen werden ersetzt | ||
+ | * cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt | ||
* grp ("group") - Gruppenwert; wenn dieser Wert vom vorherigen abweicht, dann wird eine neue Gruppe begonnen; 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 | * l - Linker Rand; Funktionen werden ersetzt; Default 18mm | ||
Zeile 107: | Zeile 112: | ||
* b ("bold") - Wenn Y, dann wird der Font fett dargestellt. | * b ("bold") - Wenn Y, dann wird der Font fett dargestellt. | ||
* cl ("color") - Farbe, als Hex-Wert oder als [[Farbkonstante]] | * cl ("color") - Farbe, als Hex-Wert oder als [[Farbkonstante]] | ||
+ | * cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt | ||
* i ("italic") - Wenn Y, dann wird der Font kursiv dargestellt. | * i ("italic") - Wenn Y, dann wird der Font kursiv dargestellt. | ||
* n ("name") - Name der Schriftart; Default ist ''Helvetica'' | * n ("name") - Name der Schriftart; Default ist ''Helvetica'' | ||
Zeile 113: | Zeile 119: | ||
'''Beispiel''' | '''Beispiel''' | ||
− | # | + | #pdf_font s=12 b=Y |
==#pdf_sety== | ==#pdf_sety== | ||
Zeile 121: | Zeile 127: | ||
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. | 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, | + | Der 0-Punkt bei PDF liegt in der linken, oberen Ecke. Die untere Ecke bei einem stehenden DIN A4-Blatt liegt also bei 297 mm, die Y-Position erhöht sich also laufend, wenn das Blatt von oben nach unten beschrieben wird. |
'''Parameter''' | '''Parameter''' | ||
+ | * cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt | ||
* d ("distance") - Reduziert den Y- Wert um den angegebenen Wert in mm; Funktionen werden ersetzt. | * 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. | * y - Setzt die Y-Position als absoluten Wert in mm; Funktionen werden ersetzt. | ||
Zeile 142: | Zeile 149: | ||
'''Parameter''' | '''Parameter''' | ||
+ | * cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt | ||
* 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. | * 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. | ||
Zeile 150: | Zeile 158: | ||
==#pdf_createbarcode== | ==#pdf_createbarcode== | ||
− | Erzeugt einen Barcode | + | Erzeugt einen Barcode und fügt ihn in das PDF ein. |
'''Parameter''' | '''Parameter''' | ||
− | * | + | * cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt |
+ | * d ("distance") - Abstand zwischen Text und Bild in mm; Default 0; Funktionen werden ersetzt. Parameter wird nur bei relativer Positionierung berücksichtigt. | ||
+ | * fn ("FileName") - Wenn gesetzt, wird das interne Bitmap nach der Rotation unter diesem Dateinamen gespeichert. Primär für Debugging; Funktionen werden ersetzt | ||
+ | * h - Höhe des Bildes; Funktionen werden ersetzt; Funktionen werden ersetzt. | ||
* rot - Rotation; default 0; Funktionen werden ersetzt; eignet sich primär für 90, 180 und 270 | * rot - Rotation; default 0; Funktionen werden ersetzt; eignet sich primär für 90, 180 und 270 | ||
− | * | + | * sx ("size x") - Breite des internen Bitmaps in Pixeln; Funktionen werden ersetzt; default 800 |
− | * | + | * sy ("size y") - Höhe des internen Bitmaps in Pixeln; Funktionen werden ersetzt; default 800 |
+ | |||
+ | * typ - Typ des Barcodes | ||
** code_128 - Code 128 (https://de.wikipedia.org/wiki/Code128) | ** code_128 - Code 128 (https://de.wikipedia.org/wiki/Code128) | ||
** qr - QR-Code (https://de.wikipedia.org/wiki/QR-Code) | ** qr - QR-Code (https://de.wikipedia.org/wiki/QR-Code) | ||
Zeile 178: | Zeile 191: | ||
** code_flat - Flattermarken | ** code_flat - Flattermarken | ||
− | + | * w - Breite (und Höhe) des internen Bildes; default 800; Funktionen werden ersetzt | |
− | + | * x - X-Position des Bildes; Funktionen werden ersetzt. | |
− | + | * y - Y-Position des Bildes; Funktionen werden ersetzt. | |
* z - Wert, der als Barcode angezeigt wird; Funktionen werden ersetzt. Bitte die Beschränkungen des jeweiligen Barcodes beachten. | * z - Wert, der als Barcode angezeigt wird; Funktionen werden ersetzt. Bitte die Beschränkungen des jeweiligen Barcodes beachten. | ||
'''Beispiel''' | '''Beispiel''' | ||
− | #pdf_createbarcode | + | #pdf_createbarcode typ=code_128 z=$VAL(1) rot=90 x=202 y=180 w=5 h=80 sx=800 sy=16 fn_=c:\temp\barcode.bmp |
− | |||
− | |||
− | == | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==#pdf_insertpic== | ==#pdf_insertpic== | ||
− | + | Mit #pdf_insertpic wird ein Bild geladen und in das PDF eingefügt. | |
Das Bild kann vertikal absolut positioniert werden, indem der Parameter y gesetzt wird. Ist der Parameter y nicht gesetzt, so wird das Bild relativ gesetzt, also unter den Text gesetzt. In diesem Fall werden die Parameter d und mb berücksichtigt. | Das Bild kann vertikal absolut positioniert werden, indem der Parameter y gesetzt wird. Ist der Parameter y nicht gesetzt, so wird das Bild relativ gesetzt, also unter den Text gesetzt. In diesem Fall werden die Parameter d und mb berücksichtigt. | ||
Zeile 210: | Zeile 208: | ||
'''Parameter''' | '''Parameter''' | ||
+ | * cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt | ||
* d ("distance") - Abstand zwischen Text und Bild in mm; Default 0; Funktionen werden ersetzt. Parameter wird nur bei relativer Positionierung berücksichtigt. | * d ("distance") - Abstand zwischen Text und Bild in mm; Default 0; Funktionen werden ersetzt. Parameter wird nur bei relativer Positionierung berücksichtigt. | ||
+ | * fn ("FileName") - Dateiname der Datei, aus welcher das Bild geladen wird. | ||
* h - Höhe des Bildes; Funktionen werden ersetzt. | * h - Höhe des Bildes; Funktionen werden ersetzt. | ||
* mb ("margin bottom") - Unterer Rand. Würde bei relativer Positionierung dieser Rand unterschritten, so wird eine neue Spalte beziehungsweise neue Seite begonnen. | * mb ("margin bottom") - Unterer Rand. Würde bei relativer Positionierung dieser Rand unterschritten, so wird eine neue Spalte beziehungsweise neue Seite begonnen. | ||
− | |||
* w ("width") - Breite des Bildes in mm; Funktionen werden ersetzt. | * w ("width") - Breite des Bildes in mm; Funktionen werden ersetzt. | ||
* x - X-Position des Bildes; Funktionen werden ersetzt. | * x - X-Position des Bildes; Funktionen werden ersetzt. | ||
Zeile 220: | Zeile 219: | ||
'''Beispiel''' | '''Beispiel''' | ||
− | + | #pdf_insertpic w=60 h=40 x=50 y=50 fn=i:\temp\logo_firma.BMP | |
− | #pdf_insertpic | ||
==#pdf_newpage== | ==#pdf_newpage== | ||
Zeile 229: | Zeile 227: | ||
'''Parameter''' | '''Parameter''' | ||
− | ( | + | * cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt |
'''Beispiel''' | '''Beispiel''' | ||
Zeile 241: | Zeile 239: | ||
'''Parameter''' | '''Parameter''' | ||
− | ( | + | * cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt |
'''Beispiel''' | '''Beispiel''' | ||
Zeile 254: | Zeile 252: | ||
* a ("align") - Ausrichtung des Textes | * a ("align") - Ausrichtung des Textes | ||
** c ("center") - zentriert | ** c ("center") - zentriert | ||
− | |||
− | |||
** l - linksbündig | ** l - linksbündig | ||
+ | ** j ("join") - Blocksatz | ||
** r - rechtsbündig | ** r - rechtsbündig | ||
− | * c ("caption") - Text, der ausgegeben werden soll; Funktionen werden ersetzt | + | * c ("caption") - Text, der ausgegeben werden soll; Funktionen werden doppelt ersetzt |
+ | * cn ("caption no") - Text, der ausgegeben werden soll; Funktionen werden nicht doppelt ersetzt | ||
+ | * cl ("color") - Schriftfarbe; Default schwarz | ||
+ | * cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt | ||
+ | * d ("distance") - Abstand der Absätze, default halbe Schriftgröße | ||
* grp ("group") - Gruppenwert; wenn dieser Wert vom vorherigen abweicht, dann wird eine neue Gruppe begonnen; 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 | * 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. | * 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. | ||
* mbp ("margin bottom paragraph") - Wird nach dem Zeilenumbruch dieser untere Rand unterschritten, und handelt es sich um eine leere Zeile, dann wird eine neue Spalte beziehungsweise neue Seite begonnen; Funktionen werden ersetzt; default 15 mm. (Mit diesem Parameter kann bewirkt werden, dass ein Spalten- oder Seitenumbruch ein wenig vorgezogen wird, damit nicht eine einzelne oder einige wenige einzelne Zeilen am Ende einer Spalte oder Seite stehen bleiben.) | * mbp ("margin bottom paragraph") - Wird nach dem Zeilenumbruch dieser untere Rand unterschritten, und handelt es sich um eine leere Zeile, dann wird eine neue Spalte beziehungsweise neue Seite begonnen; Funktionen werden ersetzt; default 15 mm. (Mit diesem Parameter kann bewirkt werden, dass ein Spalten- oder Seitenumbruch ein wenig vorgezogen wird, damit nicht eine einzelne oder einige wenige einzelne Zeilen am Ende einer Spalte oder Seite stehen bleiben.) | ||
+ | * s ("size") - Schriftgröße; Funktionen werden ersetzt, Default 10 | ||
* r - Rechter Rand; Funktionen werden ersetzt; Default 15mm | * r - Rechter Rand; Funktionen werden ersetzt; Default 15mm | ||
Zeile 273: | Zeile 275: | ||
Wie #pdf_multi, allerdings werden Pseudo-BB-Codes interpretiert. | Wie #pdf_multi, allerdings werden Pseudo-BB-Codes interpretiert. | ||
− | + | '''Codes Fontweight''' | |
+ | |||
+ | * [/b] - Font normal | ||
+ | * [b] - Font fett / bold | ||
+ | * [b=thin] | ||
+ | * [b=extralight] | ||
+ | * [b=light] | ||
+ | * [b=normal] | ||
+ | * [b=medium] | ||
+ | * [b=semibold] | ||
+ | * [b=bold] | ||
+ | * [b=extrabold] | ||
+ | * [b=black] | ||
+ | * [b=extrablack] | ||
+ | |||
+ | '''Codes Fontsland''' | ||
+ | |||
+ | * [/i] oder [i=upright] - aufrecht / Upright | ||
+ | * [i] oder [i=italic] - kursiv / Italic | ||
+ | * [i=oblique] | ||
+ | |||
+ | '''Codes Align''' | ||
+ | |||
+ | * [a=l] linksbündig | ||
+ | * [a=r] rechtsbündig | ||
+ | * [a=c] zentriert | ||
+ | * [a=j] Blocksatz | ||
+ | |||
+ | '''Weietre Codes''' | ||
+ | |||
+ | * [cl=red] - Schriftfarbe rot (auch andere Farben möglich) | ||
+ | * [d=0] - Abstand der Absätze; default ist Parameter d | ||
+ | * [s=12] - Schriftgröße 12 Punkt (auch andere Größen möglich) | ||
+ | |||
+ | |||
+ | '''Beispiel''' | ||
+ | |||
+ | #pdf_multibb c=$TEXT(1) | ||
+ | |||
+ | ==#pdf_textmax== | ||
+ | |||
+ | |||
+ | |||
+ | '''Parameter''' | ||
+ | |||
+ | |||
+ | '''Beispiel''' | ||
− | + | ==#pdf_drawdef== | |
− | * | + | Definiert Werte vor dem Zeichnen einer Linie |
− | * | + | |
− | * | + | '''Parameter''' |
− | * | + | |
+ | * cl ("color") - Farbe der Zeichenoperation; Default schwarz | ||
+ | * cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt | ||
+ | * w ("width") - Breite des Stiftes | ||
+ | * y - Typ | ||
+ | ** stroke - nur Umriss | ||
+ | ** fill - Füllung | ||
+ | ** strokeandfill oder both - Umriss und Füllung | ||
+ | |||
+ | |||
+ | '''Beispiel''' | ||
+ | |||
+ | #pdf_drawdef cl=red w=3 | ||
+ | #pdf_line x1=30 x2=150 y1=250 y2=200 w=1 | ||
+ | #pdf_line w=0,1 d=5 | ||
==#pdf_line== | ==#pdf_line== | ||
Zeile 288: | Zeile 350: | ||
'''Parameter''' | '''Parameter''' | ||
− | * | + | * cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt |
* d ("distance") - Verändert vor dem Zeichnen der Linie die aktuelle Y-Position; default 0 | * d ("distance") - Verändert vor dem Zeichnen der Linie die aktuelle Y-Position; default 0 | ||
− | |||
* x1 - X-Position des Start-Punktes als Distanz vom linken Rand; default 18 mm | * x1 - X-Position des Start-Punktes als Distanz vom linken Rand; default 18 mm | ||
* x2 - X-Position des End-Punktes als Distanz vom rechten Rand; default 15 mm | * x2 - X-Position des End-Punktes als Distanz vom rechten Rand; default 15 mm | ||
Zeile 298: | Zeile 359: | ||
'''Beispiel''' | '''Beispiel''' | ||
− | #pdf_line x1=30 x2=150 y1=250 y2=200 w=1 | + | #pdf_drawdef cl=red w=3 |
+ | #pdf_line x1=30 x2=150 y1=250 y2=200 w=1 | ||
#pdf_line w=0,1 d=5 | #pdf_line w=0,1 d=5 | ||
+ | |||
+ | |||
+ | ==#pdf_rect== | ||
+ | |||
+ | Zeichnet eine geometrische Figur | ||
+ | |||
+ | '''Parameter''' | ||
+ | |||
+ | * cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt | ||
+ | * d ("distance") - Verändert vor dem Zeichnen der Linie die aktuelle Y-Position; default 0 | ||
+ | * h - Höhe; Funktionen werden ersetzt, default 0 | ||
+ | * j - Typ (y ist bereits belegt...); default rect | ||
+ | ** rect oder rectangle - Rechteck | ||
+ | ** round oder roundrect - Rechteck mit abgerundeten Ecken | ||
+ | ** circle oder oval - Ellipse | ||
+ | * rad ("radius") - Radius bei roundrect; Funktionen werden ersetzt, default 1 | ||
+ | * w - Breite; Funktionen werden ersetzt, default 0 | ||
+ | * x - X-Position als Distanz vom linken Rand; Funktionen werden ersetzt, default 0 | ||
+ | * y - Y-Position als Distanz vom linken Rand; Funktionen werden ersetzt, default 0 | ||
+ | |||
+ | |||
+ | '''Beispiel''' | ||
+ | |||
+ | #pdf_drawdef cl=red w=3 | ||
+ | #pdf_rect x=30 y=150 w=250 h=200 | ||
==#pdf_coldef== | ==#pdf_coldef== | ||
Zeile 308: | Zeile 395: | ||
* cc ("ColumnCount") - Anzahl der Spalten; default 1; Funktionen werden ersetzt. | * cc ("ColumnCount") - Anzahl der Spalten; default 1; Funktionen werden ersetzt. | ||
+ | * cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt | ||
* l - Linker Rand in mm; default 18mm; Funktionen werden ersetzt. | * l - Linker Rand in mm; default 18mm; Funktionen werden ersetzt. | ||
* r - Linker Rand in mm; default 15mm; Funktionen werden ersetzt. | * r - Linker Rand in mm; default 15mm; Funktionen werden ersetzt. | ||
Zeile 315: | Zeile 403: | ||
#pdf_coldef cc=2 ws=7 | #pdf_coldef cc=2 ws=7 | ||
+ | |||
+ | |||
+ | ==#pdf_gdef== | ||
+ | |||
+ | Definiert die Werte für ein Grid | ||
+ | |||
+ | '''Parameter''' | ||
+ | |||
+ | * cc ("ColumnCount") - Anzahl der Spalten; default 1; Funktionen werden ersetzt. | ||
+ | * cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt | ||
+ | * cw ("ColumnWidth") - Breite der einzelnen Spalten (also cw1, cw2, cw3...); default 10, Funktionen werden ersetzt | ||
+ | * d ("distance") - Verändert vor dem Zeichnen der Linie die aktuelle Y-Position; default 0, Funktionen werden ersetzt | ||
+ | * h ("height") - Default-Höhe der Reihe in mm; default 10, Funktionen werden ersetzt | ||
+ | * l ("left") - Linker Rand in mm des Grid vom linken Blattrand; default 18, Funktionen werden ersetzt | ||
+ | * ml ("margin left") - Default-Abstand in mmd es Textes im Grid von der linken Linie des Gitters (Linienmitte); default 1, Funktionen werden ersetzt | ||
+ | * mr ("margin right") - Default-Abstand in mm des Textes im Grid von der rechten Linie des Gitters (Linienmitte); default 1, Funktionen werden ersetzt | ||
+ | * mt ("margin top") - Default-Abstand in mm des Textes im Grid von der oberen Linie des Gitters (Linienmitte); default 1, Funktionen werden ersetzt | ||
+ | |||
+ | '''Beispiel''' | ||
+ | |||
+ | #pdf_gdef cc=3 cw1=50 cw2=60 cw3=70 | ||
+ | #pdf_grow c1=eins c2="[b]zwei" c3=drei a3=r | ||
+ | #pdf_grow c1=eins c2="[b]zwei" cs2=2 c3=drei a3=r | ||
+ | #pdf_grow c1=[s=12]eins cs1=3 c2="[b]zwei" c3=drei a3=r | ||
+ | #pdf_gend | ||
+ | |||
+ | ==#pdf_grow== | ||
+ | |||
+ | Fügt dem Grid eine Zeile hinzu und setzt die Werte der einzelnen Zellen | ||
+ | |||
+ | '''Parameter''' | ||
+ | |||
+ | * a ("align") - Ausrichtung (c, l, j, r) des Textes in der Zelle; je nach Zelle a1, a2, a3...; default ist l | ||
+ | * c ("caption") - Text der Zelle, sofern cn nicht gesetzt; es können Pseudo-BB-Codes verwendet werden, siehe #pdf_multibb und Beispiel; je nach Zelle c1, c2, c3...; Funktionen werden ersetzt | ||
+ | * cl ("color") - Farbe des Textes in des Zelle; je nach Zele cl1, cl2, cl3...; default ist black | ||
+ | * cn ("caption no") - Text der Zelle; es können Pseudo-BB-Codes verwendet werden, siehe #pdf_multibb und Beispiel; je nach Zelle cn1, cn2, cn3...; Funktionen werden nicht (!) ersetzt | ||
+ | * cs ("ColSpan") - Gibt an, wie viele Spalten die Zelle überspannt; default 1, Funktionen werden ersetzt | ||
+ | * cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt | ||
+ | * h ("height") - Höhe der Zeile in mm; default ist der Wert h von #pdf_gdef, Funktionen werden ersetzt | ||
+ | * ml ("margin left") - Abstand in mm des Textes im Grid von der linken Linie des Gitters (Linienmitte); je nach Zelle ml1, ml2, ml3...; default ist der Wert ml von #pdf_gdef, Funktionen werden ersetzt | ||
+ | * mr ("margin right") - Abstand in mm des Textes im Grid von der rechten Linie des Gitters (Linienmitte); je nach Zelle mr1, mr2, mr3...; default ist der Wert mr von #pdf_gdef, Funktionen werden ersetzt | ||
+ | * mt ("margin top") - Abstand in mm des Textes im Grid von der oberen Linie des Gitters (Linienmitte); je nach Zelle mt1, mt2, mt3...; default ist der Wert mt von #pdf_gdef, Funktionen werden ersetzt | ||
+ | * s ("size") - Größe der Schriftart in Punkt; je nach Zelle s1, s2, s3...; default ist 10, Funktionen werden ersetzt | ||
+ | |||
+ | '''Beispiel''' | ||
+ | |||
+ | Siehe #pdf_gdef | ||
+ | |||
+ | ==#pdf_gend== | ||
+ | |||
+ | Beendet ein Grid, indem es unten eine horizontale Linie zieht. | ||
+ | |||
+ | '''Parameter''' | ||
+ | |||
+ | * cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt | ||
+ | |||
+ | '''Beispiel''' | ||
+ | |||
+ | Siehe #pdf_gdef | ||
==$PDF_PAGE()== | ==$PDF_PAGE()== | ||
Zeile 339: | Zeile 486: | ||
#pdf_line x1=30 x2=150 y1=$PDF_YMM() y2=$PDF_YMM() w=1 cl=red | #pdf_line x1=30 x2=150 y1=$PDF_YMM() y2=$PDF_YMM() w=1 cl=red | ||
+ | |||
+ | |||
+ | ==Umfangreicheres Beispiel== | ||
+ | |||
+ | Erläuterung im Video: [https://www.youtube.com/watch?v=R2ceP0UYgoY| PDFs erstellen (8:11)] | ||
+ | |||
+ | #frm c="c_test_pdf" y=console | ||
+ | |||
+ | #pdf_start fn=$DIR(doc)test.pdf | ||
+ | |||
+ | #pdf_font b=Y | ||
+ | #pdf_texto c=Login | ||
+ | #pdf_texto c=Vorname l=80 | ||
+ | #pdf_text c=Nachname l=120 | ||
+ | #pdf_sety d=2 | ||
+ | #pdf_font b=N | ||
+ | |||
+ | #cmd #pdf_texto c=$DATA(dat,login) | ||
+ | #cmd #pdf_texto c=$DATA(dat,firstname) l=80 | ||
+ | #cmd #pdf_text c=$DATA(dat,lastname) l=120 | ||
+ | |||
+ | #sql select login, firstname, lastname from user_user | ||
+ | #sql_open n=dat er=1 | ||
+ | |||
+ | #pdf_insertpic w=60 h=40 x=18 y=50 fn=i:\temp\bafbal_big.png | ||
+ | #pdf_createbarcode typ=qr z=https://bafbal.de x=100 y=50 w=40 h=40 sx=800 | ||
+ | |||
+ | #pdf_sety y=100 | ||
+ | #text Dies ist ein Text mit mehreren Zeilen | ||
+ | #text mit [b]fett[/b] und [i]kursiv[/i][a=r] | ||
+ | #text auch mal eine Zeile rechtsbündig[a=l] | ||
+ | #text [s=18]sowie größer und [cl=red]in Farbe. | ||
+ | #pdf_multibb c=$TEXT(1) | ||
+ | |||
+ | #pdf_stop o=Y | ||
+ | |||
+ | #cout c="c_test_pdf executed" |
Aktuelle Version vom 12. Juli 2024, 08:43 Uhr
Inhaltsverzeichnis
- 1 PDF
- 1.1 #pdf_start
- 1.2 #pdf_stop
- 1.3 #pdf_text
- 1.4 #pdf_texto
- 1.5 #pdf_font
- 1.6 #pdf_sety
- 1.7 #pdf_checknewline
- 1.8 #pdf_createbarcode
- 1.9 #pdf_insertpic
- 1.10 #pdf_newpage
- 1.11 #pdf_newcol
- 1.12 #pdf_multi
- 1.13 #pdf_multibb
- 1.14 #pdf_textmax
- 1.15 #pdf_drawdef
- 1.16 #pdf_line
- 1.17 #pdf_rect
- 1.18 #pdf_coldef
- 1.19 #pdf_gdef
- 1.20 #pdf_grow
- 1.21 #pdf_gend
- 1.22 $PDF_PAGE()
- 1.23 $PDF_YMM()
- 1.24 Umfangreicheres Beispiel
Im Modul PDF werden die Routinen zusammengefasst, die zur Erstellung von PDF-Dateien verwendet werden.
Allgemeines
- #pdf_start - Dokument beginnen
- #pdf_stop - Dokument beenden und speichern
Text ausgeben
- #pdf_text - Textzeile
- #pdf_texto - Text ohne neue Zeile
- #pdf_multi - mehrzeiliger Text
- #pdf_multibb - mehrzeiliger Text mit Pseudo-BB-Code
- #pdf_font - Font setzen
Bilder und Linien
- #pdf_loadpic - Bild laden
- #pdf_insertpic - Bild einfügen
- #pdf_line - Linie zeichnen
- #pdf_createbarcode - Barcodes erstellen
Positionierung
- #pdf_sety - Y-Position setzen
- #pdf_checknewline - Neue Zeile beginnen mit Prüfung auf Spalten- oder Seitenumbruch
- #pdf_newpage - Neue Seite beginnen
- #pdf_newcol - Neue Spalte beginnen
- #pdf_coldef - Spaltendefinition
- $PAGE()
- $YMM()
Beispiel
#pdf_start
Beginnt ein PDF-Dokument.
Derzeit wird nur das Format DIN A4 im Hoch- oder Querformat unterstützt.
Parameter
- cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt
- fn ("FileName") - dateiname, unter dem das Dokument gespeichert wird; Funktionen werden ersetzt. Ist der Parameter leer, so wird ein Dateiauswahldialog geöffnet.
- pal (PageLandscape) - Wenn Y, dann wird die Seite im Querformat erstellt; Default N; Funktionen werden ersetzt
- tfn (temporary file name) - Wenn gesetzt, dann wird die Datei zunächst unter diesem Dateinamen erzeugt und erst bei #pdf_stop auf den Dateinamen fn gesetzt. Benötigt wird dies, wenn in Verzeichnissen erzeugt wird, in denen Prozesse automatisch Dateien verarbeiten (die sich dann gegebenenfalls unvollständige Dateien greifen könnten). Mit tfn kann vorübergehend ein Dateiname verwendet werden, der bei der Verarbeitung ignoriert wird, oder die Datei vorübergehend in einem anderen Verzeichnis erzeugt werden. Funktionen werden ersetzt.
Beispiel
#pdf_start fn=$DIR(doc)\test.pdf #pdf_text c="Hello World" #pdf_stop
#pdf_stop
Beendet das PDF-Dokument und speichert es.
Parameter
- cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt
- o ("open") - Wenn Y, wird das PDF-Dokument nach der Erstellung geöffnet; default N; Funktionen werden ersetzt
Beispiel
#pdf_start fn=$DIR(doc)\test.pdf #pdf_text c="Hello World" #pdf_stop
#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
- cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, 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
- cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt
- 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
#pdf_font 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, oberen Ecke. Die untere Ecke bei einem stehenden DIN A4-Blatt liegt also bei 297 mm, die Y-Position erhöht sich also laufend, wenn das Blatt von oben nach unten beschrieben wird.
Parameter
- cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt
- 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
- cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt
- 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_createbarcode
Erzeugt einen Barcode und fügt ihn in das PDF ein.
Parameter
- cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt
- d ("distance") - Abstand zwischen Text und Bild in mm; Default 0; Funktionen werden ersetzt. Parameter wird nur bei relativer Positionierung berücksichtigt.
- fn ("FileName") - Wenn gesetzt, wird das interne Bitmap nach der Rotation unter diesem Dateinamen gespeichert. Primär für Debugging; Funktionen werden ersetzt
- h - Höhe des Bildes; Funktionen werden ersetzt; Funktionen werden ersetzt.
- rot - Rotation; default 0; Funktionen werden ersetzt; eignet sich primär für 90, 180 und 270
- sx ("size x") - Breite des internen Bitmaps in Pixeln; Funktionen werden ersetzt; default 800
- sy ("size y") - Höhe des internen Bitmaps in Pixeln; Funktionen werden ersetzt; default 800
- typ - Typ des Barcodes
- code_128 - Code 128 (https://de.wikipedia.org/wiki/Code128)
- qr - QR-Code (https://de.wikipedia.org/wiki/QR-Code)
- code_11 - Code 11 (https://en.wikipedia.org/wiki/Code_11)
- c25_matrix - Standard Code 2 of 5 (https://www.suchymips.de/de/code-matrix.htm)
- c25_inter - 2 of 5 Interleaved (https://www.suchymips.de/de/barcode-2-5-interleaved.htm)
- c25_iata - 2 of 5 IATA (https://www.suchymips.de/de/code-iata.htm)
- c25_logic - Code 2 of 5 Data Logic (https://www.suchymips.de/de/datalogic.htm)
- c25_ind - Code 2 of 5 Industrial (https://www.suchymips.de/de/barcode-2-5.htm)
- code_39 - Code 3 of 9 (Code 39) (https://www.suchymips.de/de/code-39.htm)
- code_39ex - Extended Code 3 of 9 (Code 39+) (https://www.suchymips.de/de/code-39-extended.htm)
- eanx - EAN (https://www.suchymips.de/de/ean-upc.htm)
- ean128 - GS1-128 (UCC.EAN-128) (https://www.suchymips.de/de/barcode-lexikon-uebersicht-e.htm)
- code_bar - Codabar (https://www.suchymips.de/de/codabar.htm)
- dp_leit - Deutsche Post Leitcode (https://de.wikipedia.org/wiki/Leitcode)
- dp_ident - Deutsche Post Identcode (https://www.activebarcode.de/codes/identcode.html)
- code_16k - Code 16K (https://de.wikipedia.org/wiki/Code_16K)
- code_49 - Code 49 (https://de.wikipedia.org/wiki/Code_49)
- code_93 - Code 93 (https://www.suchymips.de/de/code-93.htm)
- code_flat - Flattermarken
- w - Breite (und Höhe) des internen Bildes; default 800; Funktionen werden ersetzt
- x - X-Position des Bildes; Funktionen werden ersetzt.
- y - Y-Position des Bildes; Funktionen werden ersetzt.
- z - Wert, der als Barcode angezeigt wird; Funktionen werden ersetzt. Bitte die Beschränkungen des jeweiligen Barcodes beachten.
Beispiel
#pdf_createbarcode typ=code_128 z=$VAL(1) rot=90 x=202 y=180 w=5 h=80 sx=800 sy=16 fn_=c:\temp\barcode.bmp
#pdf_insertpic
Mit #pdf_insertpic wird ein Bild geladen und in das PDF eingefügt.
Das Bild kann vertikal absolut positioniert werden, indem der Parameter y gesetzt wird. Ist der Parameter y nicht gesetzt, so wird das Bild relativ gesetzt, also unter den Text gesetzt. In diesem Fall werden die Parameter d und mb berücksichtigt.
Parameter
- cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt
- d ("distance") - Abstand zwischen Text und Bild in mm; Default 0; Funktionen werden ersetzt. Parameter wird nur bei relativer Positionierung berücksichtigt.
- fn ("FileName") - Dateiname der Datei, aus welcher das Bild geladen wird.
- h - Höhe des Bildes; Funktionen werden ersetzt.
- mb ("margin bottom") - Unterer Rand. Würde bei relativer Positionierung dieser Rand unterschritten, so wird eine neue Spalte beziehungsweise neue Seite begonnen.
- w ("width") - Breite des Bildes in mm; Funktionen werden ersetzt.
- x - X-Position des Bildes; Funktionen werden ersetzt.
- y - Y-Position des Bildes; Funktionen werden ersetzt. Wenn der Parameter y gesetzt ist, wird das Bild absolut positioniert und die Parameter d und mb bleiben unberücksichtigt.
Beispiel
#pdf_insertpic w=60 h=40 x=50 y=50 fn=i:\temp\logo_firma.BMP
#pdf_newpage
Beginnt eine neue Seite
Parameter
- cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt
Beispiel
#pdf_newpage
#pdf_newcol
Beginnt eine neue Spalte. Wenn es sich bereits um die letzte Spalte auf der Seite handelt, dann wird eine neue Seite begonnen.
Parameter
- cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt
Beispiel
#pdf_newcol
#pdf_multi
Fügt einen Text ein, die Zeilen werden erforderlichenfalls umgebrochen.
Parameter
- a ("align") - Ausrichtung des Textes
- c ("center") - zentriert
- l - linksbündig
- j ("join") - Blocksatz
- r - rechtsbündig
- c ("caption") - Text, der ausgegeben werden soll; Funktionen werden doppelt ersetzt
- cn ("caption no") - Text, der ausgegeben werden soll; Funktionen werden nicht doppelt ersetzt
- cl ("color") - Schriftfarbe; Default schwarz
- cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt
- d ("distance") - Abstand der Absätze, default halbe Schriftgröße
- 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.
- mbp ("margin bottom paragraph") - Wird nach dem Zeilenumbruch dieser untere Rand unterschritten, und handelt es sich um eine leere Zeile, dann wird eine neue Spalte beziehungsweise neue Seite begonnen; Funktionen werden ersetzt; default 15 mm. (Mit diesem Parameter kann bewirkt werden, dass ein Spalten- oder Seitenumbruch ein wenig vorgezogen wird, damit nicht eine einzelne oder einige wenige einzelne Zeilen am Ende einer Spalte oder Seite stehen bleiben.)
- s ("size") - Schriftgröße; Funktionen werden ersetzt, Default 10
- r - Rechter Rand; Funktionen werden ersetzt; Default 15mm
Beispiel
#pdf_multi mb=15 mbp=22 c=$TEXT(3)
#pdf_multibb
Wie #pdf_multi, allerdings werden Pseudo-BB-Codes interpretiert.
Codes Fontweight
- [/b] - Font normal
- [b] - Font fett / bold
- [b=thin]
- [b=extralight]
- [b=light]
- [b=normal]
- [b=medium]
- [b=semibold]
- [b=bold]
- [b=extrabold]
- [b=black]
- [b=extrablack]
Codes Fontsland
- [/i] oder [i=upright] - aufrecht / Upright
- [i] oder [i=italic] - kursiv / Italic
- [i=oblique]
Codes Align
- [a=l] linksbündig
- [a=r] rechtsbündig
- [a=c] zentriert
- [a=j] Blocksatz
Weietre Codes
- [cl=red] - Schriftfarbe rot (auch andere Farben möglich)
- [d=0] - Abstand der Absätze; default ist Parameter d
- [s=12] - Schriftgröße 12 Punkt (auch andere Größen möglich)
Beispiel
#pdf_multibb c=$TEXT(1)
#pdf_textmax
Parameter
Beispiel
#pdf_drawdef
Definiert Werte vor dem Zeichnen einer Linie
Parameter
- cl ("color") - Farbe der Zeichenoperation; Default schwarz
- cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt
- w ("width") - Breite des Stiftes
- y - Typ
- stroke - nur Umriss
- fill - Füllung
- strokeandfill oder both - Umriss und Füllung
Beispiel
#pdf_drawdef cl=red w=3 #pdf_line x1=30 x2=150 y1=250 y2=200 w=1 #pdf_line w=0,1 d=5
#pdf_line
Zeichnet eine Linie
Parameter
- cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt
- d ("distance") - Verändert vor dem Zeichnen der Linie die aktuelle Y-Position; default 0
- x1 - X-Position des Start-Punktes als Distanz vom linken Rand; default 18 mm
- x2 - X-Position des End-Punktes als Distanz vom rechten Rand; default 15 mm
- y1 - Y-Position des Start-Punktes; default aktuelle Y-Position
- y2 - Y-Position des End-Punktes; default aktuelle Y-Position
Beispiel
#pdf_drawdef cl=red w=3 #pdf_line x1=30 x2=150 y1=250 y2=200 w=1 #pdf_line w=0,1 d=5
#pdf_rect
Zeichnet eine geometrische Figur
Parameter
- cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt
- d ("distance") - Verändert vor dem Zeichnen der Linie die aktuelle Y-Position; default 0
- h - Höhe; Funktionen werden ersetzt, default 0
- j - Typ (y ist bereits belegt...); default rect
- rect oder rectangle - Rechteck
- round oder roundrect - Rechteck mit abgerundeten Ecken
- circle oder oval - Ellipse
- rad ("radius") - Radius bei roundrect; Funktionen werden ersetzt, default 1
- w - Breite; Funktionen werden ersetzt, default 0
- x - X-Position als Distanz vom linken Rand; Funktionen werden ersetzt, default 0
- y - Y-Position als Distanz vom linken Rand; Funktionen werden ersetzt, default 0
Beispiel
#pdf_drawdef cl=red w=3 #pdf_rect x=30 y=150 w=250 h=200
#pdf_coldef
Richtet auf der Seite mehrere Spalten ein.
Parameter
- cc ("ColumnCount") - Anzahl der Spalten; default 1; Funktionen werden ersetzt.
- cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt
- l - Linker Rand in mm; default 18mm; Funktionen werden ersetzt.
- r - Linker Rand in mm; default 15mm; Funktionen werden ersetzt.
- ws ("WhiteSpace") - Horizontaler Spaltenabstand; default 7mm; Funktionen werden ersetzt.
Beispiel
#pdf_coldef cc=2 ws=7
#pdf_gdef
Definiert die Werte für ein Grid
Parameter
- cc ("ColumnCount") - Anzahl der Spalten; default 1; Funktionen werden ersetzt.
- cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt
- cw ("ColumnWidth") - Breite der einzelnen Spalten (also cw1, cw2, cw3...); default 10, Funktionen werden ersetzt
- d ("distance") - Verändert vor dem Zeichnen der Linie die aktuelle Y-Position; default 0, Funktionen werden ersetzt
- h ("height") - Default-Höhe der Reihe in mm; default 10, Funktionen werden ersetzt
- l ("left") - Linker Rand in mm des Grid vom linken Blattrand; default 18, Funktionen werden ersetzt
- ml ("margin left") - Default-Abstand in mmd es Textes im Grid von der linken Linie des Gitters (Linienmitte); default 1, Funktionen werden ersetzt
- mr ("margin right") - Default-Abstand in mm des Textes im Grid von der rechten Linie des Gitters (Linienmitte); default 1, Funktionen werden ersetzt
- mt ("margin top") - Default-Abstand in mm des Textes im Grid von der oberen Linie des Gitters (Linienmitte); default 1, Funktionen werden ersetzt
Beispiel
#pdf_gdef cc=3 cw1=50 cw2=60 cw3=70 #pdf_grow c1=eins c2="[b]zwei" c3=drei a3=r #pdf_grow c1=eins c2="[b]zwei" cs2=2 c3=drei a3=r #pdf_grow c1=[s=12]eins cs1=3 c2="[b]zwei" c3=drei a3=r #pdf_gend
#pdf_grow
Fügt dem Grid eine Zeile hinzu und setzt die Werte der einzelnen Zellen
Parameter
- a ("align") - Ausrichtung (c, l, j, r) des Textes in der Zelle; je nach Zelle a1, a2, a3...; default ist l
- c ("caption") - Text der Zelle, sofern cn nicht gesetzt; es können Pseudo-BB-Codes verwendet werden, siehe #pdf_multibb und Beispiel; je nach Zelle c1, c2, c3...; Funktionen werden ersetzt
- cl ("color") - Farbe des Textes in des Zelle; je nach Zele cl1, cl2, cl3...; default ist black
- cn ("caption no") - Text der Zelle; es können Pseudo-BB-Codes verwendet werden, siehe #pdf_multibb und Beispiel; je nach Zelle cn1, cn2, cn3...; Funktionen werden nicht (!) ersetzt
- cs ("ColSpan") - Gibt an, wie viele Spalten die Zelle überspannt; default 1, Funktionen werden ersetzt
- cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt
- h ("height") - Höhe der Zeile in mm; default ist der Wert h von #pdf_gdef, Funktionen werden ersetzt
- ml ("margin left") - Abstand in mm des Textes im Grid von der linken Linie des Gitters (Linienmitte); je nach Zelle ml1, ml2, ml3...; default ist der Wert ml von #pdf_gdef, Funktionen werden ersetzt
- mr ("margin right") - Abstand in mm des Textes im Grid von der rechten Linie des Gitters (Linienmitte); je nach Zelle mr1, mr2, mr3...; default ist der Wert mr von #pdf_gdef, Funktionen werden ersetzt
- mt ("margin top") - Abstand in mm des Textes im Grid von der oberen Linie des Gitters (Linienmitte); je nach Zelle mt1, mt2, mt3...; default ist der Wert mt von #pdf_gdef, Funktionen werden ersetzt
- s ("size") - Größe der Schriftart in Punkt; je nach Zelle s1, s2, s3...; default ist 10, Funktionen werden ersetzt
Beispiel
Siehe #pdf_gdef
#pdf_gend
Beendet ein Grid, indem es unten eine horizontale Linie zieht.
Parameter
- cnd ("condition") - Wenn Y, wird die Prozedur ausgeführt; default Y, Funktionen werden ersetzt
Beispiel
Siehe #pdf_gdef
$PDF_PAGE()
Gibt die aktuelle Seitenzahl zurück
Parameter
(keine)
Beispiel
#pdf_text a=r c="Seite $PDF_PAGE()"
$PDF_YMM()
Gibt die Y-Position in mm zurück
Parameter
(keine)
Beispiel
#pdf_line x1=30 x2=150 y1=$PDF_YMM() y2=$PDF_YMM() w=1 cl=red
Umfangreicheres Beispiel
Erläuterung im Video: PDFs erstellen (8:11)
#frm c="c_test_pdf" y=console #pdf_start fn=$DIR(doc)test.pdf #pdf_font b=Y #pdf_texto c=Login #pdf_texto c=Vorname l=80 #pdf_text c=Nachname l=120 #pdf_sety d=2 #pdf_font b=N #cmd #pdf_texto c=$DATA(dat,login) #cmd #pdf_texto c=$DATA(dat,firstname) l=80 #cmd #pdf_text c=$DATA(dat,lastname) l=120 #sql select login, firstname, lastname from user_user #sql_open n=dat er=1 #pdf_insertpic w=60 h=40 x=18 y=50 fn=i:\temp\bafbal_big.png #pdf_createbarcode typ=qr z=https://bafbal.de x=100 y=50 w=40 h=40 sx=800 #pdf_sety y=100 #text Dies ist ein Text mit mehreren Zeilen #text mit [b]fett[/b] und [i]kursiv[/i][a=r] #text auch mal eine Zeile rechtsbündig[a=l] #text [s=18]sowie größer und [cl=red]in Farbe. #pdf_multibb c=$TEXT(1) #pdf_stop o=Y #cout c="c_test_pdf executed"