Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 9. 6. 2010 09:51:52

robo10
Člen
Registrace: 17. 2. 2009
Příspěvků: 15

JP ukotvi obrazok

Dobry den,
pouzivam rozsirenie "JP ukotvi obrazok"
Ovsem pokial pouzijem funkciu Embedovanie obrazkov, casto sa stane ze proces neprebehne a zahlasi chybu. Tento problem sa vyskytuje ibe niekedy.
Mate s tym prosim niekto skusenost

Dakujem

Offline

#2 9. 6. 2010 13:04:57

j-pastierik
Člen
Registrace: 15. 11. 2004
Příspěvků: 761

Re: JP ukotvi obrazok

Potreboval by som vedieť pri akom postupe sa to stane a akú chybu to zahlási. Celé embedovanie (okrem jazykových nastavení) sú totiž tieto krátka funkcie:

REM Procedúra pre prechádzanie všetkých obrázkov
Sub Embeduj_externe_obrazky
dim dokument, obrazky, obrazok as object
dim i, pocet_odkazov, pocet_zmenenych as long

dokument = ThisComponent

pocet_zmenenych = 0
pocet_odkazov = 0

obrazky = dokument.getDrawPage()
for i=0 To obrazky.getCount()-1 ' Pre všetky obrázky
  obrazok = obrazky.getByIndex(i)
  if InStr(obrazok.GraphicURL, "vnd.sun") = 0 Then ' Ak nie je obrázok vnútorný
   if Embeduj_obrazok(obrazok, dokument) Then ' Ak sa ho podarilo zmeniť na vnútorný
    pocet_zmenenych = pocet_zmenenych + 1
   else
    pocet_odkazov = pocet_odkazov + 1
   end if
  end if
next i
Nastav_jazyk_text
msgbox Zmenenych+str(pocet_zmenenych)+Obrazkov+Nezmenenych+str(pocet_odkazov)+Obrazkov+"."
end Sub

REM Funkcia, ktorá embeduje obrázok (vložený ako odkaz) do vnútra dokumentu
Function Embeduj_obrazok(obrazok, dokument) As Boolean
dim bitmapa as object
dim nova_URL, nazov as string

nazov=obrazok.LinkDisplayName
bitmapa=dokument.createInstance("com.sun.star.drawing.BitmapTable")
if bitmapa.hasByName(nazov) Then ' Obrázok s príslušným menom už existuje - nie je možný prevod
  Embeduj_obrazok = False
  exit function
end if
bitmapa.insertByName(nazov, obrazok.GraphicURL) ' Vloženie obrázku ako vnútorného
nova_URL=bitmapa.getByName(nazov) ' Vnútorná cesta k obrázku
obrazok.GraphicURL=nova_URL ' Zmena cesty na vnútornú
Embeduj_obrazok=True
end Function

Offline

#3 10. 6. 2010 09:54:48

robo10
Člen
Registrace: 17. 2. 2009
Příspěvků: 15

Re: JP ukotvi obrazok

Postup je nasledovny:
vlozim obrazok, upravim rozmery polohu, spustim f-ciu
zastane to na tomto riadku:
if InStr(obrazok.GraphicURL, "vnd.sun") = 0 Then ' Ak nie je obrázok vnútorný

Offline

#4 10. 6. 2010 12:05:26

j-pastierik
Člen
Registrace: 15. 11. 2004
Příspěvků: 761

Re: JP ukotvi obrazok

Ten riadok je test, či obrázok je vnútorný. Chyba teoreticky môže vzniknúť tým, ak i-ty obrázok neexistuje, hoci ho OO.o "pozná". Priradením obrazok = obrazky.getByIndex(i), by totiž premenná obrazok bola v takomto prípade prázdna, čo by mohlo viesť v teste ku chybe (neexistujúca metóda obrazok.GraphicURL). Budem v rozšírení testovať, či tá premenná nie je prázdna, snáď to pomôže (zaručiť to neviem). Keď to naprogramujem, zverejním novú verziu makra (dnes-zajtra).

Offline

#5 10. 6. 2010 14:55:44

j-pastierik
Člen
Registrace: 15. 11. 2004
Příspěvků: 761

Re: JP ukotvi obrazok

Poprosím Vás, napíšte mi mail na pastierik zavináč inet.sk - pošlem Vám rozšírenie, kde som urobil kontrolu tej premennej a poprosím Vás o otestovanie, aby som to zbytočne nezverejňoval ako novú verziu, ak by to nepomohlo. Ďakujem.

Offline

#6 10. 6. 2010 19:14:32

PetrValach
Člen
Registrace: 24. 5. 2007
Příspěvků: 561

Re: JP ukotvi obrazok

Já sice vaše rozšíření nepoužívám, i když mě obrázky v OOo taky prudí, ale používám ten plugin na embedování... i když je vlastně k ničemu. O vše se stará jedna krásná položka z menu :-) a sice Odkazy.
Ale je to takhle pohodlnější.
To jenom pro připomenutí, že ten plugin na vkládání není nezbytně nutný.


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#7 11. 6. 2010 05:35:13

j-pastierik
Člen
Registrace: 15. 11. 2004
Příspěvků: 761

Re: JP ukotvi obrazok

PetrValach napsal(a)

Já sice vaše rozšíření nepoužívám, i když mě obrázky v OOo taky prudí, ale používám ten plugin na embedování... i když je vlastně k ničemu. O vše se stará jedna krásná položka z menu :-) a sice Odkazy.
Ale je to takhle pohodlnější.
To jenom pro připomenutí, že ten plugin na vkládání není nezbytně nutný.

Pravdaže, máte pravdu, ale ak už máte hotový dokument s desiatkami obrázkov, tak je to pre manuálne upravovanie trochu horšie. Rozšírenie vzniklo vlastne na objednávku (ešte budem riešiť to, aby embedovanie fungovalo aj v Impress), osobne ho nepoužívam.

Offline

#8 12. 6. 2010 06:06:20

j-pastierik
Člen
Registrace: 15. 11. 2004
Příspěvků: 761

Re: JP ukotvi obrazok

Ďakujem za zaslanie súboru, nová verzia rozšírenia je už zverejnená. Chyba bola v súbore - boli v ňom vložené akoby dva obrázky, pričom tak, ako som predpokladal, jeden z nich neexistoval a teda nemohla existovať ani metóda obrazok.GraphicURL.

Offline

Zápatí