LP-Code – Technische Referenz Inlineoptionen und Layouter-Befehle

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:

nonewide760

Typografische 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!

nonewide760Telefon:+49{Telefonnummer}]]>

Tabulator mit Ausrichtung

Befehl: <tab (WERT1 WERT2) tabalignment (AUSRICHTUNG1 AUSRICHTUNG2)>

Mögliche Ausrichtungen: left, center, right

nonewide760 Telefon:{Artikel}{Text}{Preis} Tel.:{Tel-VW} {Tel-HW} - {Tel-DW} Fax:{Fax-VW} {Fax-HW} - {Fax-DW} Mobil:0{Mob-LK} {Mob-VW}[Mob-VW:$LF]]]>

Zeilendurchschuss (Leading)

Befehl: <leading=WERT> — Zeilenabstand in Punkt ab dieser Position.

nonewide760Strasse 10Tel +49 123 456]]>

Schriftart und Schriftgröße

Befehl: <font face='SCHRIFTNAME'> — Name muss exakt mit Schriftenverwaltung übereinstimmen.

Befehl: <fontsize=WERT> — Schriftgröße in Punkt.

nonewide760Muster GmbH Adresse Tel +49 123 456]]>

Textausrichtung

Befehl: <alignment=WERT>

  • left → linksbündig (Standard)

  • right → rechtsbündig

  • center → zentriert

  • justify → Blocksatz

Wortabstand und Zeichenabstand

<wordspacing=WERT> — Wortabstand in Prozent. Negative Werte mit -.

<charspacing=WERT> — Zeichenabstand in Prozent. Standardwert: 0.

nonewide760Fax{Fax}[Fax:$LF] {Berufsbezeichnung}]]>

Blocksatz (erzwungen)

nonewide760]]>

Weitere typografische Befehle

Befehl

Beschreibung

Standard

<horizscaling=WERT>

Horizontale Textskalierung in Prozent

100

<overline=true/false>

Überstreichen

false

<strikeout=true/false>

Durchstreichen

false

<textrise=WERT>

Vertikaler Textversatz in Punkt

0

<parindent=WERT>

Einzug der ersten Zeile in Punkt

0

<leftindent=WERT>

Linker Einzug aller Zeilen in Punkt

0

<rightindent=WERT>

Rechter Einzug aller Zeilen in Punkt

0

<avoidbreak=true>

Zeilenumbrüche unterdrücken

<LF>

Erzwungener Zeilenumbruch

Farben – CMYK

Befehl: <cmyk (C M Y K)> — Dezimalwerte (z.B. 0.2 für 20%).

nonewide760 (= 0% C, 20% M, 0% Y, 100% K)]]>

Farben – Schmuckfarben (Pantone / HKS)

Befehl: <spot (FARBNAME)> — Name exakt angeben, Groß-/Kleinschreibung beachten!

nonewide760 ]]>

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.

nonewide760

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.

nonewide760

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]

nonewide760

Mehrfachabhängigkeit ODER-Bedingung

Syntax: [%Feld1%Feld2%Feld3:Ausgabe] — zeigt Ausgabe wenn mindestens eines der Felder gefüllt ist.

nonewide760

Mehrfachabhängigkeit UND-Bedingung

Syntax: [&Feld1&Feld2&Feld3:Ausgabe] — zeigt Ausgabe wenn alle Felder gefüllt sind.

nonewide760]]]>

Bedingte Negativ-Einfügung (wenn Felder LEER)

Syntax: [!#:Feld1:Feld2:Ausgabe] — Aktion wenn alle Felder leer sind.

nonewide760

Regelausführung abhängig von Textlänge

[#:PROZENT:AUSGABE:FELD] — wenn Inhalt länger als Prozent der Feldbreite:

nonewide760:E-Mail]]]>

[-#:PROZENT:AUSGABE:FELD1:FELD2] — wenn Inhalt kürzer als Prozent:

nonewide760

Erzwungene Umbrüche bei Textlänge

[/:PROZENT:TRENNZEICHEN:FELD] — Umbruch VOR einem Zeichen.

[\:PROZENT:TRENNZEICHEN:FELD] — Umbruch NACH einem Zeichen.

nonewide760[/:80:@:E-Mail]{E-Mail}[E-Mail:$LF]]]>

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!

nonewide760

Praxisbeispiel: Visitenkarte

nonewide760{Position} Privat {Privat Strasse} · {Privat PLZ} {Privat Ort} · Germany [Privat Telefon:Tel][Privat Telefon:{Laenderkennung Privat}] {Privat Telefon}[Privat Telefon:$LF] [Privat Telefax:Fax][Privat Telefax:{Laenderkennung Privat}] {Privat Telefax}[Privat Telefax:$LF] [Privat Mobil:Mobil][Privat Mobil:{Laenderkennung Privat Mobil}]{Privat Mobil}[Privat Mobil:$LF] [Privat E-Mail:E-Mail:]{Privat E-Mail}[Privat E-Mail:$LF]]]>

Jede 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 Tel+49 2173 48 4848 Fax+49 2173 48 4841 E-Mail{E-Mail} [Privat Ort:Privat:] [Privat Strasse:]{Privat Strasse} [Privat PLZ:]{Privat PLZ} {Privat Ort} [Privat Telefon:Tel][Privat Telefon:{Laenderkennung Privat}] {Privat Telefon}[Privat Telefon:$LF] [Privat Telefax:Fax][Privat Telefax:{Laenderkennung Privat}] {Privat Telefax}[Privat Telefax:$LF] [Privat Mobil:Mobil][Privat Mobil:{Laenderkennung Privat Mobil}] {Privat Mobil}[Privat Mobil:$LF] [Privat E-Mail:E-Mail:]{Privat E-Mail}[Privat E-Mail:$LF]]]>

Grenzen der Sprache

Was NICHT möglich ist:

  • Neue <Befehle> erfinden — die Befehlsmenge ist vollständig und fest

  • Variablen {name} ineinander verschachteln

  • Umlaute 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 verschachteln

  • Regeln mit $LF kombinieren um leere Zeilen vollständig zu entfernen