Makrá v OpenOffice.org – generátor Lorem Ipsum

Július Pastierik  /  11. 03. 2009, 00:00

Pripravujete grafický návrh dokumentu a potrebujete do neho vložiť náhodný text? Vytvorte si makro pre generovanie „Lorem Ipsum“ textu.

Každý, kto robí grafické návrhy dokumentu vie, že pri jeho tvorbe nie je vždy vhodné používať reálny text, lebo grafik sa „začíta“ a tým sa jeho pozornosť obráti iným smerom, ako je vlastný grafický návrh. Z tohto dôvodu sa používa pre vyplnenie textových oblastí tzv. náhodný text, známy pod názvom „Lorem Ipsum“ (jeho pôvod tu nebudeme teraz zdôrazňovať). V podstate ide o to, aby sa text podobal na normálny text, pričom však nemá dávať žiaden zmysel.

Pravdaže, v tomto smere jestvuje viacero generátorov náhodného textu a pre OpenOffice.org je k dispozícii rozšírenie, ktoré dokáže vložiť do dokumentu klasický latinský „Lorem Ipsum“. Žiaľ, toto rozšírenie má dve nevýhody – generuje text iba pri pripojení na internet (z portálu lipsum.com) a to iba latinský. Hlavne druhá nevýhoda môže byť dosť podstatná, pretože text s mäkčeňmi a dĺžňami vyzerá opticky úplne inak, ako text bez nich, pričom netreba zabúdať ani na potrebu takého odsadenia riadkov, aby nedochádzalo k prelínaniu znakov.

Návrh dialógového okna

Preto si pripravíme makro, ktoré dokáže vložiť zadefinovaný počet odsekov náhodného textu. Najprv je potrebné, aby sme si pripravili pracovné okno, kde zadáme počet odsekov vkladaného textu. Aby sme neochudobnili používateľov z Čiech a ani tých používateľov, ktorí potrebujú vkladať klasický latinský text, do tohto okna zadefinujeme aj výber jazyka.

Spustené makro pre generovanie Lorem Ipsum

Náhodné texty, ktoré sú v makre uvedené, boli vygenerované programom PSPad a s láskavým súhlasom jeho autora p. Jána Fialu mohli byť zverejnené pod licenciou GNU GPL. Slovenský náhodný text bol vytvorený „poslovenčením“ a vložením podobných slov podľa vzoru českého náhodného textu. Vlastné makro vyzerá takto:

sub Vloz_Lorem_Ipsum
dim kurzor, doc, dlg as object
dim nahodny_text(3,5) as string
dim i, j, Odsekov as integer
dim Jazyk as integer

 ' Slovenčina
 nahodny_text(1,1)="Lákanie vônehulás umýval rohľvekvý a jednovod liek rí s tým veď jedostie lyžčkou. I sobit býva čilo začerp zvesmezôl marabubej schvám v čít zak úmyvaď? Dostrhnov ne znaďloval rícipádnie. A rojedpovu ísť sudba zásobný zvestupné. Žvesmezil bicie Onová vlačiť sobit, robopre ka čnieky umývať umyvačkod zásou. Mať pa autor ním parta Tor smietkom, spoluzavéď v onohuby hudba. Rojskočiar čtie roštienkam u čuvalemi."
 nahodny_text(1,2)="Ísťkom úmyvaleka Bájen čuvaďiát je časťou dopary, čtiem večný zásoby vietrhnova. Pánova lušledné hafanaďop čítie, umraď a jakošil s prodený úmyvaldeň prestá hulákaj škojdi. Marajin poler znouvedieť o bubený, šťastý, ačkový čuva lušledné ísť slochyňsko? Mesíciť úmysel školný ječnie o Smut slochyňsko, ľahýnkami krazy je dychvá málobrazy. Bútny škou jedosté nie riekomi Tajakkoľvek."
 nahodny_text(1,3)="Ísťkom dobrajin škovat Dobožek Musí s psohafanaďop, roštenkám dychová Mať umraprošť úmysel. Marajin máš ísť úmyvať čuvaleda s večný hafan ísťkom sudbale obzor prestie! Žasíčnie dychvá záprostia ísť k spubený klehrátko, nestakkol Čarasný ačísť maľné tak. Trilógia po lásny rícipádnie bo čuvaď s lyžčkoď rojednova a ky jednovod. Záprostie nie je bický umraprošť. Je škoľvekvé dobzor šťastím o mésíčniekl čapicou. Stako Dobzor rojskočár nasy, nim ríklemôt z ček Depicou pytlačkou dostie nie."
 nahodny_text(1,4)="Autnie a nuchredos riadiť žiari umiesi, ním smuslušle ma úmyvadlem hudba. Roštínkuc Šreziv magneumín obzor, dechyňský zle roštie čo bolo ak úmyslnko umrapríke. A pretožeto smutomáš smietkom rojdi, zápresivý Hoľvekv krádnie rúk Bický prednie. Vlačít čuvaď čnie nám hudiečkou, á šťastím žiari bo ním ja? Úmyslušle rúk umýva nápne, lásna dokicčou hulák maráva, obolekno bájedpodl nač. Ťmusí drátobick obačný trilogie, dobýva starásny čnie vie bolo dobus. Ňasy riaciť!"
 nahodny_text(1,5)="Ňalem večný ku Ľakanie, dostičí dráčik Poľvekvnie, no umýva láka smeti. Raďložný božný malér rovtí, premať bájný Niesmetít rieci lento Dobzor obzor. Prehľvekv prodený sou poc a, povodlobi halekamat, boli nasy umyslupné. Tor napné dievčat vie Tanechreh, sa v ríky poci večný umraprošť vietkočin? Ražie a je Vény rieci akoto, božkať, vietorznova umiesí v pôda. A prednie čepraď Ňatkolek leboto zteplaleď k bičík žiari alehradi."
 ' Čeština
 nahodny_text(2,1)="Lákamí vůněhulás úmyval rohlivý jednovod lek bájedosto rojskočár Lák štím říky. Říklemít vlad Zvestupně čníky máš vlalehliv vese zlem boutný hudba Umínkama. Bubejmi Bický oba obal oba přestavý Měsí tomáš obzor přestavý Nedno. Dopicí úmyslunce krádní neumysl rojdi slušiv v škověný no přední boliv. Umyslupou k dopis dechvá málněžná bický an řící nesta v nám. Umraburdí jednovátc štím říky dráda ko."
 nahodny_text(2,2)="Smělý ško řícipádaj se dobou ští a Ky ří parcipádn štím. Dechvá pytlačkou slupodpod Lákamí burdíčkov jít říkem a polivé prozený říklemít. Štínkucen vá ky ško božínům bájedosto smělý ří burdíčkov a ční. V Tor mělý bubejmi nasy Buben buby vese lehýnkamí sudbale je. Umělý ří aložek hafanadop smuslušle větrhnova klad ční onověď dráčeprap školiv. Dobrajin sná dechyňský roštínkam nim málně rohlivý Bický rojednova."
 nahodny_text(2,3)="Umraburdí umělý kajední taneumra září hudíčkový umí básná taneumra uměsí poci. Sou smutomáš roštínkuc ky hudbalo zlem poda z bolo vůně čajenný. Obývá hole ční klad umělý roštínkam lehlý holek jednovod říkem večníky. Mělý štínkucen čníky řící večný rozcuce věný úmyvat oba jít váto. Zlemí Dobožek jít umělý smeti máler kler krádní říkem sobit poskoubej. Kler."
 nahodny_text(2,4)="Slupodpod bolo nuchváled z umrajedpo úmyvad čuvaleda říc máler obusí záříkemi. Hou no ne dostrhnov ně Matkolek Tajakkoli škověný Dobožek ční bájen. Řícipádní rojedpovu čajenný mený Podlou anadobra oba poskoubej pa buby Tor. Hou dostrhnov Umyslupos radložný ne zle posko ka hole onouby úmyvalemi. Štím hafan zako paráčepra parcipádn mělý říkem Obsely nasy Lákamí boutný."
 nahodny_text(2,5)="Lžičkamí Bicí ky schvám poskoubej kolobicí depresiv rohlínům nim čuva Věný. Čin smítkem umrapříke boutný dechyňsko slupodpod bubejmi obý zen hal autný. Boutný úmyvatkov nesta dopis ří bájedpodl starásný Dráto přiroje sůl Obrajinec. Nedno umělý přestavý umí v bývá načít dopis A Umírně burdíčkov. Nalem podtrojdi řík říkem smítkem hliv pra čin vůně boliv uměsí. Kraburdí sudba oba ka mělý nestakkol umraje slušiv úmyval přestavý úmyvalem. Hafan štím Umírně."
 ' Latinčina
 nahodny_text(3,1)="Lorem ipsum dolor sit amet consectetuer mauris sollicitudin eros laoreet turpis. Tellus elit condimentum elit justo ridiculus convallis urna gravida In fames. Lobortis Sed neque felis Lorem ut consectetuer nibh vitae libero a. Tellus dolor augue gravida sodales neque interdum cursus id ac amet. Id tellus Nulla dui Proin condimentum orci condimentum quis congue dui. Mauris diam justo consequat ac velit aliquam Vivamus metus."
 nahodny_text(3,2)="Molestie vitae In Sed nisl consectetuer a tempus Nulla fringilla ligula. Leo velit nulla ut convallis Sed laoreet morbi sed laoreet urna. Quis Ut congue tincidunt est gravida commodo quis a pede interdum. Sit In magna felis wisi In congue enim pede Vivamus commodo. Nisl dolor ut lacinia eget in velit turpis Curabitur est orci. Vel Suspendisse."
 nahodny_text(3,3)="Ac at interdum pede quis Nam pulvinar Vestibulum In Mauris orci. A convallis Curabitur dui cursus Vestibulum pellentesque Donec hendrerit amet tortor. Et at vel Nulla porta Vivamus In consequat nibh consequat auctor. Morbi amet habitasse quam augue Ut Phasellus nulla pellentesque Morbi Maecenas. Justo dis condimentum ut Praesent libero malesuada."
 nahodny_text(3,4)="In sapien et ac leo ac et sem eget at ac. Eget adipiscing orci Vestibulum massa massa Vestibulum commodo ipsum sed libero. Urna ante Vestibulum odio Pellentesque Nam egestas eu sagittis elit urna. Est augue ut Vestibulum leo risus pede ut ut lacus nascetur. Mauris laoreet justo Nam a tincidunt."
 nahodny_text(3,5)="Sit tristique nascetur accumsan lobortis leo vitae et vel Sed laoreet. Vivamus commodo dolor mauris id nibh tortor vitae pellentesque id congue. Pellentesque ac cursus pellentesque leo aliquam et a tincidunt massa ipsum. Porttitor ligula libero laoreet Vestibulum Donec interdum justo Curabitur mauris libero. Ut elit nulla Quisque semper tempus Curabitur ut ipsum feugiat nisl. Nibh pretium mattis sodales et pellentesque massa quis adipiscing Vestibulum amet. Id nulla habitasse."

 DialogLibraries.LoadLibrary("JP_Lorem_Ipsum")
 dlg=CreateUnoDialog(DialogLibraries.JP_Lorem_Ipsum.Dialog_LoremIpsum)
 
 ' Počiatočný jazyk vo výbere je slovenčina
 dlg.model.OP1.State=1
 dlg.model.OP2.State=0
 dlg.model.OP3.State=0
 
 ' Počet odsekov prednastavíme na 1
 dlg.model.PocetOdsekov.text="1"
 
 if dlg.Execute()=1 then
  ' Ak bolo stlačené tlačidlo "OK"
  Odsekov=val(dlg.model.PocetOdsekov.text) ' Počet vkladaných odsekov
  Jazyk=0
  if dlg.model.OP1.State=1 then Jazyk=1 ' Slovenčina
  if dlg.model.OP2.State=1 then Jazyk=2 ' Čeština
  if dlg.model.OP3.State=1 then Jazyk=3 ' Latinčina
  
  if jazyk<>0 then
   ' Ak je vybraný jazyk
   doc=ThisComponent.CurrentController
   kurzor=doc.getViewCursor() ' Aktuálna pozícia kurzora
   kurzor.collapseToEnd() ' Odznačenie textu a skok na jeho koniec
   j=0 ' Počítadlo indexu náhodního textu
   for i=1 to Odsekov ' Pre všetky odseky
    j=j+1 ' Posun na ďalší náhodný text
    if j>5 then j=1 ' Máme 5 vzoriek náhodného textu
    kurzor.SetString(nahodny_text(Jazyk,j)) ' Vlastné vloženie náhodného textu
    kurzor.collapseToEnd() ' Skok na koniec textu
    if i<Odsekov then kurzor.SetString(chr(&H0D)) ' Vloženie CR na konci odseku
    kurzor.collapseToEnd()
   next i
  endif
 endif
 dlg.dispose()
end sub

Vygenerovaný text v textovom dokumente

 

Neprehliadnite: