Nalepnice

Skriptovi za nalepnice nisu obicni skriptovi - oni se sastoje iz niza stringova od kojih se prave nalepnice. Na primer, taj skript može biti ovakav:

"Prvi red " 
"Drugi r. " 
"Abeceda " 

Program u zavisnosti od izbora broja kolona i slicno, “lepi” ovakve stringove i pravi nesto ovako (na primer, kad u redu ima tri kolone):

Prvi red    Prvi red       Prvi red 
Drugi r.     Drugi r.       Drugi r. 
Abeceda  Abeceda    Abeceda

Vrlo bitna stavka ovde je da svaki red treba da bude iste sirine, kako bi se nalepnice poklapale po vertikali. Naravno, ovi stringovi se mogu praviti i od izraza:

PadR ("NAZIV: " + a_naziv, 25) 
PadR("Cena: " + Tc(_cen), 50)

PadR se koristi kako bi odsekao kraj stringa na tacno 25 chr. Ovo vazi kad u skriptu nema kontrolnih karaktera za formatiranje. Ako se koristi AppPrint za stampu, onda se mogu koristiti svi kontrolni karakteri:

"<LS12><F15><B>" + PadR("[IFRA: " + Artikli->a_sif, 23) + "</B>" 
"<F11.3>" + PadR("NAZIV: " + Artikli->a_naziv, 30) 
"<F11.3>" + PadR("PROIZ: " + Proiz(Proiz(Artikli->a_pro),"N"), 30) 

Ovde se prvi red ispisuje bold i velikim fontom (15), a drugi i treci fontom velicine 11.3. VEOMA BITNO: da bi se verikale sad poklopile, treba podesiti broj karaktera u zavisnosti od velicine. Na primer, za prvi red se stampa 23 chr, a za ostale po 30 chr, jer su slova sitnija! Pri tome paziti da u racunicu NE ulaze kontrolne sekvence. Izbegavajte prazne redove, bolje stavite u takve redove prazne stringove.

Problem koji se javlja jeste da je ispis malo pomeren na gore/dole, sto se sa svakom novom nalepnicom dalje pogorsava. Resenje je kod <LSxx> koji definise dodatni spacing, pa se ceo ispis “rasteze” ili skuplja, dok ne dobijete tacno ono sto hocete. Ovde bi bolji bio tag <LHxx>, ali on iz nekog razloga zabrlja ispis po sirini, pa se ne moze upotrebljavati.

Najbolja varijanta jeste da se napravi novi driver AppStick koji je standardni AppPrint, samo što treba povećati broj redova po strani do potrebnog (broj kolona NIJE potrebno menjati!) i izmeniti sledeće sekvence:

NORMAL......: <<N C607><<F7><<LS3.1> 
RESET.......: <<N C607> 

Po potrebi treba modifikovati spacing LS, kako bi se ispis uklopio u stranu. TAkodje, string za inicijalizaciju treba da bude AST. U ovom slucaju, iz skripta treba izbaciti sekvencu za spacing. Na primer:

"<B>" + PadR("NAZIV.." + "</B>" + Artikli->a_naziv,45) 
"<B>" + PadR("PROIZV." + "</B>" + Proiz(Proiz(Artikli->a_pro),"N"),45) 
"<B>" + PadR("UVOZNIK" + "</B>" + m_uvo,45) 
"<B>" + PadR("ZEM.POR" + "</B>" + m_zem,45) 
PadR("", 45) 
PadR("", 45)

Procedura je sad sledeca: prvo menjajte gornju marginu dok prvi red nalepnica ne “legne” gde treba. Onda povecavate levu marginu dok ne poklopite lepo pocetak. Zatim varirajte u skriptu duzinu reda (45) dok sve nalepnice u tom redu ne legnu na svoju poziciju. Posle toga dodajte prazne redove u skript (PadR()) i menjajte parametar <LS> u drajveru dok se ne poklope kako treba i donje nalepnice. Izmenite broj redova po strani kako bi se strana presekla na dobrom mestu.

NAPOMENA: App presek strane odredjuje prostim brojanjem redova (jer ne uzima u obzir velicinu slova, prored i sl). Printing/Dprint uzimaju podatak o duzini strane iz Win drajvera, pa tacno odredjuju prelom i to NE mora da se slaze sa prelomom iz App-a.

Nove verzije App-a imaju sistemske drajvere AppStick AxB i odgovarajuće skriptove o_nAxB.sys koji su već spremljeni za štampu za odgovarajući forrmat nalepnica.

Imati u vidu da neki štampači mogu da štampaju jedan red manje ili više na početku, pa u skladu sa tim treba korigovati gornju marginu.