A PML az eVIR rendszerben előforduló PDF dokumentumok leírására szolgál. Segítségével valósíthatóak meg az egyedi oldalak a programkód módosítása nélkül.
%WIP% Még nem implementált tag, későbbi bővítésnek fenntartva
<pdf>dokuentum</pdf>
<document sajatoldal> <table space L5% | C90% | L5%> | Oldal fejléc | <row> | <page_content> | <row> | Oldal lábléc | <page> bla bla bla.... <page sajatoldal> bla bla bla...
<page_content> tag-nek, ami arra szolgál, hogy a sajatoldal templatet használó oldalak a táblázat ezen cellájába lesznek betördelve<page> tagnál meg lehet mondani, hogy melyik document template-et használják. alapértelmezett az utolsónak deklarált, vagy az előző oldalon template-je
Tehát egy dokumentum template általános leírása egy teljes oldalt elfoglaló táblázat, amelynek valahol a közepén a <page_content> tag helyére lesz behelyettesítve a tartalom.
A template lehet például egy fejléces, lábléces forma, itt célszerű mindenféle margót és formázást megadni.
A valódi oldalak tartalma ebbe az dokumentum template formázásába lesz betördelve.
Amennyiben nem fér el egy oldalon a tartalom, úgy több oldalra lesz széttördelve, mindegyik oldal megkapva a dokumentum template környezetet.
általában Lásd a DOCUMENT tag-et
a dokumentum template ezen helyére lesz a tartalom behelyettesítve (ez célszerűen egy táblázatcella legyen).
<page doctemplate> ...
<page> akkor az utoljára definiált dokumentum templatet fogja használni.<page> is megadható, akár más dokumentum template-tel is. Ezeket egymás mögé fogja fűzni.Ide tartoznak a szövegek megjelenítéséért formázásáért felelős tag-ek
<h> helvetica/ariel <t> times <c> courier <z> ZapfDingbats <s> Symbol Ezekből az utolsó van életben <10> 10-es betűméret Ebből az utolsó van életben Módosító tag-ek <h> <t> <c> -hez, <z><s> implicit **// <b> bold </b> nem bold <i> italic </i> nem italic
<h> <t> <c> <z> <s> tag-ek. Az adott standard PDF font lesz a _kurzorfontja.<9> fontméret tag-ek. Beállítja a szöveg méretét az adott betűméretre.<b> </b> <i> </i> bold és italic be és kikapcsolása</i> </b> nem kötelező záró párok hanem önálló tag-ek.normal <b> bold <i> bolditalic </b> italic </i> normal%WIP% A táblázatok kezelése további fejlesztések tervét tartalmazza, alapfunkciók elérhetőek.
<table stilus L10% | L75% | R5% | R10% >
<head> {x} | {y}{z} | {a}[**]{a} | teteje <bottom> alja </head>
... | ... | ... | ... |
... | ... | ... | ...
<row> ... | ...
<row>
</table>
{d} <rows [ciklusid]> {f1} | {f2} ... </rows>
{d} <if choiceid f1> feltételes tartalom </if choiceid>
Értelmezés:
<table …: A tag nevespace, box, cbox %WIP%widespacespace: nincs vonal rajzolva a táblázathoz (jellemzően ez kell a <document> tag-en belül)box: hagyományos vonalas táblázat. (minden cella körül vonal rajzolódikcbox: olyan táblázat, ahol minden egyes cella egy legömbölyített téglalapnak látszik.<cbox_line> speciális tag, cbox stílusú táblázatban lehet vele cella széles vonalat húzni (szintaxishoz lásd <line> )L Balra, C Középre, R jobbra, %WIP% J justify10%: teljest táblázat szélességhez képest 10%.150: pontméretben| jel a leendő táblázat oszlopainak leírását szeparálja. Példánkban 4 oszlopa lesz a táblázatunknak, 10+75+5+10 (százalékos) bontásban<head>: Fej mezők megadása . Ez jelenleg nincs implementálva| táblázat celláinak határolója<row> használata elhagyható<row>: Új sor következik (opcionális)<rows [ciklusid]>: több sor generálása változó segítségével: lásd változók kezelése…<if choiceid var>: feltételes PML content a var kulcsú változó értéke szerint.<bottom>: Táblázatban is használható tag, ami az adott cellában a további írásokat alulra igazítja.<bottom> tag előtti részek a cella teteje felé lesznek igazítva, a mögötte levő részek a cella aljához lesznek igazítva.</table>: ez a tag kilép a táblázatos üzemmódból szövegsoros üzemmódba.<table> tag-eket egymás alatti más-más sorformátumú táblázatok építésére használni.A táblázatokban használt igazítások bárhol használhatóaak az igazító tag-ek használatával. Közös jellemzőjük, hogy egyúttal új sor kezdetét is jelentik, aminek az igazítását megadják.
Ez használható a táblázatok fejében megadott igazítások módosítására is, ami így csak az adott cellában érvényes, tehát a következő sorban/oszlopban már nem.
És használható táblázaton kívül folyó szövegek esetén is.
<left> balra igazít<right> jobbra igazít<center> középre igazít<justify> justify %WIP% egyelőre nincs implementálva, nem használható.
Táblázatok egymásba ágyazásának kisérleti módja a <sub sub_id> illetve </sub sub_id> tag-ek használatával lehetséges, aminek a hatására a sub tag-en belül újabb táblázat adható meg.
Ide olyan tag-ek tartoznak, amik valamit megjelenítenek.
bla bla bla <hspace 100> <vspace 50> <logo> <line 2 [d1 d2]>
bla bla bla: szabadon írt szövegek: a szavak tördelődnek igény szerint (sor végénél, cellákban)<hspace 100>: vízszintes helyfoglalás 100 pont szélességben (és aktuális fontméret magasságban)<vspace 50>: függőleges helyfoglalás 50 pont magasságban (0 szélességben)<logo>: Egy céges logo<line 2 [d1 d2]>: Egy vízszintes vonal a sor teljes szélességében adott (2) vonalvastagságban. d1 d2 opcionális szám, szaggatott vonal képzéséhez %WIP% <verbatim> </verbatim> párok:{ } | és whitespace karaktereket megbízhatóan, anélkül, hogy értelmezné a rendszer. funkció nélküli tagMezőnév:„{value}” helyett Mezőnév:„{value}”{kulcs}{alkulcs}{subalkulcs}
{kulcs2}
{kulcs3}
{listakulcs}[0]{rekordkulcs1}
{listakulcs}[0]{rekordkulcs2}
{listakulcs}[1]{rekordkulcs1}
{listakulcs}[1]{rekordkulcs2}
Az adatszerkezet megadott értékei kerülnek behelyettesítésre, ezek az konkrét pdf-et készítő modulonként más más struktúrát alkothatnak
{kulcs1}{kulcs2})<rows ciklusid> tag használatával is van lehetőség<if choiceid car> tag használatvával is van lehetőség
{listakulcs} <rows ciklusid> {rekordkulcs1} {rekordkulcs2} ... </rows ciklusid>
{listakulcs} adatszerkezettel megadott struktúra, ami egy listát reprezentál, tehát önmagában nem megjeleníthető a tartalma.<rows ciklusid> és </rows ciklusid> tag-ek közötti részt annyiszor iterálja, ahány eleme a listának van.ciklusid tetszőleges egyedi szöveg lehet. A teljes PML-ben egyedinek kell lennie. (Ennek a segítségével találja meg pontosan a /rows párját a tag-nek. rows ciklusok.Példák a szerződés adatszerkezetein:
1: Szerződéstételek:
{szerzodes_tetelek} <rows> {sorsz} : {cikkszam} {megnevezes} {calc_brutto} </rows>
2: Partner címei:
{ext_partner}{cim} <rows> {cimke} : {nev} {cim_irszam} {cim_varos} {cim_cim} </rows>
3: partner telefonszámai:
<table box R50% L50%> típus | szám {ext_partner}{telefon} <rows> <row> {tipusnev} | {szam} </rows>
{hierarchiakulcs} <if choiceid var> tetszőleges PML tartalom</if choiceid>
{hierarchiakulcs} adatszerkezettel megadott struktúra, aminek valamelyik közvetlen kulcsa egy logikainak értelmezhető változója, tehát önmagában nem megjeleníthető a tartalom.<if choiceid var> és </if choiceid> tag-ek közötti részt akkor jeleníti meg, ha a {var} értéke logikailag igaz.choiceid tetszőleges egyedi szöveg lehet. A teljes PML-ben egyedinek kell lennie. (Ennek a segítségével találja meg pontosan a /if párját a tag-nek.var az eddig kiszámolt változóhierarchiában már létező scalar logikai változó.var kulcs kiértékelése visszaállítja a hierarchiát a korábbi gyökér állapotába, mintha a {var} szintaxis került volna felhasználásra.Jelenleg ilyen használatára még nincs idézhető példa.
Egyes esetekben az adatszerkezet egyes komponensei hiányozhatnak. Ilyenkor azokat a változók, melyek nem biztos, hogy léteznek, speciális szintaxissal kell írni.
Ilyenkor változó kulcsai vagy indexei mögé egy ? (kérdőjel) karaktert kell írni. Az esetlegesen hiányzó komponenstől kezdve az összes további
kulcs vagy index esetén használni kell a ? -et.
Ennek hatására nem történik hibajelzés, ha az adatszerkezetből a változó hiányzik, és nem fog semmi megjelenni.
például a szerződés változói esetén
{ext_partner}{cim}{posta}[0?]{cim_cim?} Ha nincs postacím, akkor így lehet írni{ext_partner}{cim}{posta}[1?]{cim_cim?} Ha nincs második postacím, akkor így lehet írni{ext_partner}{telefon}[0?]{szam?} ha nincs telefonszam
[0]{cim_cim} rész helyett [0?]{cim_cim?} szerepel.
<page>) egy virtuális papírtekercsre kerül rá