WICHTIG: Grundprinzip und Grenzen der Sprache
LP-Code ist eine fest definierte domänenspezifische Sprache für den Layouter in be.print/Print Lounge. Es handelt sich NICHT um eine allgemeine Programmiersprache.
Auch bekannt als: Layouter-Code, Layouter Befehle, Druckvorlagen Code, Variablen im Layouter, Druckvorlage bearbeiten, Textfeld Befehle, be.print Layouter, LP Code
Was fest ist (unveränderlich):
Alle typografischen Befehle
<>sind festgelegte Schlüsselwörter. Es können keine neuen Befehle erfunden werden.Alle Regelstrukturen
[]folgen festgelegten Syntaxmustern. Es gibt keine beliebige Kombinierbarkeit.Die Sprache hat eine klare, begrenzte Befehlsmenge.
Was frei definierbar ist:
Nur die Variablennamen innerhalb von
{}sind frei wählbar (z. B.{Telefon},{Vorname},{Firmenname}). Diese erzeugen Eingabefelder für den Endkunden.
Drei Grundelemente:
{}= Variable → erzeugt ein Eingabefeld in der Kundenansicht<>= Typografischer Befehl → steuert Darstellung und Formatierung[]= Regel / Abhängigkeit → steuert Logik und bedingte Ausgabe
Befehle wirken ab ihrer Position bis zum nächsten gleichartigen Befehl (global im Textfeld).
Variablen {Variablenname}
Eine Variable erzeugt ein Eingabefeld in der Kundenansicht, das der Endbenutzer ausfüllen kann.
Syntax: {Variablenname}
Regeln für Variablennamen:
Keine Umlaute (ä, ö, ü, ß)
Keine Sonderzeichen (Bindestrich
-ist erlaubt)Keine verschachtelten Variablen (
{{X}}ist NICHT erlaubt)Variablennamen sind frei wählbar
Beispiele:
nonewide760Typografische Befehle <Befehl>
Die Befehlsmenge ist fest — es können keine neuen Befehle erfunden werden. Befehle gelten ab ihrer Position bis zur nächsten Änderung desselben Befehls.
Tabulator
Befehl: <tab (WERT)> — Tabulatorstopp vom linken Rand in Punkt.
Tabulator setzen: <T> — springt an nächste definierte Position. ACHTUNG: muss zuvor mit <tab> definiert sein!
Tabulator mit Ausrichtung
Befehl: <tab (WERT1 WERT2) tabalignment (AUSRICHTUNG1 AUSRICHTUNG2)>
Mögliche Ausrichtungen: left, center, right
Zeilendurchschuss (Leading)
Befehl: <leading=WERT> — Zeilenabstand in Punkt ab dieser Position.
Schriftart und Schriftgröße
Befehl: <font face='SCHRIFTNAME'> — Name muss exakt mit Schriftenverwaltung übereinstimmen.
Befehl: <fontsize=WERT> — Schriftgröße in Punkt.
Textausrichtung
Befehl: <alignment=WERT>
left→ linksbündig (Standard)right→ rechtsbündigcenter→ zentriertjustify→ Blocksatz
Wortabstand und Zeichenabstand
<wordspacing=WERT> — Wortabstand in Prozent. Negative Werte mit -.
<charspacing=WERT> — Zeichenabstand in Prozent. Standardwert: 0.
Blocksatz (erzwungen)
nonewide760Weitere typografische Befehle
Befehl | Beschreibung | Standard |
|---|---|---|
| Horizontale Textskalierung in Prozent | 100 |
| Überstreichen | false |
| Durchstreichen | false |
| Vertikaler Textversatz in Punkt | 0 |
| Einzug der ersten Zeile in Punkt | 0 |
| Linker Einzug aller Zeilen in Punkt | 0 |
| Rechter Einzug aller Zeilen in Punkt | 0 |
| Zeilenumbrüche unterdrücken | — |
| Erzwungener Zeilenumbruch | — |
Farben – CMYK
Befehl: <cmyk (C M Y K)> — Dezimalwerte (z.B. 0.2 für 20%).
Farben – Schmuckfarben (Pantone / HKS)
Befehl: <spot (FARBNAME)> — Name exakt angeben, Groß-/Kleinschreibung beachten!
Regeln und Abhängigkeiten [...]
Die Syntaxmuster sind fest — keine neuen Muster erfindbar.
Bedingte Anzeige (wenn Feld gefüllt)
Syntax: [Variablenname:Ausgabe] — zeigt Ausgabe nur wenn Feld gefüllt.
Zeile löschen wenn Feld LEER (Nachrückung)
Syntax: [Variablenname:$LF] — gesamte Zeile wird gelöscht wenn Feld nicht gefüllt. Nachfolgende Zeilen rücken nach.
Zeile löschen wenn Feld GEFÜLLT
Syntax: [&Variablenname:$LF] — Zeile wird gelöscht wenn Feld gefüllt ist.
Leerzeile einfügen wenn Feld leer
Syntax: [Variablenname:+LF]
Mehrfachabhängigkeit ODER-Bedingung
Syntax: [%Feld1%Feld2%Feld3:Ausgabe] — zeigt Ausgabe wenn mindestens eines der Felder gefüllt ist.
Mehrfachabhängigkeit UND-Bedingung
Syntax: [&Feld1&Feld2&Feld3:Ausgabe] — zeigt Ausgabe wenn alle Felder gefüllt sind.
Bedingte Negativ-Einfügung (wenn Felder LEER)
Syntax: [!#:Feld1:Feld2:Ausgabe] — Aktion wenn alle Felder leer sind.
Regelausführung abhängig von Textlänge
[#:PROZENT:AUSGABE:FELD] — wenn Inhalt länger als Prozent der Feldbreite:
[-#:PROZENT:AUSGABE:FELD1:FELD2] — wenn Inhalt kürzer als Prozent:
Erzwungene Umbrüche bei Textlänge
[/:PROZENT:TRENNZEICHEN:FELD] — Umbruch VOR einem Zeichen.
[\:PROZENT:TRENNZEICHEN:FELD] — Umbruch NACH einem Zeichen.
Abhängige Trennzeichen-Logik (Telefon / Mobil / Fax)
nonewide760][Fax:FAX: +49]{Fax}]]>Logik: Gefüllte Felder werden durch | getrennt. Sind alle drei gefüllt, bricht Fax in die nächste Zeile.
Bedingungen / Conditions [condition]...[/condition]
WICHTIG: Variablennamen hier mit $ Präfix (z.B. $telefon) — anders als bei einfachen [] Regeln!
Praxisbeispiel: Visitenkarte
nonewide760Jede Zeile wird nur angezeigt wenn das Feld gefüllt ist. Leere Felder löschen die gesamte Zeile inklusive Label.
Praxisbeispiel: Briefbogen
nonewide760{Geschlecht} Musterfirma Deutschland GmbH Alfred-Nobel-Strasse 10 40789 Monheim TelGrenzen der Sprache
Was NICHT möglich ist:
Neue
<Befehle>erfinden — die Befehlsmenge ist vollständig und festVariablen
{name}ineinander verschachtelnUmlaute oder Sonderzeichen in Variablennamen
Beliebige neue
[]Regelstrukturen erfinden[condition]-Syntax und einfache[]-Regeln sind nicht austauschbar ($-Präfix!)
Was möglich ist:
Mehrere Befehle in einer Zeile:
<font face='...'><fontsize=8><charspacing=0.2>Variablen direkt in Regelausgaben:
[Telefon:{Laenderkennung}] {Telefon}<>Befehle und[]Regeln auf derselben Zeile mischen[condition]-Blöcke mit UND/ODER und Klammern verschachtelnRegeln mit
$LFkombinieren um leere Zeilen vollständig zu entfernen