Pri odovzdávaní podkladov na ďalšie spracovanie (hlavne v DTP programoch) častokrát potrebujete, aby ste používali znakové štýly pre šikmé a tučné písmo a, samozrejme, príslušné písmo mali nimi aj označené. Pretože počas vlastného písania sa tieto štýly aplikujú pomerne pracne (stačí si predstaviť, že okrem zmeny písma musíte zmeniť aj štýl), je výhodnejšie, ak si na tieto účely pripravíte makro, ktoré to urobí za vás na „jeden klik“.
Pri vlastnej definícii štýlov musíme, samozrejme, ošetriť prípad, ak existujú, čím umožníme makro spustiť v jednom a tom istom dokumente viackrát. Pre jednoznačnosť a jednoduchosť vytvoríme tri štýly – „Kurziva“, „Tucne“ a „TucnaKurziva“.
Pri vlastnom označovaní (toto, samozrejme, platí aj pre prípadné manuálne označovanie) budeme hľadať písmo, ktoré jednak spĺňa podmienku, že je tučné alebo šikmé a zároveň toto písmo nebude mať nastavený znakový štýl. Týmto ošetríme prípady, keď si ho v dokumente nastavíte manuálne. Z tejto podmienky však zároveň vyplýva postupnosť hľadania – najprv musíme vyhľadať písmo, ktoré je tučné a šikmé zároveň, aby sme mu priradili správny štýl a až potom samostatné šikmé a samostatné tučné písmo (tu už na poradí nezáleží).
To by pre uvedenie problematiky stačilo a preto teraz už môžeme uviesť vlastný zdrojový kód makier. Podotýkame, že pre spustenie stačí napokon volať procedúru „Nastav_Styly“.
dim sPopis$, sNadpis$
REM Funkcia pre zistenie jazyka OO.o
function Jazyk_OOo as string
dim oConfigProvider, oMasterKey
dim oNodePath()
oNodePath=array(Vytvor_Property("nodepath", "org.openoffice.Setup/L10N/"))
oConfigProvider=createUnoService("com.sun.star.configuration.ConfigurationProvider")
oMasterKey=oConfigProvider.createInstanceWithArguments("com.sun.star.configuration.ConfigurationAccess", oNodePath())
Jazyk_OOo=left(oMasterKey.getByName("ooLocale"),2) '"sk", "cs", ...
end function
REM Procedúra pre načítanie vypisovaných textov
Sub Set_jazyk_textov (sNazov$)
dim sRiadok$, sPremenna$, sDefinicia$
dim rovna%
dim sf, inStream, inFile ' Pre čítanie z lokalizačného súboru
on error resume next
if fileexists(sNazov) then ' Ak lokalizačný súbor existuje, tak načítame definície do premenných
sf=createUnoService("com.sun.star.ucb.SimpleFileAccess")
inStream=sf.openFileRead(sNazov) ' Otvorenie definičného súboru
inFile=createUnoService("com.sun.star.io.TextInputStream")
inFile.InputStream=inStream
inFile.Encoding="UTF-8" ' lokalizačný súbor musí byť v UTF-8, inak nebude dobrá diakritika
Do While not inFile.IsEOF
sRiadok=inFile.readLine ' Načítanie riadku zo súboru
rovna=instr(sRiadok,"=")
if rovna<>0 then
sPremenna=trim(left(sRiadok,rovna-1)) ' Budeme ignorovať medzery
sDefinicia=trim(right(sRiadok,len(sRiadok)-rovna))
select case sPremenna
case "popis"
sPopis=sDefinicia
case "nadpis"
sNadpis=sDefinicia
end select
end if
loop
' Zatvorenie definičného súboru
inStream.closeInput
inFile.closeInput
end if
end sub
REM Vytvorenie "PropertyValue" štruktúry
function Vytvor_Property(sNazov$, Hodnota) as com.sun.star.beans.PropertyValue
dim oPropertyValue as New com.sun.star.beans.PropertyValue
oPropertyValue.Name=sNazov
oPropertyValue.Value=Hodnota
Vytvor_Property()=oPropertyValue
end function
REM Vytvorenie znakových štýlov (ak neexistujú)
sub Vytvor_Znakovy_Styl(sNazov_Stylu$ as string, oParametre())
dim i%
dim oSkupinyStylov, oStyl, oZnakoveStyly
oSkupinyStylov=ThisComponent.StyleFamilies ' Skupiny štýlov
oZnakoveStyly=oSkupinyStylov.getByName("CharacterStyles") ' Znakové štýly
if oZnakoveStyly.HasByName(sNazov_Stylu) then exit sub ' Štýl existuje – procedúru ukončíme
oStyl=ThisComponent.createInstance("com.sun.star.style.CharacterStyle")
for i=LBound(oParametre) to UBound(oParametre) ' Pre všetky nastavované parametre
if oParametre(i).Name = "ParentStyle" then ' Ak nastavujeme rodičovský štýl
if oZnakoveStyly.HasByName(oParametre(i).Value) then ' Test, či rodičovský štýl existuje
oStyl.ParentStyle=oParametre(i).Value ' Názov rodičovského štýlu
end if
else
oStyl.setPropertyValue(oParametre(i).Name, oParametre(i).Value) ' Nastavenie ostatných parametrov
end if
next
oZnakoveStyly.insertByName(sNazov_Stylu, oStyl) ' Vloženie štýlu do zoznamu štýlov
end sub
REM Definícia a vytvorenie znakových štýlov
sub Definuj_Znakove_Styly
dim oParametre()
REM Šikmé písmo
oParametre()=array(Vytvor_Property("CharWeight", com.sun.star.awt.FontWeight.NORMAL), _
Vytvor_Property("CharPosture", com.sun.star.awt.FontSlant.ITALIC))
Vytvor_Znakovy_Styl("Kurziva", oParametre()) ' Vlastné vytvorenie znakového štýlu "Kurziva"
REM Tučné písmo
oParametre()=array(Vytvor_Property("CharWeight", com.sun.star.awt.FontWeight.BOLD), _
Vytvor_Property("CharPosture", com.sun.star.awt.FontSlant.NONE))
Vytvor_Znakovy_Styl("Tucne", oParametre()) ' Vlastné vytvorenie znakového štýlu "Tucne"
REM Tučné šikmé písmo
oParametre()=array(Vytvor_Property("CharPosture", com.sun.star.awt.FontSlant.ITALIC), _
Vytvor_Property("CharWeight", com.sun.star.awt.FontWeight.BOLD))
Vytvor_Znakovy_Styl("TucnaKurziva", oParametre()) ' Vlastné vytvorenie znakového štýlu "TucnaKurziva"
end sub
REM Vyhľadanie šikmého a tučného písma a nastavenie príslušného štýlu
Sub Nastav_Styly
Dim oDokument, oHladaj, oNasiel
Dim oAtributy()
dim sSubor$, kde$
Definuj_Znakove_Styly ' Vytvorenie znakových štýlov pre šikmé, tučné a tučné šikmé písmo
oDokument=ThisComponent
oHladaj=oDokument.createReplaceDescriptor
oHladaj.SearchRegularExpression=True ' Hľadáme pomocou regulárnych výrazov
oHladaj.SearchString = ".*" ' Regulárny výraz pre všetky znaky
oHladaj.searchStyles=True ' Hľadáme štýly
' Musíme hľadať najprv tučné šikmé písmo, inak by sme mu priradili iný štýl (šikmé/tučné – podľa toho, čo by sme hľadali skôr)
' Hľadáme tučné šikmé písmo
Atributy()=array(Vytvor_Property("CharWeight", com.sun.star.awt.FontWeight.BOLD), _
Vytvor_Property("CharPosture", com.sun.star.awt.FontSlant.ITALIC))
oHladaj.SetSearchAttributes(Atributy())
oNasiel=oDokument.findFirst(oHladaj) ' Hľadáme od prvého výskytu tučného šikmého písma od začiatku dokumentu
Do While NOT isNull(oNasiel) ' Pokiaľ sme niečo našli
if oNasiel.CharStyleName="" then oNasiel.CharStyleName="TucnaKurziva" ' Ak nie je nastavený žiaden znakový štýl, nastavíme štýl "TucnaKurziva"
oNasiel=oDokument.findNext( oNasiel.getEnd(), oHladaj) ' Hľadanie ďalšieho výskytu tučného šikmého písma
Loop
' Hľadáme šikmé písmo
Atributy()=array(Vytvor_Property("CharPosture", com.sun.star.awt.FontSlant.ITALIC))
oHladaj.SetSearchAttributes(Atributy())
oNasiel=oDokument.findFirst(oHladaj) ' Hľadáme od prvého výskytu šikmého písma od začiatku dokumentu
Do While NOT isNull(oNasiel) ' Pokiaľ sme niečo našli
if oNasiel.CharStyleName="" then oNasiel.CharStyleName="Kurziva" ' Ak nie je nastavený žiaden znakový štýl, nastavíme štýl "Kurziva"
oNasiel=oDokument.findNext( oNasiel.getEnd(), oHladaj) ' Hľadanie ďalšieho výskytu šikmého písma
Loop
' Hľadáme kolmé tučné písmo
Atributy()=array(Vytvor_Property("CharWeight", com.sun.star.awt.FontWeight.BOLD))
oHladaj.SetSearchAttributes(Atributy())
oNasiel=oDokument.findFirst(oHladaj) ' Hľadáme od prvého výskytu tučného písma od začiatku dokumentu
Do While NOT isNull(oNasiel) ' Pokiaľ sme niečo našli
if oNasiel.CharStyleName="" then oNasiel.CharStyleName="Tucne" ' Ak nie je nastavený žiaden znakový štýl, nastavíme štýl "Tucne"
oNasiel=oDokument.findNext( oNasiel.getEnd(), oHladaj) ' Hľadanie ďalšieho výskytu tučného písma
Loop
sPopis="Znakové štýly nastavené."
sNadpis="Nastavenie štýlov kurzíva, tučné"
kde=basiclibraries.getLibraryLinkURL("JP_kurziva_tucne") ' Adresár, kde je rozšírenie nainštalované
sSubor=left(kde,len(kde)-10)+"jp_kurziva_tucne_"+Jazyk_OOo+".txt" ' Súbor s jazykovou lokalizáciou
Set_jazyk_textov(sSubor)
msgbox (sPopis,0,sNadpis)
End Sub
Makrá v OpenOffice.org – definícia a nastavenie znakových štýlov
Novinky a inšpirácie
Z nášho blogu
Prečítajte si novinky, inšpirácie a dôležité informácie zo sveta webhostingu a technológií.
Oznamy
Bezpečnostné aktualizácie PHP: Chráňte svoj web pred hrozbami
Vývojársky tím PHP vydal dôležité bezpečnostné záplaty pre všetky oficiálne podporované verzie PHP 8. Na našich serveroch sme nezaváhali ...
Oznamy
Gmail končí s funkciou „Odoslať ako“ pre cudzie e-mailové adresy. Čo to znamená pre vás?
Google oznámil, že v januári 2027 zruší v Gmaile funkciu „Odoslať ako“ (Send as) pre e-mailové adresy od iných poskytovateľov. Ak ste si ...
Oznamy
Večerná „prestávka“ pre server VIP033
Neustále pracujeme na tom, aby vaše weby bežali hladko, rýchlo a bezpečne. Technológie idú míľovými krokmi vpred a my v Inet.sk s nimi dr...
Novinky
Novinky na Inet.sk (09 / 2026)
Posledné mesiace sme v Inet.sk nevenovali len stabilite serverov, ale najmä počúvaniu vašich reálnych skúseností z každodennej praxe. Výs...
Podpora klientom
Máte ďalšie otázky?
Nezúfajte, pripravili sme pre Vás jednoduché odpovede na najdôležitejšie otázky, ktoré od našich klientov dostávame.
Naše výhody
Prečo si nás vybrať?
Našim klientom ponúkame až 30-dňovú záruku vrátenia peňazí.
Slovenská
firma
Nepatríme pod žiadnu nadnárodnú spoločnosť, sme malá rodinná firma.
Dlhoročné
skúsenosti
Na slovenskom trhu pôsobíme už viac ako 20 rokov, sme overená značka.
Spokojní
zákazníci
Naši zákazníci sú ako naša rodina, preto nám verí už viac ako 1250 klientov.
Maximálna
bezpečnosť
Chránime Vás pred útokmi i SPAMom. U nás sú Vaše dáta v bezpečí.
Ochotná
podpora
Zakladáme si na individuálnom prístupe, preto Vám vždy radi pomôžeme.
Férová
cena
Cena pri obnove je rovnaká ako pri objednávke. Nezdražujeme po prvom roku a bez skrytých poplatkov.
Pravidelné
zálohovanie
Vaše dáta zálohujeme každý deň, dostupné sú aj zálohy z pred niekoľkých mesiacov.
Prehľadný
Admin Panel
Máme rýchly a prehľadný Admin Panel, ktorý zvládne používať naozaj každý.
Správa
používateľov
Spravujte svoje projekty bez akýchkoľvek obáv s kolegami alebo externými partnermi.
Vernostné
zľavy
Verní klienti u nás automaticky získavajú 15 % zľavu na každú ďalšiu objednávku.
Bez
obmedzení
Neobmedzujeme počet databáz, e-mailov, ftp a ani prenos dát.
WordPress
na 1 klik
Nainštalujte si obľúbené redakčné systémy rýchlo a jednoducho.
Referencie
Spokojní zákazníci
Pozrite sa, čo o nás povedali naši klienti. Neváhajte a pridajte sa k nám ešte dnes.
"S firmou Inet.sk sme veľmi spokojní, vrelo ju odporúčam. Profesionálny a ústretový prístup pána Slančíka, seriózne jednanie a rýchla implementácia našich požiadaviek, 100% spokojnosť. Všetky služby od webhostingu cez výrobu stránky až po detailný servis počas chodu tu máme pod jednou strechou."
Ing. Jozef Brázdik
BB motors, s.r.o.
"Mal som možnosť vyskúšať rôzne webhostingy, ale nakoniec som sa rozhodol všetky moje stránky zveriť Inet.sk. Webhosting zvláda jednoduché, ale aj veľmi náročné stránky a magazíny. Podporuje najnovšie technológie a má veľmi prehľadnú a jednoduchú správu domén. Komunikácia s technickou podporou Inet.sk je vynikajúca a za mňa môžem túto firmu iba doporučiť."
Richard Horný
Final Vision, s. r. o.
"Pri migrácii našej stránky sme sa stretli s maximálnou podporou a profesionálnym prístupom. Inet.sk nám nielen pomohol celý proces zvládnuť bez komplikácií, ale tiež poskytol odborné poradenstvo, ktoré zabezpečilo hladký prechod. Ich hosting je rýchly a najmä stabilný, rovnako oceňujeme aj ich priateľskú komunikáciu."
Peter Kasan
Svet-mineralov.sk
"Proces migrácie bol zrealizovaný hladko a efektívne, pričom všetky kroky boli vykonané precízne a bez výpadkov. Inet.sk poskytol spoľahlivé a profesionálne riešenie, ktoré zjednodušilo správu domén a optimalizovalo ich prevádzku. Oceňujeme ich stabilnú infraštruktúru a kvalitné hostingové služby."
Lukáš Kazík
LKStudio.sk
"Mám u Inet.sk zaparkovanú jednu doménu a mám pocit, že tam zaparkujem aj všetky ostatné domény, ktoré mám, pretože po dlhoročných skúsenostiach s rôznymi inými firmami, mi Vaše služby vyhovujú zatiaľ najviac. Odporúčam kvôli dobrej konektivite a primeranej cene + rýchly support."
Ladislav Kéry
vypnutieimobilizera.sk
"Po rokoch skúšania dodávateľov na poli webhostingových služieb sme našli svojho spoľahlivého a stabilného partnera tu. Stabilita, ochota, znalosť, dobrá cena a rýchle vyriešenie prípadných problémov - to je pre nás Inet.sk."
Jaroslav Mráz
Allycom, s.r.o.
"Máme u Vás doménu a hosting. So službami sme nadmieru spokojní. Z Vašej strany máme pozitívne skúsenosti ako sú: rýchle jednanie, znalosť v problematike, ochota pomôcť, stabilita, zavádzanie noviniek, ak ich klient vyžaduje a dobrá cena. Za nás môžeme Inet.sk len odporučiť. Ďakujeme."
Mgr. Zuzana Valovičová
BL servis, s.r.o.